pmacs/tests/common
Levi Neuwirth 05fbbd9919 M10.10: complete optimistic-apply keystroke path + Day-5 corrections
Post-ship-gate completion of M10.10 (optimistic local edit
application, Path β). The milestone core landed in 45be65b
"M10.10 ship gate"; this commit completes the frontend keystroke
path and absorbs Day-5 corrections.

Completes:
- optimistic::frontend_event_for_keystroke — keystroke orchestrator
  (classify_key predicate → mirror-ready check → CrdtOp or Key
  fallback per Refinement 4 graceful degradation).
- BufferMirror cursor tracking (active_buffer, cursor_byte_pos via
  CursorByte) + char-boundary-aware delete helpers (prev/next_char_len)
  so multibyte backspace/delete don't trip loro's mid-codepoint
  rejection.
- buffer.rs: crdt_state accessor (was test-only) now production —
  daemon's BufferSnapshot export path uses it.

Day-5 corrections:
- packages/manifest.rs: fix pre-existing M8-era proptest generator
  that produced ".."-containing entry paths the parser correctly
  rejects (segment-structured regex; stale regression seed removed).
  Out of M10.10 scope; absorbed so future milestone sweeps see clean
  output instead of a known-failing test requiring prose.
- tests: extract inline PTY/daemon helpers to shared tests/common/
  module (m5_5, m5_8 now import; no coverage change — m5_5 retains
  19 m10_10 tests). tests/common/ added (required for compilation).

Audit history (M10.10-AUDIT.md is gitignored internal-only; this
message is the sole version-controlled record):

M10.10 PASSES within Path β scope (end-of-line optimistic visual
paint; mid-line/delete-forward round-trip; full CRDT-op exchange
across the text-input scope). The initial audit verdict was WRONG —
optimistic-apply was structurally unreachable in the production
binary (build_capabilities advertised crdt_replica: false). Six
post-audit review rounds surfaced 28 findings (F5–F32) beyond the
framing pass's original 4. Six M10-era discipline additions emerged,
each empirically grounded: end-to-end-exercise check (bidirectional
scope), composition-consistency check, verification-milestone premise
check, library-API verification check, forward-pointer-comment
hygiene, methodology-composition check.

Scorecard adopts Option C dual methodology: layer (a) framing-pass
accuracy is 7/8 milestones-not-findings AND 2/8 findings-as-failures
— the 5/8 spread is the density diagnostic (M10.10's defining
characteristic; neither number alone is honest). Layer (c): 7/8 and
6/8 (M10.8 inherited-gap cluster). Budget honesty: 5-day
pre-authorization covered anticipated implementation surprises (K1,
Risk #6 a); Finding 3 was a third surprise absorbed via compression,
not structural slack; the six post-audit rounds were entirely
unbudgeted and are the milestone's dominant cost. M10.10's density
is partly forecastable — it is the only M10 milestone with all three
of: architectural reversal, multi-milestone integration, and
verification depending on incomplete cross-milestone wiring.

Ship-gate clean on clean checkout (cargo clean + rebuild): luajit+crdt
1364/1364, luajit 1211/1211, lua54+crdt 1364/1364, lua54 1211/1211,
m5_5 daemon-e2e 36/36, perf 1MB=1.1ms vs 10ms gate, clippy 0 across
feature combos, fmt clean. One transient flake observed
(async_runtime::supersede_cancels_in_flight_job_within_50ms — timing
test starved under concurrent compile load, non-reproducible in
isolation, known infra pattern, not an M10.10 regression).

Next: M10.11 (two-laptop acceptance) inherits all six discipline
additions; v1.0 ships after M10.11.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 16:40:46 -04:00
..
daemon.rs M10.10: complete optimistic-apply keystroke path + Day-5 corrections 2026-05-15 16:40:46 -04:00
mod.rs M10.10: complete optimistic-apply keystroke path + Day-5 corrections 2026-05-15 16:40:46 -04:00
pty.rs M10.10: complete optimistic-apply keystroke path + Day-5 corrections 2026-05-15 16:40:46 -04:00