perf-gate: new-row late frames are a known breach; debug popup snapshot allowed

Merged
TE
18d ago
+15-5

The cmux-next perf gate has been red on feat-cmux-next since #21825 merged, for two reasons:

  • New rows a frame late. In the new_workspaces scenario, 3 to 6 of the 50 new rows commit one frame late on the mini. The row itself is drawn from the press with no walk (walks 0 in every run), but the list's commit of the insert takes 34 to 39 ms at p99 once there are 33 to 70 workspaces. This happened in feat-cmux-next runs 39292677937, 39296303954 and 39300730843.
  • Source guard. DebugPopups.swift's window snapshot trips the source guard. It's a debug tool, like the Control/Debug* files already exempted.

Changes:

  • Up to 8 late rows is now a KNOWN breach. It warns and names cx-zf6um; more than 8 fails. Once a full run shows no late rows, the ratchet fails until the KNOWN line is removed.
  • walks 0 stays blocking.
  • DebugPopups.swift joins the capture allowlist.

Fixing the slow insert commit is the follow-up under cx-zf6um.

Testing

Script-only change; it parses. The scheme compile job on this PR runs the gate. Before this change, the gate's output on base showed exactly these two failures.

Changelog

none

🤖 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 cmux-next perf gate being red on feat-cmux-next for two failures: late new-row commits and the debug popup snapshot source guard.

  • Up to 8 late new workspace rows now warn as a known breach naming cx-zf6um; more than 8 still fails, and walks 0 stays blocking.
  • A full run with no late rows fails the ratchet until the known-breach line is removed, so the fix tightens the gate when it lands.
  • Adds DebugPopups.swift to the capture allowlist since its window snapshot is a debug tool like the already-exempted Control/Debug* files.

Script-only change; the gate runs on this PR's compile job and showed exactly these two failures on base.