Skip to content

0.0.6 legacy line: snapshot round-trip defects (timer seq, external map, host counters) #73

Description

@fruwe

Affects the released 0.0.6 line only — the Host/Instance surface no longer exists on main (0.1.0 format 1 replaced snapshots with sealed execution checkpoints). Recording for anyone pinned to 0.0.x, and as input to the 0.0.x support-status decision (fruwehq/determa-state-spec#66).

Reproduced against the 0.0.6 tree:

  1. Timer seq lost → KeyError crash. Instance.to_snapshot serializes timers as {fire_at, state_path, spec} (instance.py:655-659), dropping the seq armed at instance.py:525; Host.advance sorts due timers by t["seq"] (engine.py:197). snapshot_all → restore_all → advance raises KeyError: 'seq'. Conformance case 21 round-trips an armed timer but never advances afterwards, so the suite misses it.
  2. Host-seeded external map not serialized (instance.py:644-662); after restore, re-entering a state re-initializes external esvs against an empty dict, silently losing seeded values.
  3. Host clock and spawn counters absent from library snapshots (engine.py:225-239): restored absolute fire_at values race a reset clock, and a post-restore spawn can re-issue an existing child id, overwriting host.instances[child_id].

If the resolution of the spec issue is "0.0.x frozen/unsupported", this can be closed with a README note on the 0.0.x releases; otherwise fixes need conformance cases (roundtrip+advance, roundtrip+external re-entry, restore+spawn).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions