Atelier Studio 1.5.5
Atelier Studio 1.5.5 — 270 commits since v1.5.0, 209 files changed.
This release focuses on the chat transcript: it now narrates what the agent is doing while it works, shows where its answers come from, and keeps the thread visually stable while text streams in. It also lands a settings surface rebuild, deeper Codex sub-agent support, and the continued Node-to-Rust backend port.
Turn narration
- Reasoning steps. Bold headings in a model's reasoning summary are extracted as they close and posted as activity rows, so a turn reads as a sequence of steps ("Comparing provider latency…") instead of a wall of raw thought.
- Live reasoning. Reasoning summaries now stream token by token (
item/reasoning/summaryTextDelta) instead of appearing as one block at the end. Flash-tier models that declare no reasoning summaries stay silent by design, and no longer get a dead reasoning effort sent to them. - Shadow sweep on the active label. The running activity line is crossed by a moving shadow, borrowing ChatGPT's readable-text approach and Codex's constant character-based speed — the pass takes the same time on a short label as on a long one.
- Edge fade. Overflowing tool lines fade out over their last
1reminstead of being cut with an ellipsis.
Web search and sources
- Queries are visible. A multi-query web search previously showed an empty detail; Atelier now reads
action.queriesand lists each query as a chip under the search line. - Sources card. Links in an answer are harvested from the message markdown — no network, no invented data — deduplicated by normalized URL and shown as domain chips under the reply, but only when the turn actually searched the web.
- Sources open in Atelier. Clicking a source chip opens it in Atelier's own browser pane; ⌘-click still uses the system browser.
Codex sub-agents
- Tooled transcript. A sub-agent's panel now shows what it does — shell commands, MCP calls, patches, reasoning — parsed from its rollout, instead of only its prose.
- Agent chips survive reloads. Collab calls (
spawn_agent,wait, …) are replayed from the native rollout, so sub-agent chips repopulate when a thread is reopened.
Streaming stability
A series of fixes to the transcript while text arrives: no more line re-flowing on every token, no answer flash at finalization, table columns stay frozen, the thread reaches the actual bottom (LegendList 3.3.2 → 3.3.7 plus a declared padding), composer measurement no longer oscillates the transcript, and bottom-follow applies only to the current turn. Streaming word fade now runs at 150 ms on a dedicated easing curve, driven by design tokens rather than two hardcoded values that could drift apart.
Reading margin
Folded margin with chapters derived from pauses, embossed marks, precise jump on click, pins that survive a native replay, and a position bar that genuinely tracks reading.
Browser pane
- Selection to chat. Selecting text in a page lights up the existing "add to chat" button (accent, filled bubble) and sends the selection; with no selection it sends the page. Selection inside same-origin iframes is picked up too.
- Dark band fixed. The toolbar height was counted twice when positioning the native webview, leaving a strip of background above every page.
- Paste preview fixed. The attachment preview overflowed off-screen; it is now sized relative to the chat pane, which is the only region guaranteed to render above the native webview.
Settings
Rebuilt as a surface that no longer replaces the interface: modal sheet layout, dynamic Codex model catalog, opencode route grouping, an Advanced section, and a "Saved" pill.
Knowledge base
Zotero and YouTube ingestion ported to Rust — the Node engine leaves production, kept only as a parity oracle in tests. Undoable deferred trash for KB entries.
Under the hood
The Node sidecar continues to shrink in favour of the Rust backend. Gallery figures are indexed automatically. Codex stderr is no longer discarded, so provider configuration errors surface instead of failing silently.