Commit Graph

1 Commits

Author SHA1 Message Date
Levi Neuwirth 2ca011c368 M11.5: semantic frontend<->instance glue (SemanticClient + e2e)
Completes the M11 arc with the consumer side. pmacs has no GUI
toolkit, so per the design note's testability strategy the
deliverable is the bounded testable glue, not a GPU renderer.

- src/semantic_client.rs (crdt-gated): headless SemanticClient
  composing the BufferMirror rope replica (M10.10) with a tile-based
  SemanticModel that reconstructs styling/decorations from the full +
  dirty-segment deltas (M11.4). Emits FrontendEvent::Viewport;
  read-back accessors (text / effective_style_at /
  decoration_kinds_at / tile ranges). The M11.4 contract (segments
  carry every current item intersecting their range) makes tiles
  self-contained → incremental apply is per-tile replacement with
  edge-clipping, no cross-span surgery. 7 unit tests.
- tests/m11_5_semantic_acceptance.rs: (a) reconstruction-equivalence
  — incrementally-driven client asserted byte-for-byte identical to
  a fresh full projection across a scripted viewport/edit/selection
  sequence incl. a viewport jump (golden discipline, no snapshot
  crate); (b) end-to-end — a real daemon routes StyleSpans/
  Decorations to a semantic session (after it declares a Viewport)
  and never to a grid session, CellDelta vice versa, validating the
  M11.2 per-session projection through the socket.

Lib (1404 crdt / 1242 non-crdt) + integration green on both feature
flavors; clippy -D warnings clean on both.

M11 arc complete (M11.1–M11.5). Inline/Block/Fold/ResourceOffer
remain honest stubs pending their source features.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 21:24:36 -04:00