cmux NEXT: Needs you holds no peer ask that beats its chat's summary

Merged
TE
15d ago
+22-10

Follow-up to the review of #22646 (the Needs you list).

Summary

  • Peer asks. AskTracker.pending held a peer's relayed permission_pending whenever it arrived before that chat's session summary, because it rejected only chats it already knew were remote. The list then showed the ask with Allow and Deny until the summary came. acpmux sets peer (and via: "peer") on every relayed notice (cmux-tui/crates/acpmux/src/server/pending.rs peer_permission_pending). Now pending also rejects a notice that names a peer.
  • Dead CSS. needsYou.css had rules for the SessionSidebar that #23339 deleted. This removes the .acpmux-session-preview-status.acpmux-session-mark-input selector and the .acpmux-session-mark .acpmux-needs-you-dot rule, which no longer match anything, and fixes the header comment. The .acpmux-session-mark-input tint stays, since the dev prototype's workspace row (prototype/WorkspaceShell.tsx) still uses it.
  • Not done here: the native Priority row's "needs you" chip (SidebarPriorityRowView.chipColor, Palette.attention). That color is shared with workspace rows, so changing it is a native visual change that needs a capture. It belongs in its own PR.

Testing

The regression test is committed before the fix (8ba6b002705), in webviews/test/agent-pane-needs-you-asks.test.ts: "a peer's pending notice that beats its chat's summary is not held as an ask".

Command, from webviews/ on cmux16: bun test test/agent-pane-needs-you-asks.test.ts

  • Base plus the test (8ba6b002705): 16 pass, 1 fail. expect(ids(asks)).toEqual([]) received ["p-far"].
  • Head (63f3b0c3d00): 17 pass, 0 fail.

Observed / Not run

  • Observed: the red and green runs above, python3 scripts/cmux-next/prepush-gate.py (no new violations), and scripts/web-lint.sh. web-lint failed only on check:browser-lanes (test/diff-paint-perf.test.ts), check:fixed-waits and check:text-focus (FileExplorerCell.swift). All three are in files this PR does not touch and are red on base 1a88342deac, so I pushed with CMUX_WEB_LINT_SKIP_REASON naming them.
  • Not run: the rest of the webviews suite, and any visual check of the CSS removal. The removed selectors match no element.

Changelog

  • Fixed: the Needs you list no longer offers Allow and Deny for another computer's request that arrives before its chat is listed.

Agent session: cosmic-gray

🤖 Generated with Claude Code


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


Summary by cubic

Fixes the Needs you list so a peer's permission request that arrives before its chat's session summary is no longer held as an ask with Allow and Deny. AskTracker.pending now rejects any notice that names a peer (peer, via: "peer"), which acpmux sets on every relayed request; previously only chats already known to be remote were rejected. Also removes dead CSS in needsYou.css for the SessionSidebar deleted by #23339; the input-mark tint stays for the dev prototype's workspace row. A regression test is added and fails on the base.

Not included

  • The native Priority row's "needs you" chip color, which is shared with workspace rows and warrants its own PR.