ekp/.phrase/phases/phase-kp-overhaul-20260726/change_semantic_live_prefix_20260729.md
Kinneyzhang 83352c4571 feat!: add source-clean live buffer layout
Replace the physical ekp-region renderer with ekp-buffer text-property projection backed by shared semantic layout plans and stable live-edit transactions.

Optimize the C-backed resize hot path, and add deterministic performance, ERT, GUI, fuzz, release, and documentation coverage for task017 through task032.

BREAKING CHANGE: require ekp-buffer instead of ekp-region and rename module-owned ekp-region-* settings to ekp-buffer-*.
2026-07-30 01:07:25 +08:00

4.2 KiB
Raw Blame History

Change Log: Semantic Live Prefix 2026-07-29

2026-07-29 — Implement and verify task028

  • Modify ekp-buffer.el.
    • Replaces native-row commitment with full-hard-line ekp-layout-plan consumption and point-line semantic prefix projection.
    • Keeps the point-containing line and suffix natural; previous semantic lines own their break whitespace and may reflow together.
    • Adds a 16-entry buffer-local plan LRU, same-line point-motion fast path, common-prefix differential publication, transactional rollback, theme-enable/theme-disable/frame-font context invalidation, and fail-closed oversized/conflict handling.
    • Leaves ekp.el, core DP semantics, C ABI, DP schema, and plan records unchanged for this task.
  • Modify tests/ekp-buffer-tests.el, tests/ekp-gui-verify.el, and Add tests/ekp-buffer-live-bench.el.
    • Covers public editing commands, point boundaries, earlier-break revision, cache/history reuse, zero-write stable plans, whitespace and hyphen ownership, IME, failure rollback, resize, narrowing, lifecycle, exact source, and zero-overlay invariants.
    • Default and seed-20260729 ERT pass 181/181; all 181 tests pass in independent Emacs processes; C/Elisp fuzz passes 300/300.
    • Main dynamic GUI evidence is retained at /private/tmp/ekp-semantic-live-v4-vFZTkr; split-window evidence is at /private/tmp/ekp-semantic-split-v3-uPwuOi. Both reviewed temporal reports return PASS with exact source, zero overlays, and hscroll=0.
    • C-backend append p99 is 6.399 ms with GC excluded. Default raw p99 is 50.212 ms when samples include approximately 45 ms GC pauses; this residual risk is recorded instead of changing global GC behavior.
    • Subsequent audit: the 6.399 ms result is not reproducible with the current checked-in 80-pixel benchmark. Repeated GC-excluded task029 runs measure roughly 3385 ms p99 with 291 unique plan misses. issue018/task030 now track that separate performance debt; this historical entry is retained to show what the task028 run reported.
  • Modify bilingual user/developer docs, CHANGELOG.md, issue016, plan/technical records, and the superseding postmortem to match the implemented semantic-prefix model.
  • Behavior/Risk: The active edit suffix is now native while all earlier semantic lines are one jointly revisable KP prefix. Automated and GUI developer gates pass. Independent code review returns APPROVE and independent architecture review returns CLEAR. task028 is complete; issue016 remains open until the user personally confirms the visible editing experience.

2026-07-29 — Plan task028

  • Add issue_semantic_live_prefix_20260729.md.
    • Records issue016: live editing currently freezes completed native rows instead of repeatedly consuming the full hard-line KP plan and projecting only the semantic prefix before point.
  • Modify task_repository_audit_20260728.md.
    • Adds task028 as the next atomic implementation task with red tests, performance checks, GUI dynamic verification, and user-confirmation closure rules.
  • Modify spec_text_property_layout_engine_20260729.md.
    • Replaces the native-row live contract with the semantic hard-line prefix contract: full hard-line plan input, point-line boundary, prefix-only projection, natural point line and suffix, and no core DP/C ABI changes.
  • Modify plan_text_property_layout_engine_20260729.md.
    • Adds milestone M7 for replacing native-row commitment with semantic prefix projection while preserving the completed-paragraph DP owner.
  • Modify tech-refer_text_property_layout_20260729.md.
    • Supersedes the native progressive row model for live editing and documents the buffer-local plan cache, line-signature diffing, and fail-closed ownership rules.
  • Add postmortem/20260729-whole-hard-line-live-prefix.md.
    • Records why the native-row model was wrong for global KP alignment and why the correction belongs in ekp-buffer, not in core DP.
  • Behavior/Risk: Documentation and planning only. Runtime behavior is unchanged. issue015 remains open exactly as before pending user-visible confirmation; issue016 remains open until implementation and user confirmation.