Repository navigation
fix: align with the 2026-10-02 WebMCP draft and check the live spec - #40
Open
BenjaminPolge wants to merge 2 commits into
Open
BenjaminPolge wants to merge 2 commits into
BenjaminPolge wants to merge 2 commits into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Spec snapshot 2026-08-31 → 2026-10-02 (
skills/webmcp/references/spec.mdand the skill docs):toolactivated/toolcancelnow live in the draft IDL and fire onModelContextwithevent.toolName(#245 upstream). The docs saidtoolcanceled(form-level) and "not yet in the IDL".ToolAnnotationsgainedconsequentialHint(#217) anddebugging(#253); added to the annotation tables, the non-negotiables, the security rules and the verify lint.spec.mdandruntime.md.executeTool()input is an empty object (#324).@ora-ai/webmcp-bridgecallTooltransport/protocol failure (network, 60 s SDK timeout, JSON-RPC error) now resolves to{ error }instead of rejecting into a bareUnknownError, matching the package's own documented contract. Only cancellation still rejects.destructiveHint: truemaps toconsequentialHint(explicit only, since MCP defaults it to true for every non-read-only tool).@ora-ai/webmcp-verifyexecuteToolExpressioncould 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 oncetoolactivatedfired for the tool (the spec fires it right beforeexecute). The Chrome ~151 string fallback is kept.Skills: live spec check
webmcpgains 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.verifyandauditflag 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 testpass locally (bridge 15 tests, verify 19 tests){ error }, cancellation still rejects,destructiveHintmapping, 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