diff --git a/.phrase/docs/CHANGE.md b/.phrase/docs/CHANGE.md index 0328cc2..aace108 100644 --- a/.phrase/docs/CHANGE.md +++ b/.phrase/docs/CHANGE.md @@ -2,6 +2,9 @@ ## phase-kp-overhaul-20260726 +- 2026-08-13 close issues awaiting user-visible confirmation (`issue011`– + `issue017`, `issue019`, `issue020`; `issue018`/`task030` remain open): + `.phrase/phases/phase-kp-overhaul-20260726/change_close_user_confirmation_20260813.md` - 2026-08-02 complete fixed final-pass emergency stretch and TeX-style active-path preservation (`task036`; `issue021` closed after user visual confirmation): diff --git a/.phrase/docs/ISSUES.md b/.phrase/docs/ISSUES.md index b8dba88..fcf2d9b 100644 --- a/.phrase/docs/ISSUES.md +++ b/.phrase/docs/ISSUES.md @@ -10,14 +10,14 @@ - issue008 [x] [Hot-loop allocation and nil caching need benchmark gates.](../phases/phase-kp-overhaul-20260726/issue_repository_audit_20260728.md) - issue009 [x] [Release and documentation governance are not closed.](../phases/phase-kp-overhaul-20260726/issue_repository_audit_20260728.md) - issue010 [x] [Same-string property mutation bypasses paragraph cache identity.](../phases/phase-kp-overhaul-20260726/issue_repository_audit_20260728.md) -- issue011 [ ] [Direct Elisp buffer APIs observe physical layout text.](../phases/phase-kp-overhaul-20260726/issue_logical_text_api_20260728.md) -- issue012 [ ] [Reprojection activates an inactive mark and selects text.](../phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md#issue012--reprojection-activates-an-inactive-mark) -- issue013 [ ] [Active-line edge whitespace is hidden until another glyph arrives.](../phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md#issue013--active-line-edge-whitespace-is-hidden) -- issue014 [ ] [Near-edge live editing publishes KP breaks before the paragraph is complete.](../phases/phase-kp-overhaul-20260726/issue_natural_live_editing_20260729.md) -- issue015 [ ] [Narrow side-by-side windows truncate instead of soft-wrapping live text.](../phases/phase-kp-overhaul-20260726/issue_native_soft_wrap_20260729.md) -- issue016 [ ] [Live editing freezes native rows instead of projecting a semantic hard-line prefix.](../phases/phase-kp-overhaul-20260726/issue_semantic_live_prefix_20260729.md) -- issue017 [ ] [Point-only motion changes an already published live projection.](../phases/phase-kp-overhaul-20260726/issue_point_motion_projection_stability_20260729.md) +- issue011 [x] [Direct Elisp buffer APIs observe physical layout text.](../phases/phase-kp-overhaul-20260726/issue_logical_text_api_20260728.md) +- issue012 [x] [Reprojection activates an inactive mark and selects text.](../phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md#issue012--reprojection-activates-an-inactive-mark) +- issue013 [x] [Active-line edge whitespace is hidden until another glyph arrives.](../phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md#issue013--active-line-edge-whitespace-is-hidden) +- issue014 [x] [Near-edge live editing publishes KP breaks before the paragraph is complete.](../phases/phase-kp-overhaul-20260726/issue_natural_live_editing_20260729.md) +- issue015 [x] [Narrow side-by-side windows truncate instead of soft-wrapping live text.](../phases/phase-kp-overhaul-20260726/issue_native_soft_wrap_20260729.md) +- issue016 [x] [Live editing freezes native rows instead of projecting a semantic hard-line prefix.](../phases/phase-kp-overhaul-20260726/issue_semantic_live_prefix_20260729.md) +- issue017 [x] [Point-only motion changes an already published live projection.](../phases/phase-kp-overhaul-20260726/issue_point_motion_projection_stability_20260729.md) - issue018 [ ] [Unique live appends miss the frame budget at very narrow widths.](../phases/phase-kp-overhaul-20260726/issue_narrow_live_append_latency_20260729.md) -- issue019 [ ] [Per-edit frontier replanning destabilizes live projection and cannot restore reversible edits exactly.](../phases/phase-kp-overhaul-20260726/issue_stable_live_edit_transaction_20260729.md) -- issue020 [ ] [C-backed resize reflow still takes roughly 60–70 ms.](../phases/phase-kp-overhaul-20260726/issue_c_resize_latency_20260729.md) +- issue019 [x] [Per-edit frontier replanning destabilizes live projection and cannot restore reversible edits exactly.](../phases/phase-kp-overhaul-20260726/issue_stable_live_edit_transaction_20260729.md) +- issue020 [x] [C-backed resize reflow still takes roughly 60–70 ms.](../phases/phase-kp-overhaul-20260726/issue_c_resize_latency_20260729.md) - issue021 [x] [Final-pass emergency layout can isolate CJK source lines at narrow widths.](../phases/phase-kp-overhaul-20260726/issue_overlong_no_break_atom_20260801.md) diff --git a/.phrase/phases/phase-kp-overhaul-20260726/change_close_user_confirmation_20260813.md b/.phrase/phases/phase-kp-overhaul-20260726/change_close_user_confirmation_20260813.md new file mode 100644 index 0000000..81c86f4 --- /dev/null +++ b/.phrase/phases/phase-kp-overhaul-20260726/change_close_user_confirmation_20260813.md @@ -0,0 +1,22 @@ +# Change: Close User-Confirmation Issues 2026-08-13 + +## 2026-08-13 — Close issues awaiting user-visible confirmation + +- **Modify** `.phrase/docs/ISSUES.md` to mark `issue011`–`issue017`, + `issue019`, and `issue020` as resolved. +- **Modify** the corresponding issue detail files to record the closure + date, responsible closure path, and that the commit is + documentation-only. +- **Leave open** `issue018`/`task030`: the locked source-instrumented + 16 ms stress target is still unmet, so that item remains an active + engineering debt rather than a pending user-confirmation gate. +- **Behavior/Risk:** no runtime change. This pass closes the required + user-visible acceptance gate for work that had already completed + developer, repository, and dynamic GUI verification. + +## Verification + +- `issue011`–`issue017`, `issue019`, and `issue020` now use `[x]` in the + global issue index and their detail headers. +- `issue018` remains `[ ]`; `task030` remains `[ ]`. +- No production or test code was changed. diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_c_resize_latency_20260729.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_c_resize_latency_20260729.md index 72754b0..96d5f12 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_c_resize_latency_20260729.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_c_resize_latency_20260729.md @@ -1,8 +1,9 @@ # Issue: C Resize Latency 2026-07-29 -## issue020 [ ] C-backed resize reflow still takes roughly 60–70 ms +## issue020 [x] C-backed resize reflow still takes roughly 60–70 ms -- **Status:** Developer verification complete; user confirmation pending. +- **Status:** Closed by user re-audit on 2026-08-13. Developer verification + was complete. - **Summary:** Resizing with the C dynamic module enabled was observed at roughly 60–70 ms. That number covered more than the C algorithm: the buffer path also rebuilt layout input, crossed the Emacs-module boundary, @@ -49,7 +50,7 @@ changes, 14 checkpoints, no failed assertion or pixel overflow, and a maximum EKP mutator time of 22.989 ms; one 74.099 ms total sample contains 58.792 ms of Emacs GC and 15.307 ms of EKP work. -- **User Confirmation:** Required after implementation evidence is delivered. -- **Resolved At:** Unresolved. -- **Resolved By:** Pending. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; developer verification complete. +- **Commit:** — (documentation-only closure). diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md index 12c1a05..2daee22 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_live_editing_interaction_20260729.md @@ -1,9 +1,9 @@ # Issue: Live Editing Interaction Regressions 2026-07-29 -## issue012 [ ] Reprojection activates an inactive mark +## issue012 [x] Reprojection activates an inactive mark -- **Status:** Runtime fix and repository verification are complete. The - issue remains open until the user confirms the visible behavior. +- **Status:** Closed by user re-audit on 2026-08-13. Runtime fix and + repository verification were complete. - **Summary:** Changing width in `ekp-showcase` can highlight text even though the user did not activate a region. - **Environment:** Text-property renderer after `task022`; Emacs 30.2. @@ -33,15 +33,15 @@ A clean full-screen GUI width-key run preserved point 120, mark 20, `mark_active=false`, `region_active=false`, and zero overlays before, immediately after, and after redisplay. -- **User Confirmation:** Pending after the visible fix is delivered. -- **Resolved At:** Unresolved. -- **Resolved By:** Pending. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; runtime work previously implemented. +- **Commit:** — (documentation-only closure). -## issue013 [ ] Active-line edge whitespace is hidden +## issue013 [x] Active-line edge whitespace is hidden -- **Status:** Runtime fix and repository verification are complete. The - issue remains open until the user confirms the visible behavior. +- **Status:** Closed by user re-audit on 2026-08-13. Runtime fix and + repository verification were complete. - **Summary:** With `ekp-auto-justify-mode` enabled, a newly typed trailing space or tab can appear to do nothing. It becomes visible only after a following non-whitespace glyph is typed. The same defect affects newly @@ -79,10 +79,10 @@ the same action; the source space had neither EKP-owned nor public replacing display immediately or after redisplay. Typing and deleting a following glyph left that state unchanged. -- **User Confirmation:** Pending after the visible fix is delivered. -- **Resolved At:** Unresolved. -- **Resolved By:** Pending. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; runtime work previously implemented. +- **Commit:** — (documentation-only closure). ## Related Audit Scope diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_logical_text_api_20260728.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_logical_text_api_20260728.md index 239a75c..2c4e2ee 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_logical_text_api_20260728.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_logical_text_api_20260728.md @@ -1,10 +1,9 @@ # Issue: Logical Text API Boundary 2026-07-28 -## issue011 [ ] Direct Elisp buffer APIs observe physical layout text +## issue011 [x] Direct Elisp buffer APIs observe physical layout text -- **Status:** Runtime fix and complete repository gate implemented by - `task019`–`task022`. The issue remains open only until the user accepts - the visible behavior. +- **Status:** Closed by user re-audit on 2026-08-13. Runtime fix and + complete repository gate were implemented by `task019`–`task022`. - **Summary:** The former buffer renderer wrote synthesized glue spaces, soft newlines, discretionary hyphens, and hidden payload text into the real buffer. Boundary adapters made save/copy/search appear logical, but @@ -122,10 +121,11 @@ excluded overlays, selected text properties, identified `min-width`, `space-width`, and `line-prefix`, requested a non-polluting hyphen implementation, then explicitly requested complete implementation under - the persistent goal model. Final visible-behavior acceptance is pending. -- **Resolved At:** Unresolved. -- **Resolved By:** Pending. -- **Commit:** Pending. + the persistent goal model. Final visible-behavior acceptance was provided + by the user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; runtime work previously implemented. +- **Commit:** — (documentation-only closure). - **Related:** `ekp.el`, `ekp-buffer.el`, `task017`–`task022`, `spec_text_property_layout_engine_20260729.md`, `tech-refer_text_property_layout_20260729.md`, diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_native_soft_wrap_20260729.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_native_soft_wrap_20260729.md index 2e5d493..0cd9cf1 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_native_soft_wrap_20260729.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_native_soft_wrap_20260729.md @@ -1,9 +1,9 @@ # Issue: Native Soft Wrap 2026-07-29 -## issue015 [ ] Narrow split windows truncate live text +## issue015 [x] Narrow split windows truncate live text -- **Status:** Implemented and independently verified; user confirmation - remains required. +- **Status:** Closed by user re-audit on 2026-08-13. Implementation and + independent verification were complete. - **Summary:** With `ekp-auto-justify-mode` enabled in a narrow side-by-side window, typing past the right edge horizontally scrolls the line and displays a `$` truncation indicator instead of naturally @@ -44,8 +44,7 @@ naturally advancing from one to two visual rows in a 44-column split, with `hscroll=0`, exact source text, zero overlays, and zero live replacing breaks. -- **User Confirmation:** Pending after delivery. -- **Resolved At:** Unresolved. -- **Resolved By:** Implementation complete; issue stays open until - user-visible confirmation. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; implementation complete. +- **Commit:** — (documentation-only closure). diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_natural_live_editing_20260729.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_natural_live_editing_20260729.md index 3eed69b..03d6fa7 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_natural_live_editing_20260729.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_natural_live_editing_20260729.md @@ -1,9 +1,9 @@ # Issue: Natural Live Editing 2026-07-29 -## issue014 [ ] Near-edge editing publishes premature KP layout +## issue014 [x] Near-edge editing publishes premature KP layout -- **Status:** Implemented and independently verified; user-visible - confirmation is pending. +- **Status:** Closed by user re-audit on 2026-08-13. Implementation and + independent verification were complete. - **Summary:** With `ekp-auto-justify-mode` enabled, typing near the right edge can publish several visual KP breaks and a discretionary hyphen while the user is still composing the current hard paragraph. The result @@ -48,7 +48,7 @@ mixed-text wrap, exact deletion restoration, and the sole full-KP transition after hard newline; every immediate and redisplay checkpoint passes, with zero live owned breaks and no black recording segment. -- **User Confirmation:** Pending after the visible fix is delivered. -- **Resolved At:** Unresolved. -- **Resolved By:** Implementation complete; awaiting user confirmation. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; implementation complete. +- **Commit:** — (documentation-only closure). diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_point_motion_projection_stability_20260729.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_point_motion_projection_stability_20260729.md index 0d9b3d9..920cfdf 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_point_motion_projection_stability_20260729.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_point_motion_projection_stability_20260729.md @@ -1,10 +1,10 @@ # Issue: Point-Motion Projection Stability 2026-07-29 -## issue017 [ ] Point-only motion changes an already published live projection +## issue017 [x] Point-only motion changes an already published live projection -- **Status:** The zero-work point-motion invariant remains current. - `issue019`/`task031` supersede frontier-owned immediate publication and - extend the invariant across hard-line/paragraph navigation. +- **Status:** Closed by user re-audit on 2026-08-13. The zero-work + point-motion invariant remains current; `issue019`/`task031` supersede + frontier-owned immediate publication and extend it across navigation. - **Summary:** `task028` correctly made one whole hard line the planning unit, but it also made transient point position the persistent live projection boundary. Moving point across semantic plan lines therefore @@ -75,8 +75,7 @@ - Independent architecture review is CLEAR. Independent code review reports zero blockers; its only residual is the separate narrow-width append latency tracked by `issue018`/`task030`. -- **User Confirmation:** Pending. Keep this issue open until the user - confirms the editing experience. -- **Resolved At:** Unresolved. -- **Resolved By:** Pending. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; runtime work previously implemented. +- **Commit:** — (documentation-only closure). diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_semantic_live_prefix_20260729.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_semantic_live_prefix_20260729.md index c560ffc..cf6ebfd 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_semantic_live_prefix_20260729.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_semantic_live_prefix_20260729.md @@ -1,9 +1,10 @@ # Issue: Semantic Live Prefix 2026-07-29 -## issue016 [ ] Live editing freezes native rows instead of projecting a semantic hard-line prefix +## issue016 [x] Live editing freezes native rows instead of projecting a semantic hard-line prefix -- **Status:** The whole-hard-line commit result is retained, but per-edit - replanning is superseded by `issue019`/`task031`. +- **Status:** Closed by user re-audit on 2026-08-13. The whole-hard-line + commit result is retained; per-edit replanning was superseded by + `issue019`/`task031`. - **Summary:** Before `task028`, live editing committed completed native visual rows independently. User testing showed that earlier soft-wrapped rows in the same hard line did not become globally KP-aligned while the @@ -90,8 +91,7 @@ - Final independent code review returns APPROVE; independent architecture review returns CLEAR. Both reviewed the latest font-context invalidation delta. -- **User Confirmation:** Pending. Keep this issue open until the user - personally confirms the delivered editing behavior. -- **Resolved At:** Unresolved. -- **Resolved By:** Pending. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; runtime work previously implemented. +- **Commit:** — (documentation-only closure). diff --git a/.phrase/phases/phase-kp-overhaul-20260726/issue_stable_live_edit_transaction_20260729.md b/.phrase/phases/phase-kp-overhaul-20260726/issue_stable_live_edit_transaction_20260729.md index 1bb412c..eb63b08 100644 --- a/.phrase/phases/phase-kp-overhaul-20260726/issue_stable_live_edit_transaction_20260729.md +++ b/.phrase/phases/phase-kp-overhaul-20260726/issue_stable_live_edit_transaction_20260729.md @@ -1,9 +1,9 @@ # Issue: Stable Live Edit Transaction 2026-07-29 -## issue019 [ ] Per-edit frontier replanning destabilizes live projection and cannot restore reversible edits exactly +## issue019 [x] Per-edit frontier replanning destabilizes live projection and cannot restore reversible edits exactly -- **Status:** Implemented and developer-verified by `task031`; awaiting the - required user-visible confirmation. +- **Status:** Closed by user re-audit on 2026-08-13. Implementation was + developer-verified by `task031`. - **Summary:** The current live path makes one `frontier` simultaneously own the latest edit, the natural suffix, and projection reuse. Before every edit it clears the touched projected line and every following line; after @@ -66,7 +66,7 @@ checkpoints, no failed assertion, a completed run-end, and no black segment or visual noise. Same-row and point-motion benchmark scenarios perform zero plans; 291 appends now contain only 15 structural plans. -- **User Confirmation:** Required after temporal GUI evidence is delivered. -- **Resolved At:** Unresolved. -- **Resolved By:** `task031` developer verification; user confirmation pending. -- **Commit:** Pending. +- **User Confirmation:** Provided by user re-audit on 2026-08-13. +- **Resolved At:** 2026-08-13. +- **Resolved By:** User re-audit closure; `task031` developer verification. +- **Commit:** — (documentation-only closure).