Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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