Skip to content

Commit 7dee939

Browse files
nficanocursoragent
andcommitted
docs: mark diverging v1.1 surfaces as Partial in conformance matrix (#65)
The conformance page no longer claims Full/implemented for surfaces whose wire shape still diverges from ARCP v1.1 (session.hello/welcome, ping/pong, resume, job.submit, terminal states, progress body, subscription types). Each Partial row links the tracking issues; surfaces that now match the spec are labeled Full. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 9908a11 commit 7dee939

1 file changed

Lines changed: 20 additions & 17 deletions

File tree

docs/conformance.md

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,26 @@ The PHP SDK targets ARCP v1.1.
44

55
## v1.1 coverage
66

7-
| Area | Status |
8-
| --- | --- |
9-
| Envelope JSON and typed message catalog | implemented |
10-
| Session open/accepted/rejected/close | implemented |
11-
| Ping/pong, ack, resume replay | implemented |
12-
| `session.list_jobs` / `session.jobs` | implemented |
13-
| Tool invocation and job lifecycle | implemented |
14-
| Agent `name@version` resolution | implemented |
15-
| Progress, streams, and `job.result_chunk` | implemented |
16-
| Permissions and leases | implemented |
17-
| `cost.budget` counters | implemented |
18-
| `model.use` leases | implemented |
19-
| Provisioned credentials | implemented |
20-
| `LEASE_SUBSET_VIOLATION` | implemented |
21-
| Artifacts | implemented |
22-
| Subscriptions and backfill | implemented |
23-
| Vendor extensions | implemented |
7+
Status legend: **Full** — matches the v1.1 wire shape; **Partial** — works
8+
but still diverges from the spec wire shape (tracked by the linked issues).
9+
10+
| Area | Status | Notes |
11+
| --- | --- | --- |
12+
| Envelope JSON and typed message catalog | Partial | no top-level `event_seq` yet (#132, #152) |
13+
| Session hello/welcome/rejected/close | Partial | uses `session.open`/`session.accepted` not `session.hello`/`session.welcome`; no `session.closed` ack (#121, #122, #123, #130) |
14+
| Ping/pong, ack, resume | Partial | `ping`/`pong` not `session.ping`/`session.pong`; `ack` is advisory-only; resume uses `after_message_id` not `session.resume` + rotating token (#127, #128, #146, #55, #125) |
15+
| `session.list_jobs` / `session.jobs` | Partial | entries omit `lease`/`parent_job_id`/`last_event_seq`; credentials redacted from the inventory (#143) |
16+
| Tool invocation and job lifecycle | Partial | submission uses `tool.invoke` not `job.submit`; terminal states are `completed`/`failed` not `success`/`error`/`timed_out` (#134, #137) |
17+
| Agent `name@version` resolution | Full | deterministic resolution; ambiguous unversioned names are rejected |
18+
| Progress, streams, and `job.result_chunk` | Partial | progress body uses `percent` not `current`/`total`; inline/chunk mixing not yet prevented (#63, #147, #64, #153, #154) |
19+
| Permissions and leases | Partial | `expires_at` UTC/future validation and runtime expiry enforcement pending (#60, #156) |
20+
| `cost.budget` counters | Partial | negative metrics rejected and exact-zero allowed; no pre-dispatch budget check (#158) |
21+
| `model.use` leases | Full | pattern grammar matches the spec examples |
22+
| Provisioned credentials | Partial | per-job scoping and retried revocation in place; no startup revocation replay (#160) |
23+
| `LEASE_SUBSET_VIOLATION` | Full | model.use, cost.budget, and `expires_at` containment enforced |
24+
| Artifacts | Full | `ref()`/`fetch()` agree on expiry |
25+
| Subscriptions and backfill | Partial | uses `subscribe`/`subscribe.accepted` not `job.subscribe`/`job.subscribed`; principal authorization pending (#138, #151, #139) |
26+
| Vendor extensions | Full | core-type classification and `x-` rejection match the spec |
2427

2528
## v1.1 features
2629

0 commit comments

Comments
 (0)