Repository navigation
base red: the tab bar's menu counts for New Tab and Reopen Closed Tab (ActionSurfaceParityTests) - #33092
Conversation
… (ActionSurfaceParityTests) everyTargetKindMenuShowsItsActions failed at ActionSurfaceParityTests.swift:79 with gaps newTab.default (tab) and reopenClosedBrowserPanel (tab). a9c5b0d (#32127, vertical tabs) added the tab bar's empty-area menu (ActionMenuContext.tabStrip, whose target is the pane) and placed both there, as Chrome's and Edge's tab strip menus do. A placement replaces an action's menu exemption, so both lost theirs (newTab.default's duplicateOfDefault was removed; reopenClosedBrowserPanel's noObject no longer applies), and the parity rule found a tab action placed only in a pane menu. The rows work: the app passes the pane, and newTab.default's handler takes a pane target as its place (TabLifecycle.newTabOfPaneKind, namesPane); Reopen Closed Tab reopens the key window's newest closed group whatever the target. What the rule could not say is that the tab bar's rows act on what its pane holds. ActionMenuContext.contentKinds now says it, for the tab bar only ([.tab]); every other menu keeps the rule as it was (a pane's own menu still does not count for a tab action). Culprit: a9c5b0d (#32127). Red: fleet job 2bf90b6c18ca136f3fb6c15d at feat 11dfe91.
|
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)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 6b31a88 to compare; do not merge until green; see lane-rules Shipped in:
|
|
Found 6 test failures on Blacksmith runners: Failures
|
|
Review (independent review subagent, Opus 5.5 claude-opus-5-5, read-only): SHIP at de406cb
Follow-ups (nits):
|
|
Correction to my review receipt above: the lanes were red overall because of the test-bundle run-loop guard, which held the main thread in xctest. It was not the macOS AddressBook store; that was only a symptom. #33023 and #33013 fixed it on feat (ecfbb44). This head is older than that fix, so its lane still shows the XCTest stage red. The suite's own result (passes at this head, fails at the tip) is unchanged. No action is needed on this PR. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Summary
Base red on feat-cmux-next:
CmuxNextActionsTests.ActionSurfaceParityTests.everyTargetKindMenuShowsItsActionsfails at ActionSurfaceParityTests.swift:79 with gapsnewTab.default (tab)andreopenClosedBrowserPanel (tab).Cause: a9c5b0d (#32127, vertical tabs) added the tab bar's empty-area menu (
ActionMenuContext.tabStrip, whose target is the pane) and placed New Tab and Reopen Closed Tab there, as Chrome's and Edge's tab strip menus do. A placement replaces an action's menu exemption, so both lost theirs. The parity rule then saw a tab action placed only in a pane menu.The rows work as placed: the app passes the pane,
newTab.defaulttakes a pane target as its place (TabLifecycle.newTabOfPaneKind), and Reopen Closed Tab reopens the key window's newest closed group whatever the target. The rule had no way to say that the tab bar's rows act on what its pane holds.ActionMenuContext.contentKindsnow says it, for the tab bar only ([.tab]). Every other menu keeps the rule as it was: a pane's own menu still does not count for a tab action.Owner: no OWNERS.md row covers
CmuxNextActions/ActionTarget.swift; the tab strip menu came from #32127 (teamleaderleo).Testing
Command:
cmux-ci run --class light --display --script scripts/ci/package-test-lane.sh --ref SHA --arg=suite --arg=Packages/macOS/CmuxNext --arg=CmuxNextActionsTests.ActionSurfaceParityTests(5 runs in one step).Each job's lane summary is red for a reason outside this change: on these hosts the target's XCTest pass aborts (signal 6, after Contacts/AddressBook CoreData store errors) or hangs ~680-900 s with no test in flight, after the Swift Testing pass. The Swift Testing results below are the suite's own.
Observed / Not run
Observed: the fleet runs above.
python3 scripts/cmux-next/prepush-gate.pypasses.Not run: no app build or manual check of the tab bar menu; the change touches only the parity rule's input, not the menu.
Changelog
none