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
fix(adapters): keep the notice delivery shape local to the compiler and gate the inbox route on its own advertisement
Codex P1/P2 on #412:
- TargetAdapter.noticeDelivery and every build-side signature now use a local
NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public
declaration of agent-bundle resolves through the optional
@agent-bundle/runtime peer; a test asserts mutual assignability with the
runtime's AgentNoticeDeliveryAdvertisement and route list.
- The agent-bundle://notices/inbox resource is registered in the server and
mounted in its Flight worker only where the host advertises mcp-inbox;
mcp-resource-updated additionally requires the inbox. The worker still
mounts the ledger so routes can publish, and the reserved name stays
reserved.
Copy file name to clipboardExpand all lines: .changeset/notice-delivery-adapter-surface.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,4 +2,4 @@
2
2
"agent-bundle": patch
3
3
---
4
4
5
-
Expose each host's #99 notice delivery advertisement through the adapter API and consume it when generating MCP entries. `TargetAdapter` gains `noticeDelivery` (typed as the runtime's `AgentNoticeDeliveryAdvertisement`), `TargetRegistry` gains `noticeDelivery(target)`, and `adapters/capability-state` gains `noticeDeliveryAdvertisementFrom()` plus `intersectNoticeDeliveryAdvertisements()`. The built-in `claude`, `codex`, `cursor`, and `portable` adapters read the advertisement from their pinned capability tables and the unified `plugin` adapter advertises the three-host intersection; the registry re-validates JavaScript adapter declarations and fails closed on unknown route states or undated unavailability. `build` and `inspect --bundler` now pass the target's advertisement to the generated route MCP entry, which wires `resources/subscribe` and `notifications/resources/updated` for the notice inbox only where the host advertises `mcp-resource-updated` (in addition to requiring workspace-durable state); a target with no advertisement wires no cross-request route.
5
+
Expose each host's #99 notice delivery advertisement through the adapter API and select cross-request notice routes from it when generating MCP entries. `TargetAdapter` gains `noticeDelivery` (a local `NoticeDeliveryAdvertisement` shape, structurally identical to the runtime's `AgentNoticeDeliveryAdvertisement` so public declarations never resolve through the optional `@agent-bundle/runtime` peer), `TargetRegistry` gains `noticeDelivery(target)`, and `adapters/capability-state` gains `noticeDeliveryAdvertisementFrom()` plus `intersectNoticeDeliveryAdvertisements()`. The built-in `claude`, `codex`, `cursor`, and `portable` adapters read the advertisement from their pinned capability tables and the unified `plugin` adapter advertises the three-host intersection; the registry re-validates JavaScript adapter declarations and fails closed on unknown route states or undated unavailability. `build` and `inspect --bundler` pass the target's advertisement to the generated route MCP entry and its Flight worker: the `agent-bundle://notices/inbox` resource is registered and mounted only where the host advertises `mcp-inbox`, and `resources/subscribe` plus `notifications/resources/updated` are wired only where the host additionally advertises `mcp-resource-updated` and the state is workspace-durable. A target with no advertisement wires no cross-request route; all built-in hosts advertise `mcp-inbox`, so their artifacts are unchanged.
0 commit comments