cmux NEXT: connect Session Info page model to native panel
Leo said:
“the session rail session info thing, like, you literally didn't do. I mean, why is the button not toggled? ... you still haven't done the full-length thing. It's still just this constrained height for, like, no reason at all.”
“plus we're gonna be doing that part natively in Swift anyways?”
“But I literally fing said to do that. I literally fing said to do that.”
“You can just edit the fing web UI” / “it's so fing lame to be delaying the entire f***ing thing based off of ... the Swift thing”.
Leo-ask: ask-560d04c05d
What changed
- Build one page-owned
pane.sessionInfomodel from today's Session Info sections, with the current section order, folds, rows, symbols, meters, marks, links, sources, usage, subagents, workflows, and background tasks. - Forward native actions back through the existing page handlers for folds, row actions, links, source files, process and workflow stops, reconnect, copy, cloud repository actions, and section reorder.
- Keep native host registration, model withdrawal, reveal acknowledgement, and safe web fallback lifecycle explicit.
- Cover native page lifecycle, action routing, row/model parity, and the current Session Info section shape with focused tests.
The native AppKit shell landed in #31930 and remains behind agent.sessionInfo.native (default off) while parity follow-ups land. This PR keeps all state and policy in TypeScript; Swift only receives the model and forwards action ids.
This repair keeps the safe external URL handling, auto-compact subtitle, Remote Control help text, and link coverage already present on feat-cmux-next, while the Changes hover uses the shared KINDS ordering.
Design spec: leo-workspace/design/session-info.md; prior art: #31867, #31906, #31958, #27513.
Gallery/mock scene: session-info-native in scripts/cmux-next/media/tours/session-info-native.json (the final default-flip PR will attach the native full-length capture with the toggle on).
Validation: focused webview tests for native Session Info sections, page lifecycle, activity, and workflows; web lint and typecheck through the standard CI route.
Agent session: agent session