Skip to content

Session status card: acpmux fills Host, Auth source, Routing, Settings and Usage limits - #32835

Merged
teamleaderleo merged 4 commits into
feat-cmux-nextfrom
lane/status-card-fields
Nov 3, 2026
Merged

teamleaderleo merged 4 commits into
feat-cmux-nextfrom
lane/status-card-fields

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Leo, 2026-11-03: "how come the status doesn't say anything"

On a Claude chat the Session status card (/status, added in 11c3f51 "feat(cmux-next): add shared harness status card", limits row from #27762) filled in Version, Session, CWD, Model, Effort and Context. Host, Auth source, Routing, Settings and Usage limits all said "Not reported".

Why

The card reads host, authSource, route/baseUrl and settingsSources from the session detail. acpmux never set them. For a claude-sr2 chat it also kept no spawn env at all, because claude_auth::remember ran only for family claude.

What changed

  • acpmux (session_status.rs, new): session detail now carries
    • host: this daemon's machine name. A peer's chat names the peer's own machine, since the detail comes from the remote daemon.
    • authSource: the sign-in Claude Code uses, picked in Claude Code's own precedence order: a cloud provider, then ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY, apiKeyHelper, CLAUDE_CODE_OAUTH_TOKEN, a /login key, then the subscription login. It names the kind and where it came from (route, profile, environment, or a file path), never the value. A launcher (sr2 claude, sr claude proxy) is named as such.
    • route: the bound route's name, else the SR2 gateway, a subrouter, a custom endpoint, or "Direct (Anthropic)". It is never hidden for a direct login.
    • settingsSources: the settings files that exist (managed, the Claude home's settings.json, the project's .claude/settings*.json), plus "autocompact at 400K" when that window is set.
    • usageLimitsApply: false only when the sign-in has no plan limits (an API key, Bedrock or Vertex) and none were reported.
    • remember now runs for every Claude family. explain (the sign-in failure text) still applies to plain claude only, so claude-sr2 errors are unchanged. The route's name reaches the spawn through the internal ACPMUX_ROUTE_NAME key, which command.rs strips before the harness starts.
    • The file reads are cached per chat for 30 s, keyed on the spawn inputs, so attach and info reads do not re-read ~/.claude.json each time.
  • web: the card only renders these values. With no limit reported yet, the Usage limits row now reads "No limit reported yet" instead of "Not reported". It hides that row when acpmux says the row does not apply. New gallery variants claude-sr2 and claude-api-key show both.

Tests

  • tests/claude_auth_env.rs::session_info_names_host_sign_in_route_settings_and_limits: a fake Claude launched with a profile that sets CLAUDE_CONFIG_DIR, ANTHROPIC_AUTH_TOKEN and an SR2 gateway URL. _acpmux/info carries host, "Auth token (ANTHROPIC_AUTH_TOKEN, from its profile)", "SR2 gateway (…)", both settings files plus autocompact, and the reported limits. The token value appears nowhere.
  • session_status_tests.rs: auth precedence and labels, route labels, launcher detection, settings files, plan-limit applicability.
  • HarnessStatusCard.dom.test.tsx: the card shows the daemon's rows, says "No limit reported yet", hides Usage limits when it does not apply, and still shows limits that were reported.

Observed / Not run

  • Ran locally: bun test src/agent-session/acpmux/HarnessStatusCard (19 pass) and scripts/web-lint.sh (pass).
  • Rust: run through cmux-ci at the head (results in a comment). No DEV build check yet.

risk: normal. No capture: the gallery variants agent-pane.harness-status/claude-sr2 and /claude-api-key render the new states.

Changelog

  • Fixed: the Session status card now shows the machine, sign-in source, routing, settings files and usage-limit state for Claude chats instead of "Not reported".

Agent session: agent session

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

The Session status card now shows the machine, sign-in source, routing, settings files, and usage-limit state for Claude chats instead of "Not reported".

  • acpmux fills these from the spawn env it now remembers for every Claude family, the bound route's name, the launcher argv (sr2 claude, sr claude proxy), and the settings files in force.
  • The sign-in is named by kind and origin (route, profile, environment, or file path), never a credential's value; the machine goes in a new machine field so the web does not treat a local chat as remote.
  • The Usage limits row reads "No limit reported yet" until one is reported, and hides entirely when the sign-in has no plan limits (API key, Bedrock/Vertex).
  • File reads are cached per chat for 30 seconds and run off the async workers.

Tests

  • A fake Claude launched from a profile sets CLAUDE_CONFIG_DIR, ANTHROPIC_AUTH_TOKEN and an SR2 gateway URL; _acpmux/info carries the machine, sign-in kind and origin (never the token value), route, settings files plus autocompact, and the reported limits.
  • Rust unit tests cover auth precedence and labels, route labels, launcher detection, settings files, and plan-limit applicability.
  • HarnessStatusCard.dom.test.tsx covers the new rows, "No limit reported yet", the hidden Usage limits row, and limits that were reported.

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

View guided diff Turn on auto-fix

…s and Usage limits

Leo, 2026-11-03: "how come the status doesn't say anything". The card read
host, authSource, route and settingsSources from the session detail, and the
daemon never set them; a claude-sr2 chat was not even remembered, because only
family "claude" kept its spawn env.

acpmux now sets them in session detail (session_status.rs), from the spawn env
it remembers for every Claude family (kinds and origins only, never a value),
the bound route's name, the launcher argv (sr2 claude, sr claude proxy) and the
settings files in force plus the autocompact window. A sign-in with no plan
limits (API key, Bedrock/Vertex) sends usageLimitsApply: false and the card
hides that row; otherwise no limit yet reads "No limit reported yet".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-6a36e7fb7cbfd03d48fc
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

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

Review ef29650: 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=pr32835 -f ref=lane/status-card-fields -f platform=macos -f backend_mode=local

Gallery before/after for ef29650: the capture produced no images (run).

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on c5d7e8d to compare; do not merge until green; see lane-rules

Shipped in:

@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026
… off async workers

Review of 7e7ef49: a `host` on a local chat's detail made the web treat it
as remote (model memory, New Tab model, full-access row, Account item,
@-mention recents). The card now reads `machine` after host and peer. A
source's rank reads its leading words only, so a path holding "aws" never
ranks a sign-in; the settings reads run under block_in_place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-6a36e7fb7cbfd03d48fc
@blacksmith-sh

blacksmith-sh Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Found 6 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp7l1gtlwy/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpv5kemzj5/summary-fail.json (live):/summary-fail.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo teamleaderleo added leo-named-fix An obvious fix to something Leo named: lands on push, review runs in parallel risk:normal Risk tier (docs/ci/risk-tiers.md) labels Nov 3, 2026
@teamleaderleo
teamleaderleo merged commit 5e76566 into feat-cmux-next Nov 3, 2026
234 of 243 checks passed
@teamleaderleo
teamleaderleo deleted the lane/status-card-fields branch November 3, 2026 03:13
@github-actions github-actions Bot removed the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026
lawrencecchen pushed a commit that referenced this pull request Nov 3, 2026
…leet host (#33110)

`No fleet host names in gallery fixtures` (cmux-next checks) is red on
feat-cmux-next: HarnessStatusCard.gallery.tsx (#32835) names "cosmic-gray".
The fixture now names studio-mac, as the check asks. The DOM test keeps its own
fixture (the check reads gallery fixtures only).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Nov 3, 2026
…eet host (#32835) (#33022)

Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: cmux-bot[bot] <348531757+cmux-bot[bot]@users.noreply.github.com>

This branch was previously deployed

3 inactive deployments
artifacts — ef296506 Deployed Nov 3, 2026 by teamleaderleo via publish tree-addressed cmux-tui #103600
sentry-dsyms — ef296506 Deployed Nov 3, 2026 by teamleaderleo via upload cmux-tui dSYMs to Sentry #103600
ci-routing-agent — ef296506 Deployed Nov 3, 2026 by teamleaderleo via cmux-tui tree preflight #103600
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

leo-named-fix An obvious fix to something Leo named: lands on push, review runs in parallel risk:high Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant