rzen
01aa9a0c94
The titlebar stand-in stops reappearing on a window that attaches after the board has loaded
...
`configureWindow` removed the loading stand-in from whatever window it happened to be
running against, but left `onAttach` installed exactly as `configureLoadingWindow` set
it — a closure that builds a fresh stand-in on every attach, deliberately, so it survives
the provisional-window swap while the board is still loading. SwiftUI's dismantle-then-
make swap has no deadline, though: when it lands after the store has already loaded, the
stale closure reinstalls a stand-in on the real window a moment before `attach`'s own
`addTitlebarAccessoryIfPossible()` installs the real widget beside it — both in the
titlebar, stand-in leading, and nothing left holding a reference to remove it a second
time. `onAttach` is now replaced in `configureWindow` too, keeping only the frame-
placement half a re-attached window still needs. New suite
`BoardLoadingTitlebarSwapRaceTests` drives `HostedWindowController` through the same
attach sequence and pins both the fixed and (as a negative control) the unfixed shape.
Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
2026-08-09 17:32:22 -04:00
..
2026-08-09 01:21:33 -04:00
2026-08-09 08:38:07 -04:00
2026-08-07 12:55:45 -04:00
2026-08-08 11:25:41 -04:00
2026-07-30 17:46:32 -04:00
2026-08-09 09:44:30 -04:00
2026-08-08 22:53:10 -04:00
2026-08-08 13:40:13 -04:00
2026-08-09 09:44:30 -04:00
2026-08-08 11:25:41 -04:00
2026-08-08 13:40:13 -04:00
2026-07-28 07:20:14 -04:00
2026-08-09 08:38:06 -04:00
2026-08-07 13:58:15 -04:00
2026-08-09 08:38:07 -04:00
2026-08-09 17:32:22 -04:00
2026-07-29 13:02:57 -04:00
2026-08-09 02:37:10 -04:00
2026-07-30 17:46:32 -04:00
2026-08-09 12:06:01 -04:00
2026-08-09 02:13:54 -04:00
2026-08-01 09:53:26 -04:00
2026-08-08 11:25:41 -04:00
2026-07-30 17:46:32 -04:00
2026-08-07 18:03:06 -04:00
2026-08-09 12:06:01 -04:00
2026-08-08 23:41:15 -04:00
2026-07-28 09:59:18 -04:00
2026-07-31 18:35:07 -04:00
2026-08-09 10:37:55 -04:00
2026-08-08 12:31:27 -04:00
2026-08-09 12:30:41 -04:00
2026-07-31 19:39:50 -04:00
2026-08-08 23:41:15 -04:00
2026-08-09 12:06:01 -04:00
2026-08-09 10:37:55 -04:00
2026-08-09 12:06:01 -04:00
2026-08-09 10:37:55 -04:00
2026-08-09 10:43:51 -04:00
2026-07-31 18:35:07 -04:00
2026-08-09 09:14:51 -04:00
2026-08-08 12:31:27 -04:00
2026-08-08 22:53:10 -04:00
2026-08-09 10:37:55 -04:00
2026-07-31 18:35:07 -04:00
2026-08-09 12:24:54 -04:00
2026-08-08 12:31:27 -04:00
2026-08-09 09:44:30 -04:00
2026-07-31 19:39:50 -04:00
2026-07-30 20:19:52 -04:00
2026-07-30 21:30:22 -04:00
2026-07-31 18:35:07 -04:00
2026-07-30 20:19:52 -04:00
2026-08-01 07:43:45 -04:00
2026-08-08 13:40:13 -04:00
2026-08-09 09:44:30 -04:00
2026-08-08 23:28:05 -04:00
2026-08-09 09:44:30 -04:00
2026-07-26 20:41:48 -04:00
2026-08-09 02:13:54 -04:00
2026-08-01 20:22:42 -04:00
2026-08-07 11:22:02 -04:00
2026-07-29 13:02:57 -04:00
2026-08-07 11:22:26 -04:00
2026-08-01 08:07:54 -04:00
2026-08-07 11:22:02 -04:00
2026-08-08 13:40:13 -04:00
2026-08-08 13:40:13 -04:00
2026-08-07 16:08:29 -04:00
2026-08-08 23:28:05 -04:00
2026-08-09 12:06:01 -04:00
2026-08-08 12:31:27 -04:00
2026-08-09 12:06:01 -04:00
2026-08-09 09:44:30 -04:00
2026-08-08 13:40:13 -04:00
2026-08-08 12:31:27 -04:00
2026-07-29 15:45:48 -04:00
2026-08-08 18:55:34 -04:00
2026-08-08 12:31:27 -04:00
2026-08-09 08:38:07 -04:00
2026-08-09 08:38:06 -04:00
2026-07-26 15:00:31 -04:00
2026-08-09 10:37:55 -04:00
2026-08-08 22:53:10 -04:00
2026-08-08 22:53:10 -04:00
2026-08-08 21:36:56 -04:00
2026-08-08 12:31:27 -04:00
2026-08-09 08:38:07 -04:00
2026-07-28 10:46:02 -04:00
2026-08-07 15:57:23 -04:00
2026-08-03 13:24:53 -04:00
2026-08-09 09:14:51 -04:00
2026-08-08 22:53:10 -04:00
2026-08-09 09:44:30 -04:00
2026-08-09 08:38:07 -04:00
2026-08-09 10:37:55 -04:00
2026-08-08 23:28:05 -04:00
2026-08-08 10:25:31 -04:00
2026-08-09 01:52:26 -04:00
2026-07-27 20:10:24 -04:00
2026-08-09 10:37:55 -04:00
2026-08-07 11:22:02 -04:00
2026-07-29 12:34:55 -04:00
2026-07-30 17:46:32 -04:00
2026-07-31 18:35:07 -04:00
2026-07-31 18:35:07 -04:00
2026-08-09 01:26:36 -04:00
2026-08-09 01:26:36 -04:00
2026-08-09 17:23:14 -04:00
2026-08-09 09:44:30 -04:00
2026-07-28 17:47:56 -04:00
2026-08-01 07:43:45 -04:00
2026-08-09 12:06:01 -04:00
2026-08-07 15:10:35 -04:00
2026-07-31 18:35:07 -04:00
2026-08-01 07:43:45 -04:00
2026-07-31 18:35:07 -04:00
2026-08-01 09:12:49 -04:00
2026-08-08 22:50:00 -04:00
2026-08-07 18:36:49 -04:00
2026-08-09 10:37:55 -04:00
2026-08-08 23:41:15 -04:00
2026-07-30 17:46:32 -04:00
2026-07-27 07:47:11 -04:00
2026-07-27 07:47:11 -04:00
2026-08-07 10:15:03 -04:00
2026-07-30 17:04:30 -04:00