Open workflow agent transcripts beside their chat
Workflow-agent clicks now open the agent transcript in the existing chat subagent pane, using the same native placement path as Claude subagents. The workflow identity stays [sessionId, runId, agentId]; reads are scoped through _acpmux/subagent_transcript, rendered with the existing transcript rows, paged with bounded cursors, and refreshed from the selected agent's progress/state events without a timer. SummaryCard and Inspector Background tasks use the same opener and reader.
This depends on #26990 (now merged); the branch is rebased onto its landed WorkflowAgentRow bridge. Workflow surfaces remain behind the existing Labs gate. Relay policy and Rust fixtures accept only sessionId, runId, agentId, before, after, and limit; unknown fields, _meta, and command parameters are rejected. Forward and older pagination reset when the bounded transcript window shifts, and oversized omitted markers remain visible. #27046 is merged and confines daemon reads to the requesting Claude session folder; fork-ancestor reads remain a later daemon follow-up.
Leo's exact words:
"Like you need to be more ambitious, really. Like the whole dynamic workflow situation. I don't know if you already have the UI for that, how good it is, if you guys have tested it out yet. But, you know, we need to have that. And likewise, obviously, like the session info area, like that's where the things can be shown, and also the right tab area. All of these, like better and better UI. Just go ahead, man. I feel like you can do a hell of a lot more. More codex, more Claude, more whatever. We have the capacity, so let's use the fucking capacity to go do some more productive fucking work, right?"
Validation:
- Published head:
12097266268c16a4742b6e3c4704fe4d4ae71659. - Combined exact-head check passed: focused workflow and pane-English tests, full web check, and cmux-agent-pane-policy tests. Local Node 24 checks also pass; the focused workflow/pane-English run passed 33 tests and 148 assertions.
- Release-note digest tests passed locally (5 tests). The remote combined run additionally passed the published-manifest digest suite.
- Independent Codex gpt-6-astra SHIP at this head, including the explicit relay-policy audit. The delta from
d4adcf7c25b24cb028b0826f7ecd9ae6b090a931is five localization-exemption comments on internal errors whose text is caught and never rendered; all executable source is unchanged. User-facing workflow notices already have all 21 locales. - Fleet compile, Swift relay red/green, and real-app capture passed at
d4adcf7c25b24cb028b0826f7ecd9ae6b090a931. Debug and Release app compiles passed.AgentPaneSubagentTranscriptRelayTestsfailed on base and passed on head. In a real two-phase, three-agent workflow, clicking opened the agent beside its parent with real transcript rows. - The reader, relay, and pagination regressions form one behavior change; keeping their tests together accounts for the roughly 1,060 changed lines.
The gallery state in WorkflowAgentPane.gallery.ts drives the workflow-agent click and checks the native call identity and focus. Native placement is demonstrated by the linked real-app capture.
| Light: Report running | Dark: workflow finished |
|---|---|
![]() | ![]() |
Risk: high (socket relay policy).
Changelog
Added: Workflow agents open their live transcript beside the parent chat.
Agent session: agent session

