Date: 2026-05-29
Time: 11:13
I don't have access to the target repo. I'll work from what's available — the observations include lines 1–200, the test file, and the grep results.
event-sourcing-store/eventstore.py:LiveProjection — The class definition is past line 200 and wasn't captured in observations; reading it would reveal whether it overrides catchup(), savesnapshot(), or loadsnapshot()event-sourcing-store/eventstore.py:loadsnapshot — Referenced in tests but not visible in the observations; needed to confirm whether it re-registers subscriptionsevent-sourcing-store/eventstore.py:reconstructstate — The temporal query helper (used in testtemporalquery) — a third way to build state from events, distinct from both projections and snapshotssnapshot-persistence-gap — Snapshots are stored in-memory on the EventStore object (snapshots dict), meaning they don't survive process restarts even though events can be persisted to disk via persistpathcatch-up-subscription-gap — Between catch_up() finishing and the subscription being active, events appended concurrently could be missed; worth investigating whether LiveProjection handles this race---
live-projection-no-snapshot-interval — LiveProjection is never constructed with a snapshotinterval, so the automatic snapshot path in catchup() never triggers for live projectionssnapshot-state-excludes-subscription — Snapshot data (stored in store.snapshots) contains only state and position; subscriber callbacks are not captured, so restoring a snapshot does not restore live-update behaviorsnapshots-are-in-memory-only — savesnapshot() stores snapshot data in a dict on the EventStore instance, not on disk, so snapshots do not survive process restarts even when persistpath is setlive-projection-full-replay-on-restart — A LiveProjection must replay all events from position 0 on initialization because there is no snapshot restore path wired into its construction