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: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).

## [Unreleased]

## [0.20.0] - 2026-09-17

### Breaking

- **The NimbleBrain host extension methods are renamed under the `ai.nimblebrain/` prefix.** `synapse/action` is `ai.nimblebrain/action`, `synapse/request-file` is `ai.nimblebrain/request-file`, and `synapse/keydown` is `ai.nimblebrain/keydown`. Each name is both the method and the identifier a host declares in `hostCapabilities.experimental`, so `NIMBLEBRAIN_EXTENSIONS` lists one name per extension. The prefix names the owner: these are the NimbleBrain host's extensions, and this package implements a client for them.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nimblebrain/synapse",
"version": "0.19.0",
"version": "0.20.0",
"description": "Agent-aware app SDK for the MCP ext-apps protocol",
"type": "module",
"exports": {
Expand Down
2 changes: 2 additions & 0 deletions python/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).

## [Unreleased]

## [0.7.0]

`SynapseUI` serves the component once, under the MCP Apps MIME, and every input it
takes is emitted under its ext-apps `ui.*` key. A server can declare the auth a tool
needs. The bundled client speaks MCP Apps only, and its `callTool()` rejects when a
Expand Down
2 changes: 1 addition & 1 deletion python/nimblebrain_synapse/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@
# independently of the JS one (different cadence, different consumers); the two
# meet only on the wire protocol. CI keeps this equal to the sibling package.json
# version (ci.yml build job), so the pin can't silently go stale.
__client_version__ = "0.19.0"
__client_version__ = "0.20.0"
2 changes: 1 addition & 1 deletion python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "nimblebrain-synapse"
version = "0.6.0"
version = "0.7.0"
description = "Server half of the Synapse cross-host UI framework: declare one self-contained ui:// component as an MCP extension and render it in ChatGPT (OpenAI Apps SDK), Claude (MCP Apps), and the NimbleBrain runtime."
readme = "README.md"
requires-python = ">=3.11"
Expand Down