Decode packed event records for runtime import

This commit is contained in:
Jan Petykiewicz 2026-04-14 20:35:07 -07:00
commit 09b6514dbf
13 changed files with 1801 additions and 50 deletions

View file

@ -22,11 +22,12 @@ Implemented today:
- snapshots, state dumps, save-slice projection, and normalized state diffing already exist in the
CLI and fixture layers
- checked-in runtime fixtures already cover deterministic stepping, periodic service, direct trigger
service, snapshot-backed inputs, and normalized state-fragment assertions
service, snapshot-backed inputs, normalized state-fragment assertions, and imported packed-event
execution
That means the next implementation work is breadth, not bootstrap. The recommended next slice is
the `.smp` event-collection structural bridge across inspection, save-slice loading, import, and
snapshot-backed fixtures.
captured-runtime depth plus wider packed-event target-family coverage, not another persistence
scaffold pass.
## Why This Boundary
@ -215,10 +216,12 @@ Current status:
- runtime snapshots and state dumps are implemented
- `.smp` save inspection and partial save-slice projection already feed normalized runtime state
- the packed event-collection summary now survives into loaded save slices and projected runtime
snapshots, but per-record packed bodies are still deferred
- the remaining gap is broader captured-runtime and round-trip fixture depth plus deeper `.smp`
event-body decoding, not the first persistence surface
- the packed event-collection bridge now carries per-record summaries into loaded save slices,
projected runtime snapshots, normalized diffs, and fixtures
- the first decoded packed-event subset can now import into executable runtime records when the
decoded actions fit the current normalized runtime-effect model
- the remaining gap is broader captured-runtime and round-trip fixture depth plus wider packed
target-family coverage, not first-pass packed-event decode
### Milestone 4: Domain Expansion
@ -347,8 +350,8 @@ The currently implemented normalized runtime surface is:
`runtime summarize-state`, `runtime import-state`, and `runtime diff-state`
- deterministic stepping, periodic trigger dispatch, one-shot event handling, dirty reruns, and a
normalized runtime-effect vocabulary with staged event-record mutation
- save-side inspection and partial state projection for `.smp` inputs, including the structural
packed event-collection summary
- save-side inspection and partial state projection for `.smp` inputs, including per-record packed
event summaries and selective executable import
Checked-in fixture families already include:
@ -360,33 +363,35 @@ Checked-in fixture families already include:
## Next Slice
The recommended next implementation slice is deeper `.smp` event persistence, starting from the
structural bridge that already exists today.
The recommended next implementation slice is broader captured-runtime depth on top of the packed
event bridge that now exists today.
Target behavior:
- keep carrying the packed event collection across `inspect-smp`, `load-save-slice`,
`import-save-state`, snapshots, diffs, and fixtures
- deepen that bridge from collection structure into per-record packed-body summaries
- preserve the separation between parity-shaped packed state and executable normalized runtime state
until the packed layout is better decoded
- keep the packed event bridge grounded against real captured save inputs rather than only synthetic
parser tests and snapshot fixtures
- expand the executable import subset beyond the current direct-state and follow-on lanes only when
target resolution and field semantics are statically grounded enough to preserve headless
determinism
- keep preserving unsupported packed rows as parity summaries instead of guessing executable meaning
Public-model additions for that slice:
- packed per-record event summary types on the `.smp` side
- optional runtime-side parity summaries for imported packed event records
- no new executable `RuntimeEffect` variants by default in that slice
- additional captured-save fixture material for packed event collections
- wider target-family summaries only where imported execution can be justified by current static
evidence
- no shell queue/modal behavior in the runtime core
Fixture work for that slice:
- one or more snapshot-backed fixtures that prove imported packed event state survives normalize and
diff paths
- synthetic report/save-slice tests that lock the first per-record packed-body parse shape
- state-fragment assertions that lock imported collection ids, version, and record counts
- captured `.smp` or save-slice-backed fixtures that prove real packed event records survive import
and diff paths
- regression fixtures that lock the current selective executable import boundary
- state-fragment assertions that lock both packed parity summaries and imported executable records
Do not mix this slice with:
- territory-access or selected-profile parity
- placed-structure batch placement parity
- shell queue/modal behavior
- direct translation of packed RT3 event rows into executable normalized effects
- broad speculative translation of packed RT3 event rows into executable normalized effects