Show Chopin's work as live stages with inspectable tools #296
- MA
## Integration and validation
Keep current Chopin identity, rich-text composer, permission gates, and movable research-offer placement while adding event-derived stages and inspectable tool calls. Preserve completed and disconnected work across reconnects, with one retained announcement region and reduced-motion behavior. Read-only viewers can see work without gaining composer actions.
Formatting/lint/design checks and types pass. All Chat model/transcript tests and 31 server invocation tests pass; two sandbox-only harness failures passed with temporary-checkout access. All 29 smoke, responsive-activity, and hosted-harness browser checks pass. Rebased onto latest main, retaining #280's shared archived/read-only transcript; final CI running.
Integration with #285 retains matching pending decision cards and their Open action inside WorkProgress. The waiting indicator is static; tool inspection remains available. Historical inactive calls retain interruption semantics. Added matching/static-wait regression tests and made the waiting browser fixture supply the real active/completed turn events. Checks/types and focused regressions pass; all 30 combined smoke/activity/harness browser cases pass. Restacked onto merged #285; final main integration and CI remain required.
<details> <summary>Original proposal and screenshots</summary>
## Why
When Chopin is working, Chat currently offers little more than a spinner and a tool count. It is hard to tell what is happening, and the tool activity cannot be inspected in a useful way.
## What changed
- Chat now names the current stage from real events: getting oriented, gathering context, waiting for an answer, making changes, or writing a response. It does not invent timed progress or private reasoning text. - A small, calm activity mark and a brief stage transition make changes in state visible. Reduced-motion settings remove the animation. - Tool calls stay collapsed by default. Opening **Details** reveals each call's status, duration, input, and result when available. Failed and interrupted calls remain inspectable. - The current stage and an opened tool list stay in place as work completes or the connection briefly drops. If work finishes while offline, newly arrived history stays with its own messages.
## Visuals
The stages and disclosure in the real Chat pane:



These screenshots were taken on this independent branch. The grouped UI cleanup in PR #268 updates the adjacent author label to **Chopin**.
## Verification
- Focused unit suites (26 reducer/model tests and 35 model/transcript tests) and five final Chromium checks passed. They cover stage changes, same-second messages, live announcements, keyboard disclosure, tool status, completion, disconnect/reconnect, reduced motion, and failure states. - Type checks, formatting/lint checks, a production build, and all three affected browser cases passed locally. The complete GitHub browser, validation, and container jobs passed on commit `4565197c`. - A separate agent reviewed the interaction and code; its ordering, disclosure, accessibility, and reconnect findings were fixed and re-reviewed.
After a full page reload of an already completed turn, tool calls remain available on their original messages; the combined in-progress grouping is temporary.
</details>
lavaman131referenced this in [Design] Rebuild the workflow run card with assistant-ui Elements #307last month on GitHub
lavaman131referenced this in [Design] Replace the composer @ mention picker with assistant-ui mentions #308last month on GitHub
lavaman131referenced this in [Design] Conversation controls with assistant-ui Elements: message queue, stopped run, error state #309last month on GitHub
lavaman131referenced this in [Design] Research and references with assistant-ui Elements #310last month on GitHub
lavaman131referenced this in [Design] Decisions display with assistant-ui Elements (option list, question flow) #311last month on GitHub
lavaman131referenced this in Stream Planner chat live: reasoning, tool calls, timers, and harness tools #306last month on GitHub
lavaman131referenced this in Stream Planner tool calls from their own start and end, including Atomic's own tools #314last month on GitHub
lavaman131referenced 8e4c52f278d9last month on GitHub
lavaman131referenced 9efc834927cclast month on GitHub
lavaman131referenced 962fcf0a9506last month on GitHub
lavaman131referenced d618e483469dlast month on GitHub
- MA
<!-- pr-rebase:4565197cc0551896b4b06e0f10524d339815addd:964535bb81cb00d3583301d3ec90d55393c278ca --> PR babysitter could not rebase this branch cleanly onto main. The branch is unchanged. Please resolve the rebase conflict locally; automation will try again after the branch changes.
github-actions[bot]referenced this in Tagging Chopin in the chat hides the tagged user #150last month on GitHub
- MA
<!-- pr-rebase:4565197cc0551896b4b06e0f10524d339815addd:8675f8e57182b28d0b2dc34c8089d0d928d00191 --> PR babysitter could not rebase this branch cleanly onto main. The branch is unchanged. Please resolve the rebase conflict locally; automation will try again after the branch changes.
- MA
<!-- pr-rebase:4565197cc0551896b4b06e0f10524d339815addd:e6b7bb333ce8948d0dac0c8aff61cf3d4fb8dc8b --> PR babysitter could not rebase this branch cleanly onto main. The branch is unchanged. Please resolve the rebase conflict locally; automation will try again after the branch changes.
- MA
<!-- pr-rebase:4565197cc0551896b4b06e0f10524d339815addd:b919317f14f29799be257eee49ba5ab753592371 --> PR babysitter could not rebase this branch cleanly onto main. The branch is unchanged. Please resolve the rebase conflict locally; automation will try again after the branch changes.
MaggieAppletonhead-ref-force-pushed 7d23b1ea475alast month on GitHub
MaggieAppletonhead-ref-force-pushed bcd04965ba69last month on GitHub
MaggieAppletonhead-ref-force-pushed dbea1b9d2ef2last month on GitHub
MaggieAppletonmerged 4ce6995cbe99last month on GitHub
MaggieAppletonhead-ref-deletedlast month on GitHub
lavaman131referenced cecdfd07cad3last month on GitHub
lavaman131referenced dfe16a95f1dflast month on GitHub
lavaman131referenced 89b4c32b0772last month on GitHub