Decode real packed event record structure

This commit is contained in:
Jan Petykiewicz 2026-04-14 22:09:09 -07:00
commit 45f258cf5d
16 changed files with 1011 additions and 44 deletions

View file

@ -26,8 +26,7 @@ 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
captured-context overlay import for company-targeted packed events, not another persistence
scaffold pass.
real `0x4e9a` packed-event structural decode, not another persistence scaffold pass.
## Why This Boundary
@ -366,37 +365,37 @@ Checked-in fixture families already include:
## Next Slice
The recommended next implementation slice is captured-context overlay import on top of the
save-slice and snapshot workflows that already exist today.
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.
Target behavior:
- preserve save slices as partial state rather than pretending they reconstruct full live company
state
- overlay save-derived packed-event state onto a captured runtime snapshot that already has the
needed company roster and other live context
- upgrade currently blocked company-targeted packed rows when the overlaid base snapshot provides
every referenced company id
- keep preserving unsupported packed rows as parity summaries instead of guessing executable meaning
- 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
- 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
Public-model additions for that slice:
- tracked overlay import documents that reference one base snapshot plus one save-slice document
- runtime-side import outcome labels for packed records so blocked-missing-context and
blocked-unsupported cases stay explicit
- fixture support for generic runtime-import documents, not just snapshots or save slices
- 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`
Fixture work for that slice:
- overlay-backed fixtures that prove company-targeted packed rows execute deterministically against
captured company context
- regression fixtures that lock the before/after boundary between save-slice-only imports and
overlay-backed imports
- state-fragment assertions that lock both packed parity summaries and imported executable records
- one parity-heavy tracked sample that now exposes a real structurally decoded row family
- 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
Do not mix this slice with:
- territory-access or selected-profile parity
- placed-structure batch placement parity
- shell queue/modal behavior
- broad speculative translation of packed RT3 event rows into executable normalized effects
- broad speculative translation of real packed RT3 event rows into executable normalized effects