Session Info: row menu runs through the shared menu-action helper, not an inline selector (base red)

Merged
TE
5d ago
+5-8

Base-red-job: cmux-next guards / defaults-snapshot

Fixes the Menu rows run registered actions, not inline selectors base red (scripts/cmux-next/check-menu-actions.py): AgentPaneSessionInfoContent.swift: 1 inline menu row(s), 0 allowed. Source: #31930 (native AppKit Session Info), which built each line's … menu row with NSMenuItem(… action: #selector(menuItemPressed(_:))).

These rows run a Session Info action string that the session-info payload defines (Button.action). Nothing in the action registry corresponds to it, and the line's own buttons and toggle run the same thing through ink.act. So the row now goes through the agent pane's shared closure-row helper (AgentPaneMenuAction.item, the one the chat context menu uses), and the closure runs the same ink.act and ink.flush(). The enabled state and the SF Symbol image are as before. No baseline or allowlist entry is added.

python3 scripts/cmux-next/check-menu-actions.py: fails on base, passes on this head (ok: 41 inline menu rows in 32 baselined files, none new). The prepush gate shows no new violations. A CmuxNext package compile check is running on the fleet.

Observed / Not run

Ran the check script and the prepush gate. I did not open the menu in a running build.

Changelog

none
Agent session: agent session

šŸ¤– 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

Routes Session Info row menu items through the shared AgentPaneMenuAction closure-row helper instead of an inline NSMenuItem selector, fixing a base-red violation in scripts/cmux-next/check-menu-actions.py. Behavior is unchanged: rows run the same session-info action the line's buttons run via ink.act and ink.flush(), and enabled state and SF Symbol images stay the same. No baseline or allowlist entry is added.