Releases: Smart-AI-Memory/attune-forms
Release list
attune-forms 0.10.0
What's new
- MCP Apps-capable hosts can discover and render Attune forms and command workspaces inline from one shared ui:// resource.
- Interactive actions pass through the existing server-side collectors before validated results reach model context.
- Native, structured-text, and Markdown fallbacks remain available, with visible partial-host degradation instead of dead controls.
- The README now documents the new transport and its host capability boundaries.
Verification
- 882 tests passed locally.
- Seven CI jobs passed on Linux, macOS, and Windows for merge SHA 55b71cf.
- Wheel and source distribution built and were inspected before release.
- Antigravity cross-reviewed the complete eight-file transport diff; verified compatibility findings were fixed before merge.
v0.9.1
attune-forms 0.9.1
- Adds strict workspace dictionary parsing and non-executable widget/Markdown projections.
- Binds returned workspace actions to host-generated id, revision, contract hash, and one-render nonce.
- Adds elicitation_render_workspace and elicitation_collect_workspace_action MCP tools.
The collector validates action envelopes only; authorization, nonce consumption, and execution remain host responsibilities.
v0.6.0
The backlog-constructs release: the communication grammar grows from six constructs to eight — ranking and assumption_review — each spec-driven (D1 intake → D2 ratified forks → D3 execution → D4 live AC-4 receipt), shipped on all four surfaces with validated round-trips, and hardened by a five-lens adversarial review per construct BEFORE the cut, every finding fixed with a pinned regression. 611 tests.
Added
rankingconstruct (grammar member #7): order the options, all or only the toptop_n; the answer is the ordered list itself; asuggestedorder renders visibly as a proposal (submit IS the confirmation),defaultrejected. Widget: ranked list + pool moved by buttons; flat surfaces expand to one pick per rank slot and fold back on collection; elicitation schema is a bounded unique array.ranking_slot_countexported.assumption_reviewconstruct (grammar member #8): the agent lists its inferred assumptions; the user rules each accept / edit / reject, an edit carrying replacement text.suggestedmay pre-mark accept only;defaultanddispositionsrejected.ASSUMPTION_RULINGSexported.- Reference form + example answers cover both; round-trip, CSS-family, needs-widget, markdown-conformance and ingestion guards extended.
Changed
- Form theme budget 8 KB → 10 KB (10,064 B measured; the cap is not a ratchet).
- Dotted answer namespace guard covers every expanding type.
form_response_summaryrenders an assumption edit askey: edit → <text>.problems_to_markdownattributes by the FIRST quoted field id only (assumption-review five-lens review, 5 findings pinned).
Fixed
- Seven ranking-ingestion findings from the 2026-08-16 five-lens review, all pinned in
TestReviewFindings: option-aware ordinal stripping ("3.12" ingests exactly), ASCII-only slot-key parsing (decimal_key_number— no more rawValueErroronprio.²), the fold keeps zero/out-of-range slots so the validator names the length, typed-beats-quoted held for dotted slots, the widget gate blocks a partial OPTIONAL ranking, the round-trip simulator models the real submit script, docstrings corrected. - Docs state the construct count as six pre-0.6.0 (the plain batched form is the substrate, not a construct).
Full changelog: https://github.com/Smart-AI-Memory/attune-forms/blob/main/CHANGELOG.md
v0.5.0
The grammar-expansion release: seven constructs on four surfaces, every one with a validated round-trip.
Added
deliberationconstruct — multi-voice endorsements per option rendered as chips, synthesis pick badged (never the answer), the user chairs the picktriageconstruct — a ruling per item over a reviewed list; answer = {item id: disposition} on stable ids; expands to per-item questions on flat surfaces and folds back at collectionconfirmconstruct — consequences preview with severity tags + a two-way approve/abort gate; default/recommended are rejected by the validator (a pre-selected approval defeats the gate)- Portable markdown surface (
form_to_markdown) for text-only hosts, emitting the widget's JSON answer skeleton as the reply format - Tolerant ingestion (
markdown_to_answers/problems_to_markdown) — deterministic parsing of pasted skeletons and line shorthand; unknown ids and stray lines are named problems, never guesses; failures re-ask only the offending fields
Fixed
- Twelve post-merge review findings (8-angle in-session review + cloud ultrareview), each regression-locked — including typed-beats-quoted answer precedence and the dotted triage namespace guard
- CSS class-uniqueness guard (no class styled by two family blocks)
Changed
- Form theme budget 6 KB → 8 KB (8,158 B measured); MCP field schema documents the new types (tool names/shapes unchanged)
Full detail: CHANGELOG.md. Deliberated by the multi-LLM round table (thread q-forms-grammar-expansion-001); receipt chains in the attune-ai spec tree.
v0.4.0
The plugin release: attune-forms becomes installable as a Claude Code plugin, and the communication-grammar article ships in-repo as its verified master.
Added
- Claude Code plugin wrapper: generic forms skill + marketplace scaffold, installable via
claude plugin marketplace add Smart-AI-Memory/attune-forms(#4) - "A Communication Grammar for AI Agents" — the article introducing the grammar, kept in
docs/as its verified master (#6, #7, #8) - Widget-preview dev lane:
.claude/launch.jsonrenders the reference form through the real widget pipeline (#9) - Version-sync drift guard test: README install snippets can't silently diverge from
pyproject.toml(#5)
Fixed
- Test suite pins imports to the checkout's own
src/, so a stale editable install can no longer swap in another worktree's code (#10)
Full changelog: v0.3.0...v0.4.0