Workspace¶
The workspace is the single source of truth for everything reyn produces during a run: intermediate files, tool outputs, and the event log. Every write goes through the OS and emits an event.
What lives in the workspace¶
| Kind | Where |
|---|---|
Files written by file.write Control IR ops |
Under the workspace root the agent chose |
| Event log | .reyn/events/<run_id>.jsonl |
| Eval reports | .reyn/eval-results/<skill>/<timestamp>.json |
Out of scope — task state and subscription binding. Task lifecycle state (status, DAG, content) lives in the external task backend (sqlite by default), not the workspace. The task↔session binding (assignee, requester) lives in the WAL (StateLog). Neither is workspace state. See Tasks for the backend-master model.
Why a single source¶
Two consequences fall out of having one workspace:
- Replayability. Because every write goes through the OS and emits an event, the event log alone is enough to reconstruct what the workflow saw. There is no "hidden state" the OS could be missing.
- Determinism boundaries. When something goes wrong, you can ask "did the run see the right input?" with a single
catof the workspace. There is no second source to reconcile against.