Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"name": "webmcpify",
"source": "./",
"description": "WebMCP agent skill for curated core coverage or route-by-route parity — inventory an existing web app, integrate approved tools, then verify and heal them in a real browser.",
"version": "0.7.0"
"version": "0.7.1"
}
]
}
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "webmcpify",
"description": "WebMCP agent skill for curated core coverage or route-by-route parity — inventory an existing web app, integrate approved tools, then verify and heal them in a real browser.",
"version": "0.7.0",
"version": "0.7.1",
"author": {
"name": "Jonas Tüchler"
}
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "webmcpify",
"description": "WebMCP agent skill for curated core coverage or route-by-route parity — inventory an existing web app, integrate approved tools, then verify and heal them in a real browser.",
"version": "0.7.0",
"version": "0.7.1",
"author": {
"name": "Jonas Tüchler"
}
Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ reconstruct them from git history.

## [Unreleased]

## [0.7.1] — 2026-10-12

- Preserve the original execution callback options and signal through the TS/JS
result guards; retain the existing null/undefined guard and single-flight behavior.
- Add caller cancellation to the event bridge, including preabort without dispatch,
Expand All @@ -19,6 +21,10 @@ reconstruct them from git history.
of current native Chrome behavior.
- Correct the README release callout to describe v0.7.0's existing mutation journal.

- Refresh dated source boundaries: imperative API remains a CG draft, declarative
forms are Chrome experimental implementation / separate exploration after upstream
PR #338, and current Site tools model/workspace guidance is dated 2026-10-12.

## [0.7.0] — 2026-09-19

- Added a dependency-free host-side mutation journal for verification runners.
Expand Down Expand Up @@ -125,4 +131,5 @@ reconstruct them from git history.
[0.6.0]: https://github.com/TueJon/webmcpify/compare/v0.5.1...v0.6.0
[0.6.1]: https://github.com/TueJon/webmcpify/compare/v0.6.0...v0.6.1
[0.7.0]: https://github.com/TueJon/webmcpify/compare/v0.6.1...v0.7.0
[Unreleased]: https://github.com/TueJon/webmcpify/compare/v0.7.0...HEAD
[0.7.1]: https://github.com/TueJon/webmcpify/compare/v0.7.0...v0.7.1
[Unreleased]: https://github.com/TueJon/webmcpify/compare/v0.7.1...HEAD
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,11 @@ npx skills add TueJon/webmcpify # once
```

> [!TIP]
> **New in [v0.7.0](https://github.com/TueJon/webmcpify/releases/tag/v0.7.0):**
> a host-side mutation journal records dispatch and settlement durably, serializes
> cooperating verification runners with an OS lock, and retains interrupted
> `started` entries for reconciliation. It does not guarantee exactly-once effects.
> **New in [v0.7.1](https://github.com/TueJon/webmcpify/releases/tag/v0.7.1):**
> execution options and cancellation signals reach your handlers unchanged. The
> event bridge supports cooperative cancellation; an aborted call can still have
> unknown effects, so inspect state before retrying. See the
> [dated native compatibility evidence](skills/webmcpify/references/native-compatibility.md).

## How it works

Expand Down
2 changes: 1 addition & 1 deletion gemini-extension.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "webmcpify",
"description": "WebMCP agent skill for curated core coverage or route-by-route parity — inventory an existing web app, integrate approved tools, then verify and heal them in a real browser.",
"version": "0.7.0",
"version": "0.7.1",
"author": {
"name": "Jonas Tüchler"
}
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "WebMCP agent skill for curated core coverage or route-by-route parity — inventory an existing web app, integrate approved tools, then verify and heal them in a real browser.",
"type": "module",
"license": "MIT",
"version": "0.7.0",
"version": "0.7.1",
"publisher": "TueJon",
"repository": {
"url": "https://github.com/TueJon/webmcpify"
Expand Down
55 changes: 55 additions & 0 deletions release/v0.7.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# webmcpify v0.7.1

Execution cancellation now reaches the application's handler through the vendored
runtime. Your tools can stop cooperative asynchronous work while keeping route
registration lifetime separate from an execution already in progress. This patch
packages the compatibility work merged in [pull request #23](https://github.com/TueJon/webmcpify/pull/23).

## What changed

- TS and JS result guards preserve the original callback options and execution
signal, alongside the existing absent-result guard and single-flight behavior.
- The event bridge accepts caller cancellation: preaborted calls never dispatch,
cooperating handlers receive the signal, and listeners and timers are cleaned up.
- Ambient types and integration guidance distinguish execution cancellation from
registration disposal, callback values from serialized native results, and dated
Chrome behavior from the evolving draft.
- Workbench imperative simulation now models omitted input, serialized returns
and execution cancellation. JS/transpiled-TS regressions keep both runtimes aligned.

- Refresh documentation after [upstream PR #338](https://github.com/webmachinelearning/webmcp/pull/338):
the CG draft now focuses on the imperative API; declarative forms remain Chrome
experimental implementation / separate exploration. Site tools guidance also
reflects the official 2026-10-12 model and workspace requirements.

## Safe cancellation

Cancellation is cooperative. Pass the execution signal to asynchronous work and
check it before committing state. A handler or server that continues after abort or
timeout can leave an unknown outcome; inspect state through an independent read
path before a manual retry. Tools are never retried automatically. Removing a
registration does not cancel an already-started execution on modern Chrome.
Neither cancellation nor the existing mutation journal guarantees exactly-once effects.

## Compatibility and evidence — 2026-10-12

The [dated native compatibility reference](https://github.com/TueJon/webmcpify/blob/v0.7.1/skills/webmcpify/references/native-compatibility.md)
records a synthetic loopback run on **2026-10-05**, Chrome Beta **156.0.8078.4**,
with WebMCP and WebMCPTesting enabled. Five native probes passed: object input,
callback AbortSignal, caller abort with a cooperative handler suppressing its delayed
side effect, registration abort preserving an already-started invocation, and omitted
input defaulting to `{}`. Successful imperative results arrived as serialized JSON
strings. This does not establish declarative navigation, debugging-annotation or
native WPT conformance, full-agent integration, or behavior in every Chrome version.

Chrome 149+ is the origin-trial baseline, not proof that every modern feature is
available. The recorded Chrome 150 run lacked callback options and omitted-input
support. The runtime uses a side-effect-free input probe to select object or legacy
JSON-string input before invoking application tools. Feature-detect and verify the
actual browser; consult the [official Chrome imperative guide](https://developer.chrome.com/docs/ai/webmcp/imperative-api).

Source validation: `npm run check` passes **79 tests** covering runtime parity,
mutation journaling, compatibility adaptation and Workbench simulation. Simulation
and deterministic tests remain separate from native browser evidence.

Compare: https://github.com/TueJon/webmcpify/compare/v0.7.0...v0.7.1
4 changes: 2 additions & 2 deletions skill.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "webmcpify",
"version": "0.7.0",
"version": "0.7.1",
"description": "WebMCP agent skill for curated core coverage or route-by-route parity — inventory an existing web app, integrate approved tools, then verify and heal them in a real browser.",
"license": "MIT",
"author": {
Expand All @@ -23,7 +23,7 @@
{
"id": "webmcpify",
"path": "skills/webmcpify/SKILL.md",
"description": "Choose curated core coverage or route-by-route parity, inventory an existing web app, integrate approved WebMCP tools, then verify and heal them in a real browser."
"description": "WebMCP agent skill — choose curated core coverage or route-by-route parity, inventory an existing web app, integrate approved WebMCP tools, then verify and heal them in a real browser."
}
],
"agents": ["claude-code", "codex", "cursor", "opencode", "copilot", "gemini-cli"],
Expand Down
9 changes: 4 additions & 5 deletions skills/webmcpify/references/client.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ChatGPT client reality — Site tools

Checked 2026-09-14 against the official OpenAI documentation:
Checked 2026-10-12 against the official OpenAI documentation:
<https://learn.chatgpt.com/docs/webmcp>. Re-check that page before publishing or
relying on model/workspace availability; this UI is moving independently of the
WebMCP draft and Chrome implementation.
Expand All @@ -11,11 +11,10 @@ WebMCP draft and Chrome implementation.
browser, open **Site tools** in the address bar and then **Available site tools**
to inspect the page's registrations. This is the fastest client-side ground
truth for the currently open page.
- Site tools are available to ChatGPT Work and Codex with GPT-5.6 Sol or GPT-5.6
Terra. GPT-5.6 Luna currently has WebMCP disabled. The desktop app must be
- Site tools are available to ChatGPT Work and Codex with GPT-5.6 Sol or GPT-6 Sol. GPT-5.6 Luna currently has WebMCP disabled. The desktop app must be
current, and availability still depends on rollout and the current page.
- The official page says Site tools are unavailable in Enterprise and Edu
workspaces.
- Enterprise requires an administrator to allow Site tools through workspace
policy. Site tools remain unavailable in Edu; rollout and page availability vary.
- ChatGPT's built-in browser currently implements only a subset of WebMCP: it
discovers imperative tools registered with JavaScript in the top-level page,
not declarative form tools or tools registered inside iframes. This is a
Expand Down
13 changes: 9 additions & 4 deletions skills/webmcpify/references/discovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,23 @@ discovery conventions has grown around the spec. This layer is **optional,
non-normative, and public** — treat it as a separate deliverable, never as part
of a default integration.

## What is standardized and what is not
## Draft, experimental implementation and conventions — checked 2026-10-12

| Surface | Status | Source |
|---|---|---|
| `document.modelContext` (imperative) | **Spec** (W3C WebML CG draft, Chrome origin trial) | [webmcp explainer](https://webmachinelearning.github.io/webmcp/) |
| `document.modelContext` (imperative) | **CG draft**, not a finalized standard (Chrome origin trial) | [webmcp explainer](https://webmachinelearning.github.io/webmcp/) |
| `navigator.modelContext` | **Deprecated** compatibility surface from the Chrome 149 trial — probe it as a fallback, never target it | same |
| `toolname`, `tooldescription`, `toolautosubmit` on the `<form>`; `toolparamdescription` on the form **control** (or enclosing `<fieldset>`) | **Spec** (declarative API explainer, Chrome docs) | [declarative-api-explainer](https://github.com/webmachinelearning/webmcp/blob/main/declarative-api-explainer.md) |
| `toolactivated` / `toolcancel` events, `:tool-form-active` / `:tool-submit-active` | **Spec** | Chrome declarative API docs |
| `toolname`, `tooldescription`, `toolautosubmit` on the `<form>`; `toolparamdescription` on the form **control** (or enclosing `<fieldset>`) | **Chrome experimental implementation / separate explainer** | [declarative-api-explainer](https://github.com/webmachinelearning/webmcp/blob/main/declarative-api-explainer.md) |
| `toolactivated` / `toolcancel` events, `:tool-form-active` / `:tool-submit-active` | **Chrome experimental implementation / separate explainer** | [Chrome declarative guide](https://developer.chrome.com/docs/ai/webmcp/declarative-api) |
| `/.well-known/webmcp` manifest | **Not specified.** Chrome discussed pre-visit discovery; nothing shipped. De-facto convention pushed by third-party checkers/registries | community |
| `<link rel="webmcp">`, `Link: </.well-known/webmcp>; rel="webmcp"` | **Not specified** (RFC 8288 is, the `webmcp` relation is not registered) | community |
| `llms.txt`, `AGENTS.md`, robots.txt AI-bot rules | Conventions, widely read | community |

The CG draft focuses on the imperative API: [upstream PR #338](https://github.com/webmachinelearning/webmcp/pull/338),
merged 2026-10-08, removed the declarative section. Declarative forms remain an
experimental Chrome implementation described by its [official guide](https://developer.chrome.com/docs/ai/webmcp/declarative-api)
and the separate explainer; do not call them part of the current CG draft.

Never invent attributes to satisfy a checker (see *Third-party audits* below).

## Rule 0 — record the approval before writing anything
Expand Down
7 changes: 6 additions & 1 deletion skills/webmcpify/references/native-compatibility.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Native compatibility — checked 2026-10-05
# Native compatibility — documentation checked 2026-10-12

WebMCP is evolving. These are separate evidence levels; simulation results are
not native browser acceptance.
Expand Down Expand Up @@ -26,6 +26,11 @@ The [Chrome declarative guide](https://developer.chrome.com/docs/ai/webmcp/decla
window event handlers are unsupported from Chrome 156. Declarative submission and
navigation are not covered by imperative simulation.

As checked 2026-10-12, the CG draft covers the imperative API. [Upstream PR #338](https://github.com/webmachinelearning/webmcp/pull/338),
merged 2026-10-08, removed its declarative section; declarative forms remain an
experimental Chrome implementation with the guide above and a separate explainer.
This documentation update does not extend the dated native evidence below.

## Accepted native evidence: Chrome 150

Governor report: `/tmp/webmcpify-native-browser-governor-report.md`, run
Expand Down
Loading