ekp/.phrase/phases/phase-kp-overhaul-20260726/change_c_build_boundary_20260728.md
Kinneyzhang fd1210e557 fix: close repository audit findings
Complete task002 through task016 across cache correctness, editor lifecycle, C boundaries, build and release governance, dictionary provenance, performance, interactive workflows, tests, documentation, and final cleanup.
2026-07-28 22:43:10 +08:00

1.5 KiB

Change Log: Shell-Free Profiled C Builds 2026-07-28

Planning

  • Added task009 and locked its process, profile, whitespace-path, and build/test acceptance criteria before implementation.

task009

  • Modifyekp-utils.el

    • Deleted the one-use generic callback wrapper and shell command.
    • Added direct argv make-process, explicit profile validation, correct working directory, and success/failure output lifecycle.
  • Modifyekp_c/Makefile, .github/workflows/ci.yml

    • Made portable flags the default.
    • Split native, debug, and sanitizer flags behind PROFILE.
    • Updated sanitizer CI to the same vocabulary.
  • Modify — tests and public/developer/C/audit documentation

    • Added process-shape and unknown-profile controls.
    • Documented profile ownership and closed issue005.

Validation

  • Focused process/profile red/green: 0/2 → 2/2.
  • portable/native/debug/sanitize: all compiled with zero warnings.
  • Real ekp-c-module-build 'portable: exit 0 and loaded C 1.6.
  • Portable copy under /tmp/ekp build.*: built successfully.
  • Full ERT and fuzz evidence from task008 remains valid; final phase QA reruns both after all slices.

Behavior and Risk

  • portable no longer emits host-specific instructions.
  • native artifacts are intentionally machine-specific.
  • Failed async builds keep and display their output buffer; successful builds reload and remove it.
  • The old DEBUG=1 spelling is deleted rather than retained as a shim.