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.