Projection Mapper (native Windows) 0.87.4 - Built by Instinct NEW IN 0.87.4 - PROJECTOR WINDOW OPENS ON THE PROJECTOR AGAIN Your bug: "Projector window not opening on projector display." What was wrong: the app remembered DISPLAY2 as your show display from an earlier rig layout. DISPLAY2 is now your MAIN screen, so at every start the app refused to auto-open there (a full-screen show on the main screen would cover the control window) and just logged "not reopened automatically". The display picker on the Show page then defaulted to Display 1, so even pressing "Open projector" by hand aimed at the wrong screen. What it does now: - At start the app picks the show display intelligently: your remembered display when it is still usable; if that display became your main screen or is no longer connected, the biggest non-main display is picked (on your rig tonight that is the other 4K screen, DISPLAY4) and the show window opens there automatically. The log says exactly why the display moved. - The main screen is still never auto-opened. If EVERY display is the main screen, nothing auto-opens and the log says so. - The Show page display picker now names displays clearly, e.g. "Display 2: DISPLAY4 3840x2160" plus "(main screen)" and "(last show)" tags, so you can see which entry is the projector at a glance. - The smart pick also runs when auto-open is off, so the manual "Open projector" button aims at the right display too. - If the guess is ever wrong: press Esc to close the show window and pick another display in the picker; your choice is remembered. STILL TRUE FROM 0.87.3 - UI watchdog: 10s of UI silence dumps all goroutines to the log (the Outline-editor freeze hunter). If the Outline editor freezes again, click it once, wait ~15s, then Send logs. - uiNote tracing on control-loop, nav, effects-picker and Outline-editor input; runaway line-draw guard with one-time log. - 0.87.2: Outline editor deadlock fix (lock-free oeHandlePtLocked / oeSelectionLocked cores), Send logs captures current + previous run. TESTED - New display-picking logic: 6 unit cases (remembered-now-main, remembered still good, remembered missing, main-only rig, no-alternative rig, biggest-of-two) - all green. - go vet clean on native build; full unit suite green; Windows amd64 build green (go 1.25.2, linux/amd64 host). UNTESTED - Real multi-display open on your rig: the auto-open path runs only on Windows at app start. The picking logic is unit-tested; the actual window placement on DISPLAY4 is not - tell me if the show lands on the wrong screen and which display the log names. JUDGMENT CALLS - Auto-opening on the biggest non-main display when the remembered display turned into the main screen: matches the "reopen at start" toggle's intent, and wrong guesses are one Esc away. Alternative was refusing and making you pick by hand every start. - GOOS=windows go vet still reports the known unsafe.Pointer notes in camera.go/mfcam.go (Media Foundation interop, present since the camera sidecar shipped). Unchanged by this build. Gemini calls: 0.