Repository navigation
Agent pane: permission card at Claude desktop's level, Esc and ⌘↩ keycaps; Needs your input pill on the live line - #36189
teamleaderleo wants to merge 10 commits into
Conversation
…d ⌘↩; the Needs your input pill on the live line Leo, 2026-11-05, on Claude desktop's "Allow Claude to use cmux NIGHTLY?" card: "The whole, like, allow whatever to use, allow for this session, or deny. And then it shows the hotkeys." - PermissionCard: a bold title on the title step over a muted reason, a quiet details band (command, scope line), then the answers at the trailing edge: other options, Deny with an esc keycap, Always allow with its ⌥⌘2 hint, and Allow once last, filled in the text colour inverted, with a ⌘↩ keycap. ⌘↩ allows once (Return still does); every choice, key and app shortcut is kept. Deny's field shows esc and ↩ on Cancel and Send. - The live line while the chat waits on the person is the "Needs your input" pill (the attention dot on a tinted pill); once answered, the dot shrinks into the Thinking line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules Gallery before/after for
States
Pick other states with a |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
|
Found 10 test failures on Blacksmith runners: Failures
|
…enshot
Leo's screenshot, now forwarded whole, puts the tint on the card's head
(title and reason), the title in regular weight on the body step, Deny at
the leading edge and the allow at the trailing one, and one outlined
keycap per key ("Esc", "⌘ ↩"). The "Needs your input" dot is a ringed dot
before the pill, outside it. Match all of that; every answer and key
stays as it was.
Tests: permission-card-shortcuts, permission-card-prompt and
live-line-needs-input-pill, 19 pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
With four answers on a 540px card the row wrapped Allow once alone onto a second line, away from Always allow. Group the two allows so a narrow card moves them down together, still at the trailing edge, as Claude desktop keeps its allow apart from Deny. Tests: permission-card-shortcuts, permission-card-prompt and live-line-needs-input-pill, 19 pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
…leading edge when the row wraps Review (gpt-6-astra) at f77da28: the live-line test slept 450 ms for real, which check:fixed-waits refuses. It now advances fake timers to one ms under and then to SETTLE_MS. And when four answers wrap the row, the row starts at the leading edge, so Deny stays left and the allows right. Tests: permission-card-shortcuts, permission-card-prompt and live-line-needs-input-pill, 19 pass; check-fixed-waits passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
|
Review (codex gpt-6.1-sol xhigh, router-review): BLOCK at 41f85e8 BLOCK at 41f85e8 Visual verdict: no visual blocker; all supplied after images reviewed against their before images and the requested Claude layout.
Follow-ups: none |
Review (gpt-6.1-sol) at 41f85e8: the keycaps' `font:var(--text-caption)/18px` shorthand added a raw size to the type-scale ratchet. They now set the caption step's size and line height apart, centred in a 20px keycap (the icon control step), with the half-step between them. The design-token ratchet also caught the new pill and dot off the scale: the pill is 20px high with 8px sides; the ringed dot is one 12px glyph (an 8px dot in a 2px ring of the mark, as before) drawn as a gradient, renamed .cv-needs-input-glyph; its shrink uses --cmux-ease-out. The baseline loses the font-weight 500 this change removed. check:type-scale, check:design-tokens, check-fixed-waits and the other check:pieces style checks pass; permission-card-shortcuts, permission-card-prompt and live-line-needs-input-pill: 19 pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
…al-card-and-fonts # Conflicts: # webviews/src/agent-session/acpmux/conversation/Thinking.tsx
Bugbot needs on-demand usage enabledBugbot 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. |
|
Review (codex gpt-6-astra high, router-review): BLOCK at 8887174 BLOCK at 8887174 Visual verdict: supplied captures match the redesigned permission card and needs-input pill; gallery activity-line differences are tiny.
Focused tests were not run because Follow-ups: none |
Review (gpt-6-astra) at 8887174: the pill rule sat on `.cv-waiting`, which the activity and Worked-for lines (ActivityLine.tsx, WorkingFor.tsx) also use for a waiting turn, as bare text with no dot or pill; they took the mark colour and inline-flex spacing. `.cv-waiting` keeps its old full text colour for them, and the pill's look is `.cv-thinking.cv-waiting`. live-line-needs-input-pill.test.tsx: the new scoping test fails on 8887174 and passes here; with permission-card-shortcuts and permission-card-prompt, 20 pass. design-tokens, type-scale and fixed-waits pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
… in the new card layout Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
|
Review (codex, router-review): SHIP at 3d5ceee Reviewer: codex gpt-6-astra high, fast tier. SHIP at 3d5ceee Visual verdict: Supplied dark/light captures match the intended permission-card and needs-input layouts. Changed TypeScript parses cleanly; focused Bun tests were unavailable because Follow-ups: none |
…e the Thinking row Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-82fcd56b3d2da30b801c
|
Orphaned: no activity for 17 h, and no lane holds a lease on it. The orphan sweep could not merge |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Summary
Leo, 2026-11-05, pointing at Claude desktop asking to use cmux NIGHTLY ("Allow Claude to use cmux NIGHTLY?", a muted reason, an app row, then "Deny Esc" and "Allow for this session ⌘↩", and a "Needs your input" pill in its plan list):
Our permission card was a compact glass card with a 13px title, the buttons at the leading edge (Allow once filled in the accent), light ⌥⌘1/2/3 hints, and the scope line under the buttons. This brings it to Claude's level. The question card already had Claude's structure (Skip
esc, Submit⌘↩, #27316, #27938), so it is unchanged.Permission card (
PermissionCard.tsx,styles.css):Esckeeps the leading edge (after any other option the agent offered), and the allows keep the trailing edge: Always allow (its ⌥⌘2 hint), then Allow once⌘↩, filled in the text colour inverted, as the question card's Submit is. Each key is its own outlined keycap, as Claude draws them. On a narrow card the two allows wrap together onto the next line, still at the trailing edge.permissionKeyAction). Return, 1/2/3, Esc and ⌥⌘1/2/3 still do what they did. Each button lists both keys inaria-keyshortcuts(Meta+Enter ⌥⌘1,Escape ⌥⌘3).Escon Cancel and↩on Send, keys that already worked.Needs your input on the live line (
conversation/Thinking.tsx,conversation.css):Before / after
Captures
Gallery entries, Linux Chromium, cropped to the component. Before is the merge-base (355773c), after is this head.
Dark
Light
Captures are at 30de747 (the before column is the merge-base 355773c). Commits after the first: answer labels centred on their keycaps (f77da28); the card and the live line matched to Leo's whole screenshot once it was forwarded (c7103af: tinted head, regular-weight title, Deny left and allows right, one keycap per key, the dot outside the pill); the allows wrap as a pair (24449f6); and the review's finding at f77da28, a real-time wait in the new test, fixed with fake timers, with the row starting at the leading edge when it wraps (41f85e8). Then the review's finding at 41f85e8: the keycaps' font shorthand added a raw size to the type-scale ratchet, and the new pill and dot were off the token scale; they now sit on it (the dot is one 12px glyph, an 8px dot in a 2px ring), and the design-token baseline drops the font-weight the card no longer uses (30de747).
Testing
bun test test/permission-card-prompt.test.tsx test/permission-card-shortcuts.test.tsx test/permission-card-peer-always.test.tsx test/question-consent-card.test.tsx test/button-ink-contrast.test.ts: 58 pass. The order and keycap expectations are updated, and there are new cases for ⌘↩ (allows on the body and on a focused button, never in a field or with the feedback field open).test/live-line-needs-input-pill.test.tsx: the pill carries the dot; once answered, the dot leads the Thinking line, and it goes onanimationendor after its fallback time. It passes along withneeds-input-mark-color,transcript-thinking-verbsandstatic-status-loops.agent-pane.permission-card(every variant) andagent-pane.waiting-on-you(permission-mid-turnshows the pill over the card).Changelog
Changed: Permission asks in the agent chat read like Claude desktop's, with a bold title, a quiet details band, and Deny
esc/ Allow once⌘↩keycaps (⌘↩ now allows once). While a chat waits on you, its live line is a "Needs your input" pill whose dot shrinks into Thinking once you answer.Agent session: agent session
🤖 Generated with Claude Code