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
| 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 |
0 commit comments