You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: align spec citations, paths, and stubs with the v1.1 workspace
Sweeps documentation drift surfaced by the spec-vs-SDK audit. No code
behavior changes — only doc comments, markdown, and the changelog.
- RFC section refs corrected to ARCP v1.1 throughout (§8→§6 sessions,
§10→§7 jobs, §13→§7.6 subscribe, §15→§9 leases, §18→§12 errors,
§22→§4 transport; §11.3/§17/§19/§21 had no v1.1 analog and are
removed or re-anchored). SDK extensions beyond v1.1 (the
challenge/authenticate auth flow, signed_jwt/none auth schemes, the
x-… and arcpx.* extension namespaces, the artifact store, interrupt,
Priority) are now flagged as such instead of pretending to cite a
spec section.
- Broken doc paths fixed: src/* → crates/<crate>/src/* across
docs/architecture.md, docs/transports.md, docs/guides/errors.md,
docs/guides/jobs.md.
- docs/architecture.md and docs/README.md rewritten to describe the
actual Cargo workspace (umbrella arcp + arcp-core/client/runtime +
four reservation stubs) rather than the old "single arcp crate"
layout; feature flag table gains client/runtime rows; persistence
section notes runtime feature gating.
- docs/getting-started.md, examples/README.md, README.md: bump the
install snippet from arcp = "1.1" / "1" to "2"; soften the
"runnable" claim on examples that elide setup with todo!().
- CHANGELOG.md gains a 2.0.0 entry covering the workspace split and
the reservation stubs.
- CONFORMANCE.md §6.6 row downgraded to Partial — the runtime
implements list_jobs/job.subscribe but the client API does not yet
expose them as first-class Session methods; the publish dry-run
gate is updated to iterate the eight workspace crates.
- Reservation stub crates (arcp-tower, arcp-axum, arcp-actix-web,
arcp-otel) docs now explicitly state they ship no integration
types and do not depend on tower/axum/actix-web/opentelemetry, so
consumers don't install expecting middleware they don't get.
- README license footer updated to MIT OR Apache-2.0 to match
Cargo.toml; CONTRIBUTING WebSocket port matches the CLI default
127.0.0.1:7777.
- docs/guides/job-events.md adds an explicit "spec §8.2 kind" column
next to the SDK wire type column so readers can map between the
spec's job.event kind enum and the SDK's top-level Job* variants.
- README, CONTRIBUTING, and docs/guides/vendor-extensions.md flag
the SDK's session.open / session.accepted as the wire serialization
of the spec's §6.2 session.hello / session.welcome envelopes.
- recipes/README.md is honest about the recipes not being wired as
examples, and points readers at adapting the snippets.
Spec-conformance findings that require API changes (rename SessionOpen
→ SessionHello, add resume_token / heartbeat_interval_sec to the
welcome payload, restructure the top-level Job* variants into a
kind-tagged JobEvent enum, lease expiration enforcement, credential
rotation, JobState terminal set, etc.) are intentionally out of scope
for this commit. The full audit is at audit-findings.json /
audit-findings.md (kept untracked).
Verified locally:
cargo check --workspace --all-targets
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
cargo test --workspace --doc
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Nick Ficano <nficano@gmail.com>
Copy file name to clipboardExpand all lines: CONFORMANCE.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ The docs mirror is [`docs/conformance.md`](./docs/conformance.md).
14
14
| §6.3 Resume | Full | SQLite event log supports replay by session and sequence boundary; resumability examples exercise reconnect flows. |
15
15
| §6.4 Heartbeat | Full |`session.ping` / `session.pong` messages and runtime examples are implemented. |
16
16
| §6.5 Ack | Full | Runtime ack window and `session.ack` back-pressure are implemented. |
17
-
| §6.6 List jobs / Subscribe |Full|`session.list_jobs`, `job.subscribe`, `job.unsubscribe`, and generic subscription fanout are implemented. |
17
+
| §6.6 List jobs / Subscribe |Partial|Runtime: `session.list_jobs`, `job.subscribe`, `job.unsubscribe`, and generic subscription fanout are implemented. Client API does not yet expose `list_jobs`/`job.subscribe` as first-class `Session` methods. |
18
18
| §7 Jobs | Full | Submit, accept, start, complete, fail, cancel, state inventory, and idempotent retry paths. |
19
19
| §7.3 State machine | Full |`JobRegistry` tracks pending, running, and terminal states. |
20
20
| §7.4 Cancellation | Full | Cooperative cancellation uses `CancellationToken` and emits cancelled terminal outcomes. |
@@ -123,7 +123,7 @@ This is the whole shape of the SDK: open a session, submit work, consume an orde
123
123
124
124
ARCP organizes everything around four concerns — **identity**, **durability**, **authority**, and **observability** — expressed through five core objects:
125
125
126
-
-**Session** — a connection between a client and a runtime. A session carries identity (a bearer token), negotiates a feature set in a `hello`/`welcome` handshake, and is *resumable*: if the transport drops, you reconnect with a resume token and the runtime replays buffered events. Jobs outlive the session that started them. See [§6](https://github.com/agentruntimecontrolprotocol/spec/blob/main/docs/draft-arcp-1.1.md).
126
+
-**Session** — a connection between a client and a runtime. A session carries identity (a bearer token), negotiates a feature set in a hello/welcome handshake (the SDK serializes these as `SessionOpen`/`SessionAccepted`), and is *resumable*: if the transport drops, you reconnect with a resume token and the runtime replays buffered events. Jobs outlive the session that started them. See [§6](https://github.com/agentruntimecontrolprotocol/spec/blob/main/docs/draft-arcp-1.1.md).
127
127
-**Job** — one unit of agent work submitted into a session. A job has an identity, an optional idempotency key, a resolved agent version, and a lifecycle that ends in exactly one terminal state: `success`, `error`, `cancelled`, or `timed_out`. See [§7](https://github.com/agentruntimecontrolprotocol/spec/blob/main/docs/draft-arcp-1.1.md).
128
128
-**Event** — the ordered, session-scoped stream a job emits: logs, thoughts, tool calls and results, status, metrics, artifact references, progress, and streamed result chunks. Events carry strictly monotonic sequence numbers so the stream survives reconnects gap-free. See [§8](https://github.com/agentruntimecontrolprotocol/spec/blob/main/docs/draft-arcp-1.1.md).
129
129
-**Lease** — the authority a job runs under, expressed as capability grants (`fs.read`, `fs.write`, `net.fetch`, `tool.call`, `agent.delegate`, `cost.budget`, `model.use`). The runtime enforces the lease at every operation boundary; a job can never act outside it. Leases may carry a budget and an expiry, and may be subset and handed to sub-agents via delegation. See [§9](https://github.com/agentruntimecontrolprotocol/spec/blob/main/docs/draft-arcp-1.1.md).
@@ -399,12 +399,12 @@ Full API reference — every type, method, and event payload — is in [`docs/`]
399
399
400
400
## Versioning and compatibility
401
401
402
-
This SDK speaks **ARCP v1.1 (draft)**. The SDK follows semantic versioning independently of the protocol; the protocol version it negotiates is shown above and in `session.hello`. A runtime advertising a different ARCP MAJOR is not guaranteed compatible. Feature mismatches degrade gracefully: the effective feature set is the intersection of what the client and runtime advertise, and the SDK will not use a feature outside it.
402
+
This SDK speaks **ARCP v1.1 (draft)**. The SDK follows semantic versioning independently of the protocol; the protocol version it negotiates is shown above and in the `SessionOpen` envelope (which the spec names `session.hello`). A runtime advertising a different ARCP MAJOR is not guaranteed compatible. Feature mismatches degrade gracefully: the effective feature set is the intersection of what the client and runtime advertise, and the SDK will not use a feature outside it.
403
403
404
404
## Contributing
405
405
406
406
See [`CONTRIBUTING.md`](CONTRIBUTING.md). Protocol questions and proposed changes belong in the [spec repository](https://github.com/agentruntimecontrolprotocol/spec); SDK bugs and feature requests belong here.
407
407
408
408
## License
409
409
410
-
Apache-2.0 — see [`LICENSE`](LICENSE).
410
+
Licensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or [MIT license](LICENSE-MIT) at your option.
0 commit comments