Eve version
0.22.4
Where
Local dev (eve dev --no-ui) with the bundled local Workflow world.
Problem
A normal interactive session that has completed a turn and is waiting for the next user message can retain a disk BundleKey that points at an immutable .eve/dev-runtime/snapshots/<revision>/.../compiled-agent-manifest.json. After enough later dev snapshots are published and the old revision falls outside the 5-snapshot / 15-minute retention window, restarting Eve and sending the next ordinary user turn fails before model execution:
FatalError: Step "step//eve@0.22.4//turnStep" failed after 3 retries:
ENOENT: no such file or directory, open
.../.eve/dev-runtime/snapshots/<old-revision>/source/.../.eve/compile/compiled-agent-manifest.json
The durable session cursor is valid and the root session remains in the local workflow store, but its compiled runtime artifact is gone.
Relationship to #172
#172 covered a turn parked inside HITL and was fixed in 0.12.3 by preserving snapshots referenced by active durable workflow data. This is the between-turn variant: the child turn is terminal, while the root interactive session is still waiting for its next message. The current text-based workflow-data snapshot scanner does not discover the retained BundleKey in this local-world storage shape (the payload is serialized inside Uint8Array/base64 workflow data), so pruning still removes the revision.
Reproduction
- Start
eve dev --no-ui.
- Create an interactive session and let turn 1 reach
session.waiting normally.
- Preserve its sessionId and continuationToken.
- Publish enough later snapshots, or age the session and restart enough times, that the turn-1 snapshot is older than both the recent window and retain count.
- Restart
eve dev and send turn 2 with the preserved continuation token.
- Observe
LoadCompiledManifestError / ENOENT on the deleted revision.
Expected
A root interactive session waiting between turns keeps every runtime artifact required for its next durable continuation, or resumes against a compatible current artifact without duplicating the accepted message. Snapshot pruning must understand the local world's serialized workflow-data representation rather than relying only on raw path text.
Workaround validated downstream
Building once and running eve start serializes bundled artifacts instead of a dev snapshot path. A two-turn black-box test survived a process restart on the same session with exact-once replay and no ENOENT.
Eve version
0.22.4
Where
Local dev (
eve dev --no-ui) with the bundled local Workflow world.Problem
A normal interactive session that has completed a turn and is waiting for the next user message can retain a disk BundleKey that points at an immutable
.eve/dev-runtime/snapshots/<revision>/.../compiled-agent-manifest.json. After enough later dev snapshots are published and the old revision falls outside the 5-snapshot / 15-minute retention window, restarting Eve and sending the next ordinary user turn fails before model execution:The durable session cursor is valid and the root session remains in the local workflow store, but its compiled runtime artifact is gone.
Relationship to #172
#172 covered a turn parked inside HITL and was fixed in 0.12.3 by preserving snapshots referenced by active durable workflow data. This is the between-turn variant: the child turn is terminal, while the root interactive session is still waiting for its next message. The current text-based workflow-data snapshot scanner does not discover the retained BundleKey in this local-world storage shape (the payload is serialized inside Uint8Array/base64 workflow data), so pruning still removes the revision.
Reproduction
eve dev --no-ui.session.waitingnormally.eve devand send turn 2 with the preserved continuation token.LoadCompiledManifestError/ ENOENT on the deleted revision.Expected
A root interactive session waiting between turns keeps every runtime artifact required for its next durable continuation, or resumes against a compatible current artifact without duplicating the accepted message. Snapshot pruning must understand the local world's serialized workflow-data representation rather than relying only on raw path text.
Workaround validated downstream
Building once and running
eve startserializes bundled artifacts instead of a dev snapshot path. A two-turn black-box test survived a process restart on the same session with exact-once replay and no ENOENT.