Snapshot
A note on terminology: “snapshot” was the older intended name for what the code now stores under the session concept. The code consistently uses “session” —
session.json,/sessions/{id}/,submit_session,session_events. This page is kept for now as a cross-reference for anyone arriving from the old vocabulary. For the authoritative description of the submitted artifact, see Session.
The Submitted Artifact
The submitted artifact in Xenocept is called a session. On Submit, Xenocept persists /sessions/{session-id}/ containing session.json, screenshot.png, optionally screenshot-clean.png, and one focus-{i}.png per Note. See Session for the full layout and Session JSON Schema for the JSON shape.
Why the Name Change
The early design vocabulary had a clean trio: Workspace → Comment → Snapshot. The implementation converged on a slightly different model: capture is single-monitor (no workspace concept), comments are Notes, and the submitted artifact is a session. The shape of that artifact is also simpler than the earlier design imagined — no schema_version, no workspace block, no metadata block, no ULID. Just a timestamp-keyed directory with images and a flat session.json.
This page exists to point you at Session when you arrive looking for “snapshot” terminology. The substance is the same; the name is what changed.
What’s Immutable
Once persisted, the files under /sessions/{session-id}/ are not overwritten by anything except an explicit delete (DELETE /api/v1/sessions/{id}, ). The frontend’s “edit mode” doesn’t mutate the original — it loads a session into the canvas as starting state and creates a new session on the next Submit.
Cross-References
- Session — the authoritative description
- Snapshot JSON Schema — the actual JSON shape
- Note — the comment-area concept
- Storage Layout — where things land inside the AeorDB file