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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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