Skip to content

Term

ProjectSnapshot

An immutable resolved project definition at an exact revision. It is the pinned meaning of a Project that a WorkSession actually ran against.

Parent: Project 1 via snapshots

Identity
project_snapshot_id
Kind
name
Authority role
project-catalog
Mutability
immutable
Status
accepted

Purpose

Give WorkSessions a frozen, portable project definition so later mutation of the live Project cannot rewrite history.

Relationships

NameTargetKindCardinalityInverse
projectProjectreferences1snapshots 0..*
pinned_by_work_sessionsWorkSessionobserves0..*project_snapshot 0..1

Invariants

  • MUST immutable: A ProjectSnapshot MUST be immutable after publication.
  • MUST NOT no-runtime-state: A ProjectSnapshot MUST NOT contain PIDs, ports, heartbeats, or current workspace/run/conversation state.
  • MUST NOT no-credentials: A ProjectSnapshot MUST NOT serialize credentials or other secrets.
  • MUST pin-exact-revision: A project-bound WorkSession MUST pin exactly one ProjectSnapshot revision.

Aliases

  • project-revision

Deprecated aliases

None.

Not synonyms

  • Project: The live Project remains mutable; the snapshot is a frozen revision.
  • WorkSession: A snapshot is definition, not an episode of work.

Examples

  • Hash-addressed export of project policy and resource names used to open a WorkSession.

Anti-examples

  • A live project record that still accepts policy edits.
  • A bundle that includes API tokens or raw credentials.

Fields

The identity field is the index of the handle. fields is the exchange shape.

NameKindTypePortableNotes
project_snapshot_ididentitynameTrue
project_idreferencenameTrue
revisionmetadatastringTrueExact revision identifier of the resolved definition.
definition_hashmetadatastringTrue
resolved_definitionpayloadobjectTrueMust not embed credentials or live runtime handles.

Native mapping hooks

SystemNative termFidelityNotes
project-interop_none_tbdSnapshot/export objects may exist; equivalence is unverified.