2.3 KiB
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.elso 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.cwith 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.mdto 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-Beg8hbwith 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
issue021with the 280px showcase reproduction and deterministic width-40 batch analogue. - Add
task033and 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.