Documentation Index
Fetch the complete documentation index at: https://mintlify.com/xxyoudeadpunkxx/canon-boundary-guard-for-gpt-project/llms.txt
Use this file to discover all available pages before exploring further.
SESSION_STATE.schema.json defines the structure of the working session state file stored at /mnt/data/_SESSION_STATE.json. This page documents every field, its type, constraints, and purpose. The file is validated against schemas/SESSION_STATE.schema.json using JSON Schema Draft 2020-12.
Full schema
Required fields
Constant value:
"canon-boundary-guard:gpt-project-adapter". Identifies the protocol family. Any other value causes schema validation to fail.Constant value:
"1.1". Identifies the schema revision. Must match exactly.Non-negative integer (
minimum: 0). Starts at 0 after bootstrap and increments by 1 with each Mode B or Mode C state-changing decision. The value must match seq in any associated CANON_STATE_DELTA.ISO-8601 timestamp recording when the state was last written. Example:
"2025-07-14T09:15:00+00:00".Array of L0 source objects representing every source surface that has been inspected in this session. Must not be empty after bootstrap — see First-install note. Each item conforms to the active_l0_sources items schema.
Array of authorized delta objects tracking every Mode B/C decision that has been approved. May be empty. Each item conforms to the authorized_deltas items schema.
Array of conflict objects for any provenance conflicts that have been detected. May be empty. Each item conforms to the open_conflicts items schema.
Array of decision objects for questions awaiting operator resolution. May be empty. Each item conforms to the pending_decisions items schema.
Array of artifact objects recording every durable artifact produced since the last state reset. May be empty. Each item conforms to the last_persistent_artifacts items schema.
Optional field
SHA-256 hash of the previous state, in the format
"sha256:<hex>". Used by validate_state.py and artifact_fingerprint.py to verify continuity between state files. Omit if no prior hash is available.active_l0_sources items
Each object inactive_l0_sources records one inspected source surface. additionalProperties is false — no extra keys are permitted.
A path, file ID, or human-readable label that uniquely identifies the source within this session. Examples:
"canon-boundary-guard-gpt/references/protocol.md", "uploaded:state_2025-07-14.json".Enum describing the nature of the source:
| Value | Meaning |
|---|---|
project_file | A file present in the ChatGPT Project |
project_source | A source saved as a Project Source |
uploaded_file | A file uploaded directly into the conversation |
local_file | A file read from the local filesystem via tool |
tool_output | Output produced by a tool invocation |
command_output | Output produced by a shell command |
verified_external_source | An external URL or resource verified by the operator |
state_file | A _SESSION_STATE.json or state-equivalent file |
Enum describing the current accessibility of the source:
| Value | Meaning |
|---|---|
inspected | Source was read and verified this session |
unavailable | Source was expected but could not be accessed |
conflicted | Source was found but conflicts with another registered source |
Optional free-text annotation. Use to record inspection details, anomalies, or cross-references to
open_conflicts entries.authorized_deltas items
Each object inauthorized_deltas records one approved Mode B or Mode C decision. additionalProperties is false.
Unique identifier for this delta. Typically matches the
seq counter or a human-readable label, e.g. "delta-3".ISO-8601 timestamp when the operator authorized this delta.
Human-readable description of what this delta covers. Example:
"Add chapter-2 draft as project source".Enum tracking persistence lifecycle:
| Value | Meaning |
|---|---|
pending_persistence | Delta authorized but the artifact has not yet been durably saved |
persisted | Artifact has been saved and confirmed by the operator |
revoked | Authorization was withdrawn before or after persistence |
Optional path or label identifying the artifact that this delta targets. Example:
"/mnt/data/chapter-2-draft.md".open_conflicts items
Each object inopen_conflicts records a detected provenance conflict. additionalProperties is false.
Unique identifier for this conflict. Example:
"conflict-1".Human-readable explanation of what conflict was detected and which sources are involved.
Enum tracking resolution lifecycle:
| Value | Meaning |
|---|---|
open | Conflict has been detected and is not yet resolved |
resolved | Operator provided a resolution; conflict is closed |
deferred | Resolution explicitly postponed to a future session |
pending_decisions items
Each object inpending_decisions records a question that must be resolved by the operator before work can continue. additionalProperties is false.
Unique identifier for this pending decision. Example:
"decision-2".The exact question the operator must answer. Should be precise enough that the answer can unambiguously close the decision.
When
true, this decision blocks all Mode B/C operations until resolved. When false or absent, work may continue under constraints.last_persistent_artifacts items
Each object inlast_persistent_artifacts records one durable artifact produced since the last state reset. additionalProperties is false.
Unique identifier for this artifact. Example:
"artifact-1".Enum classifying the artifact:
| Value | Meaning |
|---|---|
project_source | Saved as a ChatGPT Project Source |
downloaded_file | Downloaded by the operator from the conversation |
canvas | A Canvas document |
document | A generic document artifact |
state_file | A SESSION_STATE or CANON_STATE_DELTA file |
other | Any artifact not covered by the above types |
ISO-8601 timestamp when the artifact was created or marked as persisted.
Optional path or human-readable label identifying where the artifact is stored. Example:
"/mnt/data/_SESSION_STATE.json" or "chapter-2-draft (Project Source)".First-install note
CANON_STATE_DELTA schema
Reference for the snapshot delta emitted after every Mode B or Mode C state change, which embeds a full
SESSION_STATE object.