Repository navigation
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
Documentation
e83e9d0docs(api): clarify SnapshotRef layering and flag the oneof TODO72ffed4docs(api): generate the api reference from the protos101b5d7docs: add concepts, quickstart, harness authoring, faq, and index1dbda39docs: add contributing, security, and conduct guides (#24)7cd11f1docs: add project readmeaaca9bbdocs: cover fork use cases, cost, and the substrate roadmap gap4922b4edocs: document fork child naminga8f2688docs: document how users interact with agentsessions (#39)a5537e5docs: document session metadata and listingc3f5d6edocs: document the security posture and API stability (#35)5e0e08adocs: drop stale line-count qualifier for the chain verifier4001f1edocs: fix unrenderable mermaid diagram in substrate-conformancedd7ad0adocs: refresh README and add architecture + substrate-conformancedfee890docs: state what each design choice buys (#42)
Build and CI
934d262build(demo): add container image, kind manifests, and demo script9f5e27bbuild(deps): bump google.golang.org/grpc (#25)6f7f9a8build(proto): generate go and grpc stubs via pinned buf pluginsee9948dbuild: add the release workflow (#40)104fdfaci(substrate): run the fork conformance suite against a real clusterad97111ci(substrate-e2e): run axis-2 micro-VM conformance in one clustera2cff2aci: add codegen-reproducibility and build/test workflowede9b1dci: drop the go build cache (post-save ballooned to 51m)fd78142ci: gate every pull request on the full test suite72be4dbci: gate proto compatibility on the last release, not main (#18)434c5d2ci: gate race, buf lint/breaking, and chain verifier34de605ci: speed up substrate-e2e with build cache and path filters
Other
c16d288Initial commit36fa53echore: initialize go modulefd57463chore: relicense under Apache 2.0 (#23)74d4f52refactor: remove the walking-skeleton and dead declarations (#21)
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