Wave 8 tick 3 leftover coverage of space-game.component.tsinitHUD (lines 1052–1068).
KeybindingManager.loadKeybindings() and the regular import("./hud") both construct KeybindingConfigHUD. If needsPrompt resolves first, leftover lines 1057–1058 create HUD A and call showBackendLoadDialog(). The later regular import then does this.keybindingConfigHUD = new KeybindingConfigHUD() and overwrites A, so the backend-load dialog is never visible.
The inverse race (regular import first) is the common path and works. The leftover constructor exists only for the losing race, and even then the second assignment can discard it.
Characterization: space-game.component.init.spec.ts — "constructs KeybindingConfigHUD in the needsPrompt race when the regular import has not landed".
Fix: construct the HUD once (await the dynamic import, then ??= / guard), then show the dialog on that instance.
Wave 8 tick 3 leftover coverage of `space-game.component.ts` `initHUD` (lines 1052–1068).
`KeybindingManager.loadKeybindings()` and the regular `import("./hud")` both construct `KeybindingConfigHUD`. If `needsPrompt` resolves first, leftover lines 1057–1058 create HUD A and call `showBackendLoadDialog()`. The later regular import then does `this.keybindingConfigHUD = new KeybindingConfigHUD()` and **overwrites** A, so the backend-load dialog is never visible.
The inverse race (regular import first) is the common path and works. The leftover constructor exists only for the losing race, and even then the second assignment can discard it.
Characterization: `space-game.component.init.spec.ts` — "constructs KeybindingConfigHUD in the needsPrompt race when the regular import has not landed".
Fix: construct the HUD once (await the dynamic import, then `??=` / guard), then show the dialog on that instance.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Wave 8 tick 3 leftover coverage of
space-game.component.tsinitHUD(lines 1052–1068).KeybindingManager.loadKeybindings()and the regularimport("./hud")both constructKeybindingConfigHUD. IfneedsPromptresolves first, leftover lines 1057–1058 create HUD A and callshowBackendLoadDialog(). The later regular import then doesthis.keybindingConfigHUD = new KeybindingConfigHUD()and overwrites A, so the backend-load dialog is never visible.The inverse race (regular import first) is the common path and works. The leftover constructor exists only for the losing race, and even then the second assignment can discard it.
Characterization:
space-game.component.init.spec.ts— "constructs KeybindingConfigHUD in the needsPrompt race when the regular import has not landed".Fix: construct the HUD once (await the dynamic import, then
??=/ guard), then show the dialog on that instance.Fixed in
spikersoft-angularPR #823 (a0f0ccd9). Closing.