ekp/.phrase/phases/phase-kp-overhaul-20260726/change_overlong_no_break_atom_20260801.md
2026-08-02 15:30:12 +08:00

2.3 KiB

Change: Rigid Inline Atom Break Cascade 2026-08-01

Superseded note: this file records the earlier task033 repair. The current ordinary-underfull final-pass model is recorded in change_final_pass_emergency_stretch_20260802.md; an overwide atom remains intact but is not guaranteed a standalone line, and atom adjacency has no special break rule.

2026-08-01 — Implement and developer-verify task033

  • Modify ekp.el so the emergency pass preserves its established first transition but adds a fullest-underfull prefix fallback only when a forbidden break run jumps directly to an overfull permitted candidate.
  • Modify ekp_c/ekp_kp.c with the same state transition and keep the looseness/parshape Elisp path in parity.
  • Add core, public-buffer, and GUI regressions covering diverse CJK prefixes, exact source boundaries, atom integrity, Elisp/C parity, and repeated 480→280→340→280 reflow.
  • Modify user/developer documentation and add postmortem/20260801-forbidden-run-emergency-boundary.md to record why the broader fullest-prefix replacement was rejected.
  • Verification: RED reproduced boundary 1 instead of 11. GREEN passes normal, random-order, and isolated 201-test runs; 300 C/Elisp fuzz cases; warning-as-error Elisp compilation; package-lint; checkdoc; release and dictionary gates; warning-clean debug/sanitize/portable C builds; and reviewed dynamic GUI evidence at /private/tmp/ekp-atom-gui-final-Beg8hb with verdict PASS.
  • Behavior/Risk: Strict K-P, ordinary emergency layouts, buffer projection, source text, and public APIs are unchanged. The additional relaxation is limited to emergency scans that cross forbidden break positions before an overfull candidate.

2026-08-01 — Plan issue021 and task033

  • Add issue021 with the 280px showcase reproduction and deterministic width-40 batch analogue.
  • Add task033 and M12 acceptance gates for the core emergency-break correction, Elisp/C parity, and real GUI verification.
  • Modify the text-property layout spec to require a full ordinary prefix line and one intact rigid atom line rather than one-glyph emergency fragmentation.
  • Behavior/Risk: Planning records only. Runtime behavior is unchanged. The change will affect only the second pass used after strict K-P has already proved the paragraph unreachable.