Choose the inputs
Use Session resources to attach files,
repositories, and Memory through
resources[]. Configure Skills on the Agent;
see Install a Skill. Each Session owns its resource
selection. It does not follow a live reusable Session template.
A Skill can explain how to publish a release. It cannot grant the Tool,
provider account, credentials, or permission to publish one. The same rule
applies to repository instructions and Memory. Configure actions separately
through Tools.
Resolve a user turn
Starting a Session fixes its AgentVersion, Skill references, and resource selection policy. It does not freeze everylatest source for the Session’s
entire life.
When a new user turn becomes eligible to run, Checkfu resolves its selectors
and records exact versions and content digests. A configured exact version
stays on that version. A latest selector can pick up a publication made
since the previous turn. An additional authorized Skill activation can be
pending for a later eligible turn; it does not rewrite active work.
Tool rounds, answers to questions, approvals, retries, and recovery continue
the same Run. They retain the original resolved inputs rather than looking up
latest again. A new independent request has its own Run and context
selection. See Sessions and Runs.
Memory can also advance through that input’s own retained, committed write
checkpoints on a supported path. Each later round records its exact revision
and write provenance; retries preserve those records. This does not select
unrelated changes to today’s Memory. See Memory.
Keep access current
A version pin identifies content; it does not grant lasting access. Discovery, reads, writes, reuse, and publication require current authorization. Recovery cannot restore a revoked permission or recover content that retention or erasure has removed. If an original required input is missing or no longer authorized, continuation refuses or reports unavailable. It does not replace that input with a newer version, a resource with the same name, or another account. Content also keeps its audience restrictions. A personal MemoryStore or native private memory does not become Workspace knowledge because a Session used it. Shared adoption and later reuse follow the existing resource’s permissions, retention, and promotion rules.Files and file trees
Use a File mount for one uploaded file and a FileTree for a file tree or Git repository. Both resolve through the same mount machinery: destinations cannot overlap, staged bytes are digest-verified, andsession.resources_resolved records the exact inputs selected for a Run,
including version and content provenance. It is not a receipt that the harness
read those bytes or used the instructions. Verify use through the Run’s actual
output and supported harness evidence; successful selection alone does not
qualify native execution or recovery.
FileTrees add immutable revisions. A mount may pin one revision or follow
latest; latest resolves to a concrete revision for each new eligible turn.
Question answers and custom Tool results continue the same Run with that
turn’s full original resolved resource manifest. A revision published while the
turn is waiting becomes eligible for a later turn; it does not replace the
original continuation inputs.
If those original resources cannot be used under current authority, continuation
refuses rather than selecting a newer revision.
Writable overlays remain disposable unless a Git-backed FileTree explicitly
enables pull-request writeback. GitHub is therefore one provider-specific path
through FileTrees and governed Connections, not a
separate context system.
On the FileTree compatibility path, a repository mount announces Skills
discovered at exactly .claude/skills/<name>/SKILL.md in the frozen revision — for a Git FileTree
that is the resolved version, and for a github_repository Session Resource it
is the checked-out commit. They stay at their repository paths and never
become catalog Skills or release pins. When the Agent has its built-in read
tool, the prompt points to the generated read-only index at
/environment/.checkfu/repository-skills.md; without read, no pointer is
added. Mounting the repository admits those instructions into the Agent’s
trust boundary, so review that directory for repositories that accept outside
contributions. Nested, rootless, and package-local layouts are not announced.
Native recorded-Git preparation currently does not discover or load those
repository-local Skills. Configure reusable Skills through their versioned
resource contract; recording a repository revision does not activate them.
See Session resources for the wire shapes and
FileTrees for upload, Git, and writeback behavior.
Native Session resource boundaries
Resource delivery depends on the selected Harness. A native file adapter can expose bounded read-only files and directory readers without creating a writable sandbox checkout. Do not infer shell execution, file mutation, or watches from a readable mount. Git-backed FileTrees retain their original Connection and exact recorded revision; a missing source leaves that namespace unavailable rather than selecting another source. The current native uploaded-tree reader requires an acting Principal. An API-key Session withoutacted_as cannot use that body-reading path, even if
the tree’s metadata was selected. This is a delivery limitation; specifying
acted_as still requires the real delegation and resource permissions.
Native Workspace execution does not currently publish generated artifacts as
downloadable Session Files. A retained Tool result or a readable input mount
does not establish that output path. Use the selected Harness’s supported
capture and File publication path before relying on downloads or reuse in
another Session. Private Workspace state and native private memory are not
automatically published or shared.
Memory writes use their own governed writer. A writable mount needs the
original write offering and current write permission; mount metadata alone
does not enable it. See Memory for working refs, checkpoints,
and supported read and write paths.
Selection, staging, actual use, and retention are separate steps. A resolved
revision or successful directory read does not show that the Harness read the
file’s bytes. Retained conversation does not establish that files or native
continuation state survived. Check the selected Harness’s
capability status and the Run’s output before relying
on a particular delivery or recovery path.
Memory
Memory is durable, governed knowledge that can outlive any one Session. A mount requestsread_only or read_write access; admission
checks the Agent’s PermissionAssignments for a resources[] attachment.
When a Principal is part of the acting authority, its PermissionAssignments
are checked too. Current permissions are checked again when the Run uses
Memory. Shared stores owned by a Workspace, Agent, or CollaborationSpace mount
read-only in Sessions. Shared canonical changes follow the store’s write and
promotion policy; that policy does not grant Session writers direct canonical
access. Principal-owned writes stay on the Session’s working ref and do not
silently become another Session’s input.
To reuse a writer’s retained output, take new_version from its
memory.change_checkpointed event and attach the store with access: "read_only"
and selection: { kind: "version", version: new_version }. A named ref selection
resolves to an exact revision before the Run; a selected MemoryVersion identifies
one immutable tree. Where the native versioned writer is installed, an explicit
selection on an effective read_write mount fixes the base of that Session’s
working ref; it does not edit the selected immutable revision. An existing
working ref at a different version refuses that base. Mount paths without this
writer refuse explicit selections on effective read_write mounts.
The Session detail shows declared selection intent, not a frozen Memory input or
native-use receipt. Verify delivery through the relevant Run and attempt inputs.
Neither selection nor a checkpoint receipt grants access or extends retention: revoked permissions, expired bodies, and erasure still apply.
See carry a sealed revision into another Session
for the complete request.
Memory is not hidden conversation history. Stores and their MemoryVersions are addressable,
access is explicit, and writeback settles through its own durable lifecycle.
Context windows and condensation
The Session event log remains the durable record even when a model cannot read the entire history in one request. Checkfu bounds model input without rewriting that record. Automatic compaction is currently disabled for native Sessions; their Managed Agent snapshot does not carry thecompaction_policy described
below. Do not treat a successful native reply or retained history as proof of
compaction support.
For execution paths that support these mechanisms:
- request-time compaction follows the published Agent version’s
compaction_policyand the admitted model route’s context window; - between turns, structural condensation can replace an older conversational prefix with an explicit elision marker while retaining the newest tail;
session.compactedandsession.context_condensedmake both boundaries observable.
GET /v1/sessions/{id}/ledger reports current and cumulative context tokens,
loaded Tool and Skill references, compactions, and condensations without
returning prompts or messages. Use the context ledger guide
when you need to explain what was loaded and what it cost.
Next steps
FileTrees
Mount uploaded files or Git repositories and control revision and writeback behavior.
Memory
Give Agents durable knowledge with explicit ownership, PermissionAssignments, and version history.
Sessions and Runs
See when identity freezes, when mounted data resolves, and how each turn settles.
Tools
Keep callable capabilities distinct from files and instructions.