Session Info: add native activity and running-limit models
Build Subagents and Background tasks as page-owned native rows, including running limits, process and tool-call routing, server ports and workflow phases. The running-limit controller is shared with the existing web stepper so rapid clicks and refused requests retain the same behavior.
The builders are dormant until page integration lands, and the native Debug setting remains off by default. This is the activity-model seam; native drawing and page integration land separately. Design: design/session-info.md.
Leo-ask: ask-560d04c05d
Leo's request:
2026-10-26: "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."
2026-10-29: "plus we're gonna be doing that part natively in swift anyways?"
2026-10-29: "But I literally fing said to do that. I literally fing said to do that."
2026-10-29: "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".
Validation: pending exact-head focused tests; web lint and static prepush checks run before publishing.
Changelog
none
Agent session: agent session
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Builds Session Info's native AppKit activity models: subagents, background tasks, workflows, and servers now produce native row models, ready for the App to draw. The web UI is unchanged and the builders stay dormant until page integration lands.
Refactors
- Extracts the running-limit optimistic history into a shared controller so the native stepper and web stepper behave identically on rapid clicks and refusals.
- Moves Session Info's slower wave timing into one source shared by the web rows and native model.
- Passes clicked-row rectangles through native actions so existing page popovers still anchor correctly.
- Routes native external links through a safe-URL check and the existing browser chip fallback, keeping credentials and non-web schemes out of native actions.
- Preserves phase fold state for native workflow rows and reflects pending or failed stop operations.
- Shows the free-context auto-compact hint and Remote Control help on native rows.