Decode real packed event compact control

This commit is contained in:
Jan Petykiewicz 2026-04-14 23:01:18 -07:00
commit 4ff6d65774
12 changed files with 483 additions and 41 deletions

View file

@ -26,7 +26,8 @@ Implemented today:
normalized state-fragment assertions, and imported packed-event execution
That means the next implementation work is breadth, not bootstrap. The recommended next slice is
real `0x4e9a` packed-event structural decode, not another persistence scaffold pass.
real `0x4e9a` compact-control decode and descriptor-frontier tightening, not another persistence
scaffold pass.
## Why This Boundary
@ -365,33 +366,41 @@ Checked-in fixture families already include:
## Next Slice
The recommended next implementation slice is real `0x4e9a` packed-event structural decode on top
of the save-slice, snapshot, and overlay workflows that already exist today.
The recommended next implementation slice is real `0x4e9a` compact-control decode on top of the
existing real-row structural parse.
Target behavior:
- parse real packed-event record bodies structurally instead of dropping them straight to
`unsupported_framing`
- preserve the first real decode pass as parity-only, exposing text-band and row-family structure
without guessing executable semantics
- decode the compact control block that sits above the real standalone-condition and grouped-effect
row families, carrying through raw grounded lanes such as mode byte `0x7ef`, primary selector
`0x7f0`, grouped mode `0x7f4`, one-shot header `0x7f5`, modifier bytes `0x7f9/0x7fa`, grouped
target-scope ordinals `0x7fb`, grouped scope checkboxes `0x7ff`, summary toggle `0x800`, and
grouped territory selectors `0x80f`
- keep real rows parity-only in runtime import, but replace the coarse `blocked_structural_only`
frontier with narrower outcomes such as `blocked_missing_compact_control` and
`blocked_unmapped_real_descriptor`
- keep the existing synthetic harness and overlay-backed executable import path working unchanged
- reserve selective executable import from real rows for a later pass once row semantics are tighter
- reserve the first real descriptor-to-effect mapping for a later slice once captured evidence is
tighter
Public-model additions for that slice:
- payload-family labeling that distinguishes synthetic harness records from real packed rows and
unsupported framing
- structural row summaries for real standalone condition rows and grouped effect rows
- runtime-side import outcome labels that distinguish `blocked_structural_only` from
`blocked_missing_company_context` and `blocked_unsupported_decode`
- compact-control summaries on packed-event records in both the save-side and runtime-side models
- runtime summary counts for compact-control-missing and unmapped-real-descriptor blockers
- trigger-kind and one-shot derivation only where the compact-control mapping is already grounded
Fixture work for that slice:
- one parity-heavy tracked sample that now exposes a real structurally decoded row family
- update the parity-heavy tracked sample so the real row includes compact-control state
- regression fixtures that keep synthetic executable import and overlay-backed company-context
upgrade behavior green
- state-fragment assertions that lock the new structural row summaries and
`blocked_structural_only` frontier
- state-fragment assertions that lock the new compact-control summary and narrower import blockers
Current local constraint:
- the local checked-in and on-disk `.gms` corpus currently exports with
`packed_event_collection_present = false`, so this slice must not depend on a newly captured real
packed-event-bearing save for acceptance
Do not mix this slice with: