Skip to content

fix(next perf gate): an unlit window skips the timed tab switch and new workspace counts - #23422

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
fix/perf-gate-timed-frames
Oct 21, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
fix/perf-gate-timed-frames

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The perf gate's tabs and new_workspaces scenarios fail debug.tab_switch timed 0 of 40 switches and debug.new_workspace timed 0 of 50 new workspace rows on the PR scheme lane (#23308 run 39584287796, "Perf counter gate"). That runner's window draws no frames (the frame probe saw 8 in 1 s, refresh_ms 0), and the app times each switch and row against the display link: SwitchFrameTimer records nothing without a refresh interval. Every other frame-dependent check is gated by frames_ok and takes the probe's skip there; these two counts were not (f06e1d7 for tabs, 5809c6c / #21825 for new workspaces). Both were already red on 10-19; the gate did not really run until f66b984 stopped a launch-time red from skipping it.

Gate.timed_count makes "no rows on a window that draws no frames" that same skip. Nothing else changes:

  • With --frames required (the GUI host), no frames is still a failure.
  • A lit window that times fewer rows than it should still fails.
  • No budget changes.

Testing

python3 tests/test_cmux_next_perf_gate_unlit.py (new, registered in linux-guard) drives both scenarios with a fake app whose timers record nothing. On huge-blue:

  • Red commit c2667e6: 2 of 3 fail. With --frames auto, the failures were [tabs] debug.tab_switch timed 0 of 40 switches and [new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows rather than the skip.
  • Fix commit 76aa0d2: 3 of 3 pass.

Observed / Not run

Changelog

none

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

Makes the perf gate skip debug.tab_switch and debug.new_workspace timed counts when the window draws no frames, instead of failing with "timed 0 of N". Those two scenarios previously failed on the unlit CI runner while every other frame-dependent check already took the frame probe's skip.

  • Adds Gate.timed_count to treat no rows on a window that draws no frames as the skip; --frames required still fails on no frames, and a lit window that times fewer counts still fails.
  • Adds tests/test_cmux_next_perf_gate_unlit.py covering the skip, the required-frames failure, and the lit-window failure, and registers it in the linux-guard lane.

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

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits October 21, 2026 06:00
…new workspace counts (red)

On the PR scheme lane's runner the window draws no frames (frame probe: 8 in 1 s), so
debug.tab_switch and debug.new_workspace time nothing and the gate fails 'timed 0 of 40' and
'timed 0 of 50' instead of the frame probe's skip that every other frame check takes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfb-0392-7f93-b611-98366b6dc130&host=cosmic-gray
…ew workspace counts

debug.tab_switch and debug.new_workspace time each switch or row against the display link
(SwitchFrameTimer records nothing without a refresh interval), so on the PR scheme lane's
unlit runner both scenarios failed 'timed 0 of N' (f06e1d7, 5809c6c) while every other
frame-dependent check took the frame probe's skip. No rows on a window that draws no frames
is now that skip; --frames required still fails, and a lit window that times nothing still
fails. No budget changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfb-0392-7f93-b611-98366b6dc130&host=cosmic-gray
@teamleaderleo teamleaderleo added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 21, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by transcript-removals on cosmic-gray · session

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

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

Review ff88485: 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=pr23422 -f ref=fix/perf-gate-timed-frames -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base f7a4033; does not block

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent, correctness first): SHIP at ff88485

The earlier head's two reds are base: cmux-next fast gates failed on the web lint's check:text-focus (FindSectionView, fixed by #23412), and defaults-snapshot (Menu rows run registered actions) failed the same way on #23328.

@teamleaderleo
teamleaderleo merged commit 997b546 into feat-cmux-next Oct 21, 2026
@teamleaderleo
teamleaderleo deleted the fix/perf-gate-timed-frames branch October 21, 2026 13:10
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Correction to the receipt above: the earlier head's cmux-next fast gates red was webviews check:fixed-waits (test/agent-pane-stream-jitter.test.ts) on the merge with base f7a4033, not text-focus. #23414 fixed that file; at tip 6e17c3e check:fixed-waits and check:text-focus both pass (huge-blue). This PR touches no webviews.

@blacksmith-sh

blacksmith-sh Bot commented Oct 21, 2026

Copy link
Copy Markdown

Found 6 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp7difv1vk/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpn1k41pww/summary-missing.json (live):/summary-missing.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.

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant