diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index a24562b..eda1844 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -7,14 +7,14 @@ }, "metadata": { "description": "Structured agent-user communication: validated forms, decision cards with recommendations, structured pushback, and progress reports \u2014 batch questions instead of asking one at a time.", - "version": "0.9.1" + "version": "0.10.0" }, "plugins": [ { "name": "attune-forms", "description": "The communication grammar for AI agents: batch independent questions into ONE validated form; offer recommendations as decision cards with rationales and per-option tradeoffs; disagree constructively via pushback cards; report multi-step progress with a blocked-item picker. Renders rich HTML where the host supports widgets and degrades cleanly to plain questions everywhere else. Powered by the attune-forms PyPI package via a bundled MCP server.", "source": "./plugin", - "version": "0.9.1", + "version": "0.10.0", "author": { "name": "Smart AI Memory", "email": "admin@smartaimemory.com" diff --git a/CHANGELOG.md b/CHANGELOG.md index 6887502..5ec41f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ follow [SemVer](https://semver.org/). ## [Unreleased] +## [0.10.0] — 2026-08-30 + ### Added - **Portable MCP Apps transport** — capability-aware tool metadata links form and workspace renderers to one self-contained `ui://` resource. diff --git a/README.md b/README.md index fa26cdd..f1f0ed6 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,22 @@ either direction. The full argument: ["A Communication Grammar for AI Agents"](https://www.linkedin.com/pulse/communication-grammar-ai-agents-patrick-roebuck-sutse). +## What's new in 0.10.0 + +- **Inline MCP Apps surfaces** — hosts that advertise the standard MCP + Apps capability can discover and render Attune forms and command + workspaces directly in the conversation from one shared `ui://` resource. +- **Validated interactive round trips** — a click is never treated as + authority. The embedded surface sends it through the existing server-side + collector, and only a successful validated result reaches model context. +- **Portable by construction** — hosts without MCP Apps keep the same native, + structured-text, and Markdown paths. Partial support is named visibly so a + rendered control never fails silently. + +This is the provider-neutral transport layer. Individual agent products still +choose whether to render it inline, open it as a browser artifact, or use the +fallback that matches their advertised capabilities. + ## Install **As a Claude Code plugin** (skill + MCP server, no Python setup): @@ -44,7 +60,7 @@ parsed back into the same validator. pip install attune-forms ``` -Python 3.10+, one runtime dependency (structlog), 610+ tests, CI on +Python 3.10+, one runtime dependency (structlog), 880+ tests, CI on Linux/macOS/Windows. Apache 2.0. ## The grammar diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index e14fc73..dad8b79 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "attune-forms", - "version": "0.9.1", + "version": "0.10.0", "description": "Structured agent-user communication \u2014 validated forms, decision cards, pushback, progress reports, deliberation, triage boards, confirm gates, rankings, and assumption reviews via the attune-forms MCP server.", "author": { "name": "Smart AI Memory", diff --git a/pyproject.toml b/pyproject.toml index df7e5cd..bf35a31 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "attune-forms" -version = "0.9.1" +version = "0.10.0" description = "Dynamic forms and command workspaces: validated multi-surface interaction documents for AI agents" readme = "README.md" requires-python = ">=3.10"