Repository navigation
Releases: agent-primitives/sessions
Release list
v0.2.0
agentsessions v0.2.0
Pre-1.0: the wire contract and the Go SPI may both change. agentsessions.v1 is a proto
namespace, not a stability promise.
There is no authentication, authorization, or transport security. Do not expose a host to an
untrusted network or treat it as multi-tenant. See docs/security.md.
Changelog
Features
f4cfb77feat(agentsessionsd): add WithToolExecutors option (#161)cfc6b5bfeat(agentsessionsd): configure Unix-socket tool executors (#166)b0d9e94feat(api): add approval contract and storage projection (#130)be79f98feat(api): carry tool calls and results as message parts (#103)e680ea1feat(chatagent): read a system prompt from execution config (#78)ca85f47feat(client): pass execution config through ExecOptions (#124)7cbc035feat(controller): approval engine and wire protocol552a23bfeat(session): activate approval controls (#132)3366943feat(session): add expected_last_seq to Resume (#141)f41e942feat(session): implement permanent soft deletion (#123)e748c3ffeat(site): polish prose measure, API reference, 404, nav state and diagrams (#167)7310d53feat(substrate): reach harnesses through atenet-router on current substrate main (#91)8f519e2feat: add reference conversational chat harness (#64)8d97860feat: add the harness registry API and gate new sessions on retire (#100)01248d0feat: register a harness by address instead of by recompiling (#70)773b0a9feat: serve harness registry on a loopback operator listener (#121)
Fixes
63e1927fix(controller): check tool calls during replay and recovery (#86)b212d49fix(controller): keep each execution's config for replay and resume (#76)c37ca4ffix(controller): preserve recorded intent after mediation rejection (#113)a6a4176fix(controller): preserve replay execution boundaries (#63)25522befix(controller): recover a turn cut during a model call on resume (#94)15d9869fix(controller): replay and resume v0.1.2 journals (#106)3a7b0a2fix(harnesswire): keep declared tools in Describe (#84)3316c93fix(openai): refuse redirects that leave the base URL's origin (#133)41021e7fix(placement): keep suspended actors so Resume works (#83)4c1ceadfix(placement): pass the host tool executor to controllers (#85)5c9fa53fix(session): isolate unservable harness registrations (#120)e050570fix(session): reject identity on Fork (#77)dabbff5fix(session): resume the recorded harness and check its version (#107)5b23d52fix(site): fix accessibility and layout defects on the docs site (#159)5ac10b1fix(substrate): read the held snapshot from the actor snapshots list (#137)4b397d1fix(wire): decode an empty bytes source as no bytes (#165)805d37afix: make sink serialization cancellation-aware (#136)c8c4ab4fix: model transport fixes for real providers (#138)
Documentation
74186b6docs(site): serve the site from sessions.agent-primitives.dev (#142)1532a50docs: add Copilot code review instructions (#148)f5f49f5docs: add draft AgentSessions protocol specification (#152)c3d4b8fdocs: add the project website (#67)c56ebeadocs: clarify deletion listing, cursor errors and journal upgrades (#162)9a3d755docs: correct claims that predate the first release (#69)cee2dd4docs: fix install instructions and add a Kubernetes deployment (#66)a4b2e5adocs: link the README to the site, and check markdown links in CI (#68)d6f2d34docs: relicense under MIT (#163)
Build and CI
506e3d3build(deps): bump golang.org/x/net to v0.60.0 and Go toolchain to 1.26.9 (#105)6030823build(deps): bump the actions group with 11 updates (#73)1713bd3build(deps): bump the go-dependencies group across 2 directories with 3 updates (#118)8cbff28ci(substrate-e2e): cache substrate builds and add a main canary (#147)ae06649ci: group Dependabot Go updates across both modules (#117)f22b9d9ci: report required checks on every PR with a path filter job (#151)
Other
18fddb9chore: move project ownership to the agent-primitives maintainers (#143)f113381chore: prepare v0.2.0 (#172)2431601refactor!: move Go module to github.com/agent-primitives/sessions (#146)14b4cf7refactor(sqlitelog): drop unused COMPLETE deletion state (#164)
Verify an artifact
Every archive is checksummed, and each carries an SBOM alongside it:
sha256sum -c checksums.txt --ignore-missing
Public releases also carry signed build provenance, which ties an archive to the workflow,
commit, and runner that produced it:
gh attestation verify <file> --repo agent-primitives/sessions
Container images
ghcr.io/agent-primitives/sessions/agentsessionsd:v0.2.0
ghcr.io/agent-primitives/sessions/harnessnode:v0.2.0
Multi-arch (amd64 and arm64), built with ko from the tagged source, each with an SBOM pushed
alongside it. agentsessionsd runs as uid 65532; give its journal path a writable volume.
v0.1.2
agentsessions v0.1.2
Pre-1.0: the wire contract and the Go SPI may both change. agentsessions.v1 is a proto
namespace, not a stability promise.
There is no authentication, authorization, or transport security. Do not expose a host to an
untrusted network or treat it as multi-tenant. See docs/security.md.
Changelog
Build and CI
1601530build(deps): bump the go-dependencies group with 2 updates (#54)adb5d10build: install ko directly instead of via setup-ko (#62)c855f18build: publish images under their documented names (#60)f5e3cc7build: stop setup-ko from overriding the image repositories (#61)
Verify an artifact
Every archive is checksummed, and each carries an SBOM alongside it:
sha256sum -c checksums.txt --ignore-missing
Public releases also carry signed build provenance, which ties an archive to the workflow,
commit, and runner that produced it:
gh attestation verify <file> --repo aramase/agentsessions
Container images
ghcr.io/aramase/agentsessions/agentsessionsd:v0.1.2
ghcr.io/aramase/agentsessions/harnessnode:v0.1.2
Multi-arch (amd64 and arm64), built with ko from the tagged source, each with an SBOM pushed
alongside it. agentsessionsd runs as uid 65532; give its journal path a writable volume.
v0.1.1
agentsessions v0.1.1
Pre-1.0: the wire contract and the Go SPI may both change. agentsessions.v1 is a proto
namespace, not a stability promise.
There is no authentication, authorization, or transport security. Do not expose a host to an
untrusted network or treat it as multi-tenant. See docs/security.md.
Changelog
Documentation
Build and CI
9d20a01build: link changelog entries and skip provenance while private (#43)e64e3e3build: publish container images to ghcr (#46)b690748ci: add lint and vulnerability gates (#44)19bf2b1ci: validate workflows, and fix the unparseable release file (#48)
Verify an artifact
Every archive is checksummed, and each carries an SBOM alongside it:
sha256sum -c checksums.txt --ignore-missing
Public releases also carry signed build provenance, which ties an archive to the workflow,
commit, and runner that produced it:
gh attestation verify <file> --repo aramase/agentsessions
Container images
ghcr.io/aramase/agentsessions/agentsessionsd:0.1.1
ghcr.io/aramase/agentsessions/harnessnode:0.1.1
Multi-arch (amd64 and arm64), built with ko from the tagged source, each with an SBOM pushed
alongside it. agentsessionsd runs as uid 65532; give its journal path a writable volume.
v0.1.0
agentsessions v0.1.0
Pre-1.0: the wire contract and the Go SPI may both change. agentsessions.v1 is a proto
namespace, not a stability promise.
There is no authentication, authorization, or transport security. Do not expose a host to an
untrusted network or treat it as multi-tenant. See docs/security.md.
Changelog
Features
b666f65feat(agentctl): add CLI with embedded-by-default Sessions servere888332feat(agentctl): add list and session metadata flags5f0cea1feat(agentctl): name children when forking71e9206feat(agentnode): add co-located pod node with replay-resumeb48bbdefeat(api): add request context to the wire model-call3d3f300feat(api): add session, harness, and runtime contracts0a20aa8feat(api): content model, reasoning, log-record, two-axis statea5b0bdefeat(api): drop the Pause and Heartbeat RPCs (#20)df4c83efeat(api): flatten the SnapshotRef oneof (#19)e0d6b52feat(api): let callers name fork children45af501feat(api): make the simple path one call (#34)ea44a8bfeat(api): paginate ListSessionsb2d3694feat(api): thread context through the harness SPI (#17)c5db13afeat(canon): add language-neutral content hash for the logc657d33feat(client): add the Go client SDK (#36)49ec9c2feat(controller): add WithFence to bind a caller-minted fencefbdf225feat(controller): add crash-recovery resume with at-most-once re-drivea2d8242feat(controller): add event-sourced core with host-mediated replayfc8563ffeat(controller): mediate tools with idempotent crash resume36c4f4bfeat(controller): pass conversation history to the harness on exec0fcc7eefeat(controller): require idempotency key for mediated toolsb8a0bc8feat(counteragent): add in-RAM counter harness for axis-2b430b7efeat(echoagent): add stateless-replay echo harness7ea048dfeat(eventlog): add append-only log with CAS, fencing, hash-chainb3814fcfeat(eventlog): add error-returning Store interface and adapter4ae2beefeat(fork): clone the parent memory snapshot on substrate fork20e2217feat(harnessnode): add in-sandbox harnesswire server + substrate manifestsc6c15f9feat(harnesswire): bridge api.Harness and the Harness.Connect streamc20d8a8feat(harnesswire): mediate tool calls over the wired134bf2feat(harnesswire): verify model and tool result correlation idsd56bb7afeat(host): add walking-skeleton host, replay, and conformance suite6b2fb46feat(integrations/substrate): add ate-api ControlClient adaptere3e890afeat(model): add an OpenAI-compatible model provider (#33)d69814efeat(observability): trace request flow (#8)79de4c1feat(placement): gate unplaceable harnesses as FailedPreconditione04c4aefeat(placement): make the harness dialer pluggable via WithDialera508e0afeat(placement): route Sessions Exec through the Runtime SPIdc177bafeat(placement): route sessions to the harness they name (#28)3a3f29dfeat(placement): wire suspend/resume/fork through the Runtime SPIbda78c8feat(runtime): add agent-substrate Runtime backend2b03103feat(runtime/local): add filesystem-only in-process backend6be95a1feat(runtime/local): serve the harness over a unix socket07bc236feat(runtime/substrate): add Describe for placement gating3a35fc8feat(runtime/substrate): dial the harness at PodIP:80, not the mesh0569a97feat(session): add Sessions gRPC service over the durable log202fdc7feat(session): honor the request fields the contract declares (#38)159b59ffeat(session): implement storage-backed ListSessions55376bbfeat(session): stream a turn as it happens (#37)bb410bdfeat(sqlitelog): add persistent sqlite-backed event log8147918feat(sqlitelog): persist session metadata and enumerate sessions0acce6cfeat(sqlitelog): stamp the schema version (#22)dcf4b59feat(substrate): add axis-2 memory-continuity driver + Jobf97c526feat(substrate): add micro-VM counter ActorTemplate for axis-2ddf829ffeat(substrate-e2e): add axis-1 conformance driver and CI workflowc095489feat(substrate-e2e): auth Control with TLS+token and ensure atespacecc51f44feat(substrate-e2e): run axis-1 conformance as an in-cluster Job6488ae3feat(verify): add cross-language chain verifier with tamper detection8d74509feat(wire): pin domain types to generated proto types
Fixes
5d070f9fix(ci): compare buf breaking against a remote-tracking base ref0c4b8cafix(ci): give ate-system rollouts a longer budgetd7d3e00fix(controller): detect interrupted turn by last input without endfaea643fix(controller): reject unmediated and unapproved tool calls053079bfix(harnessnode): pin distroless ko base for ateom unpackab6fc61fix(harnesswire): surface failed remote-harness end-state29a3196fix(runtime): classify invalid session specs9cc8fb5fix(runtime): validate session specs before create1220576fix(session): stop copying the parent name onto fork children00c49d2fix(sqlitelog): retry the WAL mode switch under lock contention029115efix(substrate-e2e): drop ko --bare (rejects host:port repo)6e474a9fix(substrate-e2e): use onCommit Full for the stateless harnessf83e369fix(substrate-e2e): use valid onCommit=Data in the ActorTemplate