Skip to content

fix: align with the 2026-10-02 WebMCP draft and check the live spec - #40

Open
BenjaminPolge wants to merge 2 commits into
ora:mainfrom
BenjaminPolge:fix/spec-2026-10-02
Open

BenjaminPolge wants to merge 2 commits into
ora:mainfrom
BenjaminPolge:fix/spec-2026-10-02

Conversation

@BenjaminPolge

Copy link
Copy Markdown

What

Spec snapshot 2026-08-31 → 2026-10-02 (skills/webmcp/references/spec.md and the skill docs):

  • Events: toolactivated / toolcancel now live in the draft IDL and fire on ModelContext with event.toolName (#245 upstream). The docs said toolcanceled (form-level) and "not yet in the IDL".
  • ToolAnnotations gained consequentialHint (#217) and debugging (#253); added to the annotation tables, the non-negotiables, the security rules and the verify lint.
  • The origin-keyed agent cluster requirement was removed (#330); dropped from spec.md and runtime.md.
  • An omitted executeTool() input is an empty object (#324).

@ora-ai/webmcp-bridge

  • A callTool transport/protocol failure (network, 60 s SDK timeout, JSON-RPC error) now resolves to { error } instead of rejecting into a bare UnknownError, matching the package's own documented contract. Only cancellation still rejects.
  • An explicit MCP destructiveHint: true maps to consequentialHint (explicit only, since MCP defaults it to true for every non-read-only tool).

@ora-ai/webmcp-verify

  • The JSON-string retry in executeToolExpression could run a tool twice: on an implementation that accepts both input shapes, a tool that executed and then rejected was invoked again, repeating write side effects. The retry is now skipped once toolactivated fired for the tool (the spec fires it right before execute). The Chrome ~151 string fallback is kept.

Skills: live spec check

  • webmcp gains step 2b: fetch the live draft's IDL Index before writing code; the live draft wins on facts (names, signatures, events, annotations), the references keep owning practice, declarative behavior and Chrome quirks; falls back to the snapshot if the fetch fails. verify and audit flag API names the live draft renamed or removed. Only the public spec page is fetched (hard rule 7 holds).

Why

Closes #29 (spec drift since the pinned snapshot). The bridge and verify fixes are bugs found while re-checking the packages against the current draft's algorithms.

Checks

  • npm run check && npm run lint && npm run typecheck && npm test pass locally (bridge 15 tests, verify 19 tests)
  • Behavior change is covered by a test: transport failure → { error }, cancellation still rejects, destructiveHint mapping, no retry after activation, string fallback still works. The new behavior tests fail on the previous code.

Not tested in a real Chrome with the WebMCP flag; verified against the spec text and in-memory fakes.

🤖 Generated with Claude Code

BenjaminPolge and others added 2 commits October 6, 2026 16:21
Spec snapshot moved from 2026-08-31 to 2026-10-02 (closes the drift
tracked in ora#29):
- events are toolactivated / toolcancel on ModelContext, not a
  form-level toolcanceled (spec #245)
- ToolAnnotations gained consequentialHint (#217) and debugging (#253)
- the origin-keyed agent cluster requirement was removed (#330)
- an omitted executeTool() input is an empty object (#324)

Code:
- webmcp-bridge: a callTool transport/protocol failure now resolves to
  { error } instead of rejecting into a bare UnknownError; only
  cancellation rejects. MCP destructiveHint: true maps to
  consequentialHint.
- webmcp-verify: the JSON-string retry no longer re-runs a tool that
  already executed (detected via toolactivated), which could repeat
  side effects of write tools.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The webmcp skill now fetches the live draft's IDL Index before writing
code and lets it win on facts (names, signatures, events, annotations),
while the references keep owning practice, declarative behavior and
Chrome quirks. verify and audit flag API names the live draft renamed or
removed. Falls back to the pinned snapshot when the fetch fails.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WebMCP spec moved past the pinned snapshot - re-verify skill content

1 participant