scratch(cmux-next): the red leg of #24262 — the keep-the-frame guard removed (do not merge)

Closed
TE
10d ago
+78-5

Do not merge. This PR exists to fail. It is the red leg of #24262, nothing else, and it gets
closed as soon as cmux-next / swift test reports.

#24262 adds a guard so a pane stops taking back the chat's last frame while the page it stands in
for is still coming — Leo's "it flickers the initial thing/paints and renders it... and then it just
goes to black screen for a while". It also adds two tests for that. The claim I owe the PR is that
those tests actually bite, so this branch is #24262's head with exactly one line removed:

-            guard launchImageMayClear?() ?? true else { return }

One deletion, one file, nothing else — the two new tests included, so a red here is attributable to
that line alone. theLastFrameWaitsForThePageItStandsInFor should fail with "the pane took back the
chat's last frame while its page was still coming, leaving it empty", and
theLastFrameGoesAtItsLimitOnceThePageDrew should stay green (it is the canary for the other half:
if the deadline never fired in the test host at all, that one would go red instead).

Why a PR rather than a fleet step: I dispatched this same suite as a light agent-class step at
06:58 UTC. Two and a half hours later it is still queued behind 220 jobs created before it, and
the queue is growing rather than draining (489 queued, 32 running), so it is roughly a day out. A
pull request runs the swift tier on a hosted Mac instead, and the router leaves the two heavy app
compiles alone without full-ci, so this is the cheaper of the two CI routes.

Changelog

none

šŸ¤– Generated with Claude Code

Agent session: big-red


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


Summary by cubic

Do not merge — this PR exists to fail. It is the red leg of #24262: the branch carries that PR's head with exactly one line removed, the launchImageMayClear guard in the deadline handler, so a red here is attributable to that line alone.

Includes #24262's two new tests unchanged. Expected result: theLastFrameWaitsForThePageItStandsInFor fails while theLastFrameGoesAtItsLimitOnceThePageDrew stays green, proving the guard is what the tests bite on. A PR is used rather than a CI fleet step because the step queue is backlogged hours; the hosted Mac tier is the faster route.