Note
🤖 Claude Opus 5.5 responding on behalf of Sam (samanyudas)
This bug did not reproduce on main, so there is no fix yet.
I tried to reproduce this on a Miri Developer build of main at 70ad7f0f, with engine ffe0673, on 2 November 2026.
The desktop gap did not show.
The instrumented run below shows why: on this build, pacing almost never trusts a moving window, so the state this issue needs rarely exists.
What I ran
- I arranged the strip on the 27-inch display as two windows of a stand-in app, then an AXFixture window, then T3 Code. The built-in display was empty.
- The stand-in shows each move 250 ms late after macOS brings it to the front, and its main thread stays free. The pacing notes say that Helium is late by up to 250 ms after a focus change.
- Each trial pressed ⌃⌥⌘← from the first column, waited 0.8 s, pressed ⌃⌥1 to come back, and then pressed ⌃⌥= at once to grow the first column. The grow moves the stand-in's second window right, with the fixture ahead of it.
- A sampler read the frames that the window server showed every 4 ms.
What I saw
- In 14 round trips with this stand-in, no extra desktop showed between its second window and the fixture: 0 px each time. 8 earlier round trips with a stand-in that blocked its main thread for 250 ms also showed 0 px. Each time, the fixture waited until the late window had moved.
- In 6 positive controls, I made the stand-in late with no front switch. That also showed 0 px, so the window was not trusted even before any round trip.
- A build of the same commit with info logs on
Tracked::promptshowed the cause. The engine stepped every 3 to 10 ms, and the window server showed each move 1 to 3 engine frames later. SoTracked::seemarked the window late in nearly every motion, the quick fixture included. In 24 motions, the stand-in's second window ended prompt 2 times and the fixture 3 times. Those were motions where the window barely moved. - The round trip itself worked as this issue describes: macOS brought another app to the front (
com.apple.WindowManager), and the window kept its focus.
What would unblock a fix
A screen recording or frame log of the gap on Sam's row, on a build of main or later.
The narrower fix is ready to build if the gap shows: on a front switch, clear prompt for the windows of the switched apps, and keep the record of the motion in flight.
Clearing a flag that is already clear changes nothing, so an ordinary app switch would pace exactly as it does now. That avoids the double reset that made paneru#93 slower.
Found on the way
- ⌃⌥⌘← toward the empty built-in display never made that display active, in all 26 tries.
The engine logged
macOS did not make display 1 active after the engine focused its desktop, and Miri flashed "macOS did not switch to the other display". PROGRESS.md records this working on 31 October. Filed as #253. - Pacing that almost never trusts a moving window means that a row of quick apps is always paced from where macOS shows it. That is the cost #163's pacing meant to avoid for quick apps. I have not measured whether anyone can see it.
The evidence is on Sam's Mac only: ~/.cache/miri/verify-miri/runs/20261102-104617/ and ~/.cache/miri/verify-miri/runs/20261102-105611/, which hold pacing-trust.log and the frame samples.