Skip to content

Release npm 0.20.0 and Python 0.7.0 - #99

Merged
mgoldsborough merged 1 commit into
mainfrom
release/0.20.0
Sep 17, 2026
Merged

mgoldsborough merged 1 commit into
mainfrom
release/0.20.0

Conversation

@mgoldsborough

Copy link
Copy Markdown
Contributor

B8 of the Synapse rebuild cutover. Both packages ship everything under their [Unreleased] at once, so no consumer has to speak both the old and the new wire.

What this is

Was Now
package.json 0.19.0 0.20.0
__client_version__ 0.19.0 0.20.0
python/pyproject.toml 0.6.0 0.7.0

Both CHANGELOGs move [Unreleased] under the version. Nothing else changes: the vendored client asset (python/nimblebrain_synapse/_assets/synapse-ui.iife.js) already matches a build of this tree byte for byte, because the version string is not inlined in the cross-host IIFE — re-vendoring at 0.20.0 produced no diff.

The ### Breaking entries this releases

npm 0.20.0: the ai.nimblebrain/* rename of the host extensions (#98) and sendMessage's chat context with it; every NimbleBrain extension and every spec call gated on the host's declaration, throwing HostCapabilityError; host fonts as the spec's styles.css.fonts with the font-descriptor API deleted; the cross-host client on MCP Apps only (chatgpt adapter, mcp-ui dialect and window.openai detection gone, HostKind is "mcp-apps" | "generic"); connectUI's callTool() rejecting with ToolCallError.

Python 0.7.0: one ui:// resource under text/html;profile=mcp-app (skybridge copy, openai/outputTemplate, result_meta(), resource_meta, SKYBRIDGE_MIME all gone), widget_domain on that one resource, and the bundled client's MCP-Apps-only, styles.css.fonts and ToolCallError breaks.

The ai.nimblebrain/* rename is a JS client-API change and appears only in the npm CHANGELOG. The Python package's bundled client is connectUI, which carries no NimbleBrain extensions — grep 'synapse/' over the vendored IIFE finds nothing — so it has no surface for that rename. Its half of #98, the font channel, is in python/CHANGELOG.md.

Verification

Local, ahead of CI:

  • npm run ci — lint, typecheck, build, size budget (115460/120000, 116171/121000, 3178/4100 gzipped), 563 tests in 37 files.
  • npm run conformance — 36/36 against the vendored copy.
  • python: ruff check, ruff format --check, ty check, pytest (34 passed).

Once merged, the release goes out through the publish workflows on v0.20.0 and nimblebrain-synapse-v0.7.0, never locally.

Prerequisites, confirmed on main

B1 (#92), B2 (#94), B3 (#96), B5 (#95), B6 (#93), B7 (#97 plus skills#47, #48, #50, #51), and #85 (closed by #91). #89 is in too.

Everything under [Unreleased] in both packages ships, together, so no
consumer has to speak both wires.

npm 0.20.0 is breaking several times over. The NimbleBrain host
extensions move under `ai.nimblebrain/` (`action`, `request-file`,
`keydown`), and the chat context on `sendMessage` with them; every
NimbleBrain extension and every spec call is now gated on the host
declaring it, throwing `HostCapabilityError` where it did not; host
fonts arrive as the spec's `styles.css.fonts` and the font-descriptor
API is gone; the cross-host client speaks MCP Apps only, so the
`chatgpt` adapter, the mcp-ui dialect and `window.openai` detection are
gone and `HostKind` is `"mcp-apps" | "generic"`; and `connectUI`'s
`callTool()` rejects with `ToolCallError` on an `isError` result. Added:
`synapse check`, `app.hostCapabilities`, `hostSupports`. The SDK and zod
are no longer bundled.

Python 0.7.0 serves the component as one `ui://` resource under
`text/html;profile=mcp-app` — the skybridge copy, `openai/outputTemplate`,
`result_meta()`, `resource_meta` and `SKYBRIDGE_MIME` are gone — and
carries the same bundled-client breaks. Added: `tool_meta(visibility=)`,
`tool_meta(security_schemes=)` and `auth_error_result()`. Requires
mcp>=2.1.0.

The vendored client asset already matches the build; no re-vendor was
needed. `__client_version__` moves with package.json.
@mgoldsborough
mgoldsborough merged commit 1e289c9 into main Sep 17, 2026
8 checks passed
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.

1 participant