0.1.1 (2026-10-17)

  • Requires a2ui_core 0.1.1, which compiles on Elixir 1.17.

0.1.0 (2026-10-17)

First release.

  • A2UIPhoenix.Session: the renderer state of one conversation, as plain data.
  • A2UIPhoenix.Live and A2UIPhoenix.Surface: surfaces in a LiveView, with two-way bindings, actions and local UI state.
  • The basic catalog's components (protocols v0.9, v0.9.1 and v1.0) as function components with ARIA attributes.
  • A design system for them (priv/static/a2ui_phoenix.css): tokens named as in the reference web renderers (--a2ui-color-primary, type scale, space, radii, shadows, motion, per-component tokens), light and dark through the page's color-scheme or the a2ui-light/a2ui-dark classes, colors derived from the primary color on each surface, one anatomy for every input (label, control, messages of failed checks, read as guidance while the field is empty, data-a2ui-empty), states as ARIA attributes, and Material Symbols icons.
  • Components of other catalogs, passed to a surface by type.
  • The MCP catalog: actions that call MCP tools apply what the tools return, and McpApp embeds MCP Apps in a double-iframe sandbox (A2UIPhoenix.Components.MCP, the A2UIMcpApp hook, priv/static/a2ui_mcp_sandbox.html, A2UIPhoenix.Session.mcp_app_request/5).
  • A2UIPhoenix.Plug.SSE: A2UI messages streamed as server-sent events, with event ids, a reconnection delay and the client's Last-Event-ID for resuming a stream.
  • Agent functions: a call the surface cannot run goes to the agent as callAgentFunction, its answer is applied when it arrives, and a call that fails or times out (A2UIPhoenix.Session.timeout_agent_call/2, timed by A2UIPhoenix.Live) is reported as a diagnostic. A component waiting for an answer has aria-busy="true".
  • The v0.9 surface theme: primaryColor sets --a2ui-color-primary, and the agent's name and icon are shown above the surface.
  • A validation error reported to the agent names the field that failed, as a JSON Pointer into the message (/components/0/text).
  • DateTimeInput shows a date unless only the time is enabled (A2UIPhoenix.Inputs.date_enabled?/1).
  • Stylesheet: image sizes per variant, dividers, full-width media, a busy indicator, Markdown text without outer margins, and a slider whose track fills to its value (--a2ui-slider-fill).
  • Layout: cards in a horizontal list are tiles of one width (--a2ui-list-card-width), a card's layout child fills it, a caption under a heading is drawn as its subtitle, and busy text keeps its indicator on its line.
  • An embedded MCP App gets the component's color scheme as the host context's theme, and a ui/notifications/host-context-changed notification when it changes.