Skip to content

Session Info: add native activity and running-limit models - #31958

Merged
cmux-bot[bot] merged 11 commits into
feat-cmux-nextfrom
lane/session-info-native-activity-models
Nov 2, 2026
Merged

cmux-bot[bot] merged 11 commits into
feat-cmux-nextfrom
lane/session-info-native-activity-models

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

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 Autofix with [code]smith
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.

Written for commit d0468e0. Summary will update on new commits.

View guided diff Turn on auto-fix

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 2, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (claude opus-5.5 medium): SHIP at 467e05a

Visual verdict: unchanged by this diff. The web wave keeps the same period (2.4s) and step (180ms) on the same element, and the native builders are still dormant.

I read the diff against #31906's head 2dee6ec (this branch carries #31906, which has merged). Live code changes in two places. SubagentLimitStepper moves its logic into useSubagentLimitController with the same rules: an ask stands while the reported limit is one it stood over, and is replaced once it isn't. It is cleared when the last call settles, and a refusal still shows for 4s. Two things improve: nextSubagentLimitAsk and latestMax read refs, so two clicks before React repaints step twice instead of once, and the hook runs before the !limits early return. The subagents wave variables move from CSS to inline style on the same element, with the same values. links.ts drops non-http(s) URLs and URLs with credentials before opening anything.

Follow-ups: none.

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review d0468e0: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr31958 -f ref=lane/session-info-native-activity-models -f platform=macos -f backend_mode=local

Gallery before/after for d0468e0: 16 states rendered, 9 images differ, 2967 more touched states not rendered. Images are in the run's artifact, not on this public PR; the independent review of this head reads them on its own, so the PR needs no hand-made screenshots of these states.

gh run download 41408285317 -R manaflow-ai/cmux -n gallery-advisory-31958-d0468e003ed91f0860e4ad5de9dc84dd29efa154 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.chat-inspector/full Apple System Colors Light unchanged 0% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/full Apple System Colors unchanged 0% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-running Apple System Colors Light changed 0.0014% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-running Apple System Colors unchanged 0% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-finished Apple System Colors Light unchanged 0% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-finished Apple System Colors unchanged 0% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-failed Apple System Colors Light unchanged 0% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-failed Apple System Colors unchanged 0% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-compact Apple System Colors Light changed 0.0063% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-compact Apple System Colors changed 0.0051% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-detail Apple System Colors Light changed 0.0063% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-detail Apple System Colors changed 0.0053% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-grid Apple System Colors Light changed 0.0063% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-grid Apple System Colors changed 0.0053% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-narrow Apple System Colors Light changed 0.0063% own SubagentLimitStepper.tsx
agent-pane.chat-inspector/workflow-agent-row-narrow Apple System Colors changed 0.0056% own SubagentLimitStepper.tsx
agent-pane.chat-inspector-surfaces/transcript Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.chat-inspector-surfaces/transcript Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.chat-inspector-surfaces/diff-in-place Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.chat-inspector-surfaces/diff-in-place Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.chat-inspector-surfaces/document-beside Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.chat-inspector-surfaces/document-beside Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.chat-inspector-surfaces/diff-closed Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.chat-inspector-surfaces/diff-closed Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/animated Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/animated Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/jump Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/jump Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/steady Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/steady Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/popover Apple System Colors Light unchanged 0% imports SubagentLimitStepper.tsx (1 hops)
agent-pane.inspector-composer-foot/popover Apple System Colors unchanged 0% imports SubagentLimitStepper.tsx (1 hops)

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Shipped in:

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (claude opus-5.5 medium): BLOCK at 7414e9b

[blocking] Merge 7414e9b6e0a6 committed unresolved conflict markers (<<<<<<< HEAD / ======= / >>>>>>> origin/feat-cmux-next) in session-info/native/changes.ts, context.ts, environment.ts, outputs.ts, sources.ts and webviews/test/native-session-info-sections.test.ts. TypeScript can't parse these files, so web lint, tsc and the tests break. Resolve them by keeping this branch's side (the openUrl/nativeExternalUrl routing and the KINDS breakdown), check that the diff against base matches the one SHIPped at 467e05a minus what #31906 already landed, and push a new head.

@teamleaderleo
teamleaderleo force-pushed the lane/session-info-native-activity-models branch from 7414e9b to 7abd381 Compare November 2, 2026 07:42
@cursor

cursor Bot commented Nov 2, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (claude opus-5.5 medium): SHIP at d0468e0

Visual verdict: unchanged by this diff.

No conflict markers. Against merge-base 88f9709, the diff is the one SHIPped at 467e05a, file for file and line for line. The one exception is native/tasks.ts: server port links now go through nativeExternalUrl, which drops non-http(s) URLs and URLs with credentials and falls back to the cmux browser when there is no preview callback. That clears the BLOCK at 7414e9b.

Follow-ups: none.

@cmux-bot
cmux-bot Bot merged commit b52b9f8 into feat-cmux-next Nov 2, 2026
190 of 193 checks passed
@cmux-bot
cmux-bot Bot deleted the lane/session-info-native-activity-models branch November 2, 2026 08:26

This branch was previously deployed

1 inactive deployment
ci-routing-agent — d0468e00 Deployed Nov 2, 2026 by teamleaderleo via cmux-tui tree preflight #100111
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant