Files

52 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

---
name: memory
version: "1.0.0"
description: Session state backend for WDS. Called by wrap, start, and handoff tools — never directly by users. Writes to progress/ in the project repo.
agents: [saga, freya, mimir]
---
# WDS Memory — File Backend
Handles all persistent state for WDS sessions. Two operations: save and load.
State lives in `progress/` at the project root. This folder is project-scoped — not global, not per-machine.
---
## save
**Called by:** wrap (step 3), handoff (step 3)
**Input:**
- `agent_id` — the agent whose state is being saved (saga, freya, mimir)
- `data` — the compiled state block (Wrapped, Context, Plan, Next, Learned, Spec Sync fields)
**Steps:**
1. Ensure `progress/` exists at the project root. Create it if not.
2. Write `progress/[agent_id].md` with the data block exactly as provided.
3. Return: `saved progress/[agent_id].md`
---
## load
**Called by:** start (step 2)
**Input:**
- `agent_id` — the agent whose state is being loaded
**Steps:**
1. Check if `progress/[agent_id].md` exists.
2. If found: return the full file content.
3. If not found: return nothing. The calling tool handles the fresh-start case.
---
## Notes
- `progress/` should be in `.gitignore`. It is machine-local session context, not project content.
- Both save and load are synchronous file operations — no tokens, no async, no IDs.
- This is the canonical storage backend. State is local to the machine and project — not synced, not shared.