feat(next): add Labs workflow side tab
Adds a Labs-gated full-height workflow side tab for chats. The transcript card keeps its existing Session Info action when Inspector is enabled; when Inspector is Debug-off, the card opens the workflow side tab, and the compact secondary action always opens it. The view shows workflow name, state, elapsed time, counts, Stop, a vertical phase timeline, and the shared live workflow agent rows from #26990.
Leo said:
"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?"
Uses WorkflowAgentRow from merged #26990.
Design variants in WorkflowSideTab.gallery.tsx:
- Timeline (shipped): vertical phase spine keeps state and all agent rows in one scan.
- Lanes: horizontal swimlanes per phase.
- Table: dense phase-column rows.
The side tab steps aside for other pane views, restores focus to its opener on close, and honors the app’s Reduce Transparency setting. It reuses useNow, whose interval stops for nonrunning or hidden views and is cleaned up on unmount.
The native right-pane routing remains unchanged. The side tab is the existing webview equivalent, so it consumes the same folded workflow snapshot and Labs gate as Session Info. Session Info layout and #26093 routing are untouched.
Risk: normal (Labs-gated web UI).
The side tab reserves the native shared tab row using its existing height variable, so its glass background cannot cover the trailing controls.
Validation at 646c7726f88c946ddd7f0cc9af847ccaf41b3bff:
PATH=/opt/node-v24.11.1/bin:$PATH bash scripts/web-lint.shpassed.- Focused workflow tests passed: 33 tests, including the new Chromium layout regression.
cd webviews && CMUX_BROWSER_TESTS=1 bun test test/workflow-side-tab-row.test.tsxfailed before the fix at both 28px and 40px tab-row heights (side-tab top 8px versus row bottoms 36px/48px), then passed after the fix. Standalone full-height behavior passes too.git diff --checkpassed;WorkflowTasks.tsxis unchanged fromfeat-cmux-next.- Combined exact-head CI passed: 33 tests, full web check, lint, formatting, and type checks. The first run stopped before executing checks because its shallow checkout lacked base history; the corrected run fetches the base first.
Observed / Not run
Observed: Chromium DOM rectangles, focused workflow tests, and full web lint locally. The gallery retains timeline, lanes, and table variants; gallery advisory provides visual evidence. Native end-to-end capture was not run for this webview-only change.
Changelog
Added: Labs workflow side tab with live phases and agents, kept clear of the native tab row.
Agent session: agent session