Skip to content

Commit 57908ca

Browse files
author
DavidQ
committed
MODEL: GPT-5.3-codex
REASONING: medium COMMAND: Implement overlay alignment for samples 1709 and 1711. - Apply movement-specific stack definition - Enforce bottom-right anchor - Ensure non-Tab cycle key - Validate ordering and rendering Package ZIP to <project folder>/tmp/
1 parent 9a0b00f commit 57908ca

8 files changed

Lines changed: 100 additions & 68 deletions

File tree

docs/dev/CODEX_COMMANDS.md

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
MODEL: GPT-5.4
1+
MODEL: GPT-5.3-codex
22
REASONING: medium
3-
43
COMMAND:
5-
Create BUILD_PR_LEVEL_17_56_DEBUG_OVERLAY_TEST_INPUT_KEY_REMAP as a smallest-scope test-only PR.
6-
7-
Requirements:
8-
- Find Level 17 tests that still use `makeInput(['Tab'])` for debug overlay cycling
9-
- Replace each stale Tab-based test input with the active non-Tab cycle key already used by the current Level 17 runtime behavior
10-
- Keep scope limited to affected Level 17 tests and the smallest supporting test helper change if required
11-
- Do not change runtime keybinding code
12-
- Do not change overlay positioning or sample stack mapping
13-
- Do not modify start_of_day folders
14-
- Run the affected tests and package the repo-structured ZIP to <project folder>/tmp/BUILD_PR_LEVEL_17_56_DEBUG_OVERLAY_TEST_INPUT_KEY_REMAP.zip
4+
Implement overlay alignment for samples 1709 and 1711.
5+
- Apply movement-specific stack definition
6+
- Enforce bottom-right anchor
7+
- Ensure non-Tab cycle key
8+
- Validate ordering and rendering
9+
Package ZIP to <project folder>/tmp/

docs/dev/COMMIT_COMMENT.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,2 @@
1-
Replace stale Level 17 Tab-based overlay cycle tests with the approved non-Tab input.
2-
3-
PR Details:
4-
- Updates affected Level 17 tests that still use makeInput(['Tab'])
5-
- Keeps scope test-only and aligned to current overlay cycle behavior
6-
- Confirms Level 17 debug overlay checks no longer validate browser-reserved Tab input
1+
Align overlay stacks for samples 1709 and 1711 (movement).
2+
Standardize bottom-right placement and non-Tab cycle behavior.
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
[ ] Level 17 tests using makeInput(['Tab']) were identified
2-
[ ] Each affected test now uses the approved non-Tab cycle key
3-
[ ] No runtime keybinding code was changed
4-
[ ] Affected Level 17 tests pass
5-
[ ] No remaining Level 17 overlay cycle tests reference Tab
1+
[ ] Sample 1709 loads
2+
[ ] Sample 1711 loads
3+
[ ] Bottom-right placement correct
4+
[ ] Cycle key works (non-Tab)
5+
[ ] Movement Runtime renders
6+
[ ] Movement Lab HUD renders
7+
[ ] Stack order correct

docs/pr/BUILD_PR.md

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,23 @@
1-
# BUILD_PR_LEVEL_17_56_DEBUG_OVERLAY_TEST_INPUT_KEY_REMAP
1+
# BUILD_PR_LEVEL_17_57_DEBUG_OVERLAY_SAMPLE_1709_1711_MOVEMENT_ALIGNMENT
22

33
## Purpose
4-
Replace stale Level 17 test inputs that still simulate `Tab` for debug overlay cycling so the automated checks validate the current non-Tab interaction contract.
4+
Align overlay stacks for samples 1709 and 1711 (movement-focused) with correct order, bottom-right placement, and non-Tab cycle behavior.
55

66
## Scope
7-
This PR is limited to Level 17 test coverage and test helpers that still encode the old cycle key.
8-
9-
Included:
10-
- Update Level 17 tests that currently use `makeInput(['Tab'])`
11-
- Align those tests to the active non-Tab overlay cycle key already established by the runtime-facing PRs
12-
- Verify no Level 17 debug overlay tests continue to require browser-reserved Tab behavior
13-
14-
Excluded:
15-
- Runtime keybinding changes
16-
- Overlay layout changes
17-
- Sample stack mapping changes
18-
- Non-Level-17 test cleanup
19-
20-
## Implementation Notes
21-
- Use the already-approved replacement cycle key from the current Level 17 overlay work
22-
- Prefer shared test constants/helpers if they already exist; otherwise introduce the smallest local test-safe normalization needed
23-
- Do not broaden this into a repo-wide input cleanup
24-
- Do not modify `start_of_day` content
7+
- Samples: 1709, 1711
8+
- Stack:
9+
- Movement Runtime
10+
- Movement Lab HUD
11+
- Bottom-right anchor
12+
- Non-Tab cycle key validation
2513

2614
## Test Steps
27-
1. Search Level 17 tests for `makeInput(['Tab'])`
28-
2. Replace each stale input with the approved non-Tab cycle key
29-
3. Run the affected Level 17 test files
30-
4. Confirm overlay cycle assertions still pass under the new input
31-
5. Confirm no remaining Level 17 tests reference `Tab` for overlay cycling
15+
1. Load samples 1709 and 1711
16+
2. Verify bottom-right placement
17+
3. Cycle overlays and confirm order
18+
4. Confirm Movement Runtime and HUD render correctly
3219

33-
## Expected Result
34-
- Level 17 tests validate the current non-Tab overlay cycle behavior
35-
- No stale `makeInput(['Tab'])` calls remain in the affected Level 17 test surface
36-
- The change stays test-only and does not alter runtime behavior
20+
## Expected
21+
- Correct stack order
22+
- Stable cycling behavior
23+
- No Tab usage

samples/phase-17/1709/MovementModelsLabScene.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ import {
1414
setTabDebugOverlayCycleKey,
1515
stepTabDebugOverlayController,
1616
} from '/samples/phase-17/shared/tabDebugOverlayCycle.js';
17+
import {
18+
createMovementOverlayCycleMap,
19+
MOVEMENT_DEBUG_CYCLE_KEY,
20+
OVERLAY_MOVEMENT_HUD,
21+
OVERLAY_MOVEMENT_RUNTIME,
22+
} from '/samples/phase-17/shared/movementOverlayStack.js';
1723
import {
1824
applyPhase16CameraMode,
1925
createPhase16ViewState,
@@ -38,9 +44,6 @@ const MODE_ORDER = Object.freeze([
3844
MOVEMENT_MODES.TANK,
3945
MOVEMENT_MODES.WEIGHTED,
4046
]);
41-
const DEBUG_CYCLE_KEY = 'KeyG';
42-
const OVERLAY_MOVEMENT_RUNTIME = 'movement-runtime';
43-
const OVERLAY_MOVEMENT_HUD = 'movement-lab-hud';
4447

4548
function clamp(value, min, max) {
4649
return Math.max(min, Math.min(max, value));
@@ -98,13 +101,10 @@ export default class MovementModelsLabScene extends Scene {
98101
this.lastInputSummary = '';
99102
this.lastSpeed = 0;
100103
this.tabDebugOverlays = createTabDebugOverlayController({
101-
overlays: [
102-
{ id: OVERLAY_MOVEMENT_RUNTIME, label: 'Movement Runtime' },
103-
{ id: OVERLAY_MOVEMENT_HUD, label: 'Movement Lab HUD' },
104-
],
104+
overlays: createMovementOverlayCycleMap(),
105105
initialOverlayId: OVERLAY_MOVEMENT_RUNTIME,
106106
});
107-
setTabDebugOverlayCycleKey(this.tabDebugOverlays, DEBUG_CYCLE_KEY);
107+
setTabDebugOverlayCycleKey(this.tabDebugOverlays, MOVEMENT_DEBUG_CYCLE_KEY);
108108
}
109109

110110
setCamera3D(camera3D) {

samples/phase-17/1711/MovementModelsLabScene.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ import {
1414
setTabDebugOverlayCycleKey,
1515
stepTabDebugOverlayController,
1616
} from '/samples/phase-17/shared/tabDebugOverlayCycle.js';
17+
import {
18+
createMovementOverlayCycleMap,
19+
MOVEMENT_DEBUG_CYCLE_KEY,
20+
OVERLAY_MOVEMENT_HUD,
21+
OVERLAY_MOVEMENT_RUNTIME,
22+
} from '/samples/phase-17/shared/movementOverlayStack.js';
1723
import {
1824
applyPhase16CameraMode,
1925
createPhase16ViewState,
@@ -38,9 +44,6 @@ const MODE_ORDER = Object.freeze([
3844
MOVEMENT_MODES.TANK,
3945
MOVEMENT_MODES.WEIGHTED,
4046
]);
41-
const DEBUG_CYCLE_KEY = 'KeyG';
42-
const OVERLAY_MOVEMENT_RUNTIME = 'movement-runtime';
43-
const OVERLAY_MOVEMENT_HUD = 'movement-lab-hud';
4447

4548
function clamp(value, min, max) {
4649
return Math.max(min, Math.min(max, value));
@@ -98,13 +101,10 @@ export default class MovementModelsLabScene extends Scene {
98101
this.lastInputSummary = '';
99102
this.lastSpeed = 0;
100103
this.tabDebugOverlays = createTabDebugOverlayController({
101-
overlays: [
102-
{ id: OVERLAY_MOVEMENT_RUNTIME, label: 'Movement Runtime' },
103-
{ id: OVERLAY_MOVEMENT_HUD, label: 'Movement Lab HUD' },
104-
],
104+
overlays: createMovementOverlayCycleMap(),
105105
initialOverlayId: OVERLAY_MOVEMENT_RUNTIME,
106106
});
107-
setTabDebugOverlayCycleKey(this.tabDebugOverlays, DEBUG_CYCLE_KEY);
107+
setTabDebugOverlayCycleKey(this.tabDebugOverlays, MOVEMENT_DEBUG_CYCLE_KEY);
108108
}
109109

110110
setCamera3D(camera3D) {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
Toolbox Aid
3+
David Quesenberry
4+
04/16/2026
5+
movementOverlayStack.js
6+
*/
7+
export const MOVEMENT_DEBUG_CYCLE_KEY = 'KeyG';
8+
export const OVERLAY_MOVEMENT_RUNTIME = 'movement-runtime';
9+
export const OVERLAY_MOVEMENT_HUD = 'movement-lab-hud';
10+
11+
export function createMovementOverlayCycleMap() {
12+
return [
13+
{ id: OVERLAY_MOVEMENT_RUNTIME, label: 'Movement Runtime' },
14+
{ id: OVERLAY_MOVEMENT_HUD, label: 'Movement Lab HUD' },
15+
];
16+
}

tests/runtime/Phase17DebugOverlayBottomRightPosition.test.mjs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import {
1212
import DoomRaycastSpritesScene from '../../samples/phase-17/1701/RaycastDemoScene.js';
1313
import TextureMaterialDemoScene from '../../samples/phase-17/1704/TextureMaterialDemoScene.js';
1414
import RealGameplayMiniGameScene from '../../samples/phase-17/1708/RealGameplayMiniGameScene.js';
15+
import MovementModelsLab1709Scene from '../../samples/phase-17/1709/MovementModelsLabScene.js';
1516
import RealGameplayMiniGame1710Scene from '../../samples/phase-17/1710/RealGameplayMiniGameScene.js';
17+
import MovementModelsLab1711Scene from '../../samples/phase-17/1711/MovementModelsLabScene.js';
1618
import GameplayMetricsTelemetryScene from '../../samples/phase-17/1712/GameplayMetricsTelemetryScene.js';
1719
import FinalReferenceGameScene from '../../samples/phase-17/1713/FinalReferenceGameScene.js';
1820

@@ -157,6 +159,38 @@ function assertSample1710CyclePlacement() {
157159
assertBottomRightFromTitle(runtimeTitle, 300, 120, 650, 410, 'Sample 1710 runtime overlay');
158160
}
159161

162+
function assertSample1709MovementOverlayPlacement() {
163+
const scene = new MovementModelsLab1709Scene();
164+
scene.setCamera3D(createCameraStub());
165+
166+
const runtimeRenderer = createRendererProbe();
167+
scene.render(runtimeRenderer);
168+
const runtimeTitle = findExactText(runtimeRenderer, 'Movement Runtime');
169+
assertBottomRightFromTitle(runtimeTitle, 360, 212, 590, 318, 'Sample 1709 movement runtime overlay');
170+
171+
pressCycleKey(scene);
172+
const hudRenderer = createRendererProbe();
173+
scene.render(hudRenderer);
174+
const hudTitle = findExactText(hudRenderer, 'Movement Lab HUD');
175+
assertBottomRightFromTitle(hudTitle, 360, 138, 590, 392, 'Sample 1709 movement hud overlay');
176+
}
177+
178+
function assertSample1711MovementOverlayPlacement() {
179+
const scene = new MovementModelsLab1711Scene();
180+
scene.setCamera3D(createCameraStub());
181+
182+
const runtimeRenderer = createRendererProbe();
183+
scene.render(runtimeRenderer);
184+
const runtimeTitle = findExactText(runtimeRenderer, 'Movement Runtime');
185+
assertBottomRightFromTitle(runtimeTitle, 360, 212, 590, 318, 'Sample 1711 movement runtime overlay');
186+
187+
pressCycleKey(scene);
188+
const hudRenderer = createRendererProbe();
189+
scene.render(hudRenderer);
190+
const hudTitle = findExactText(hudRenderer, 'Movement Lab HUD');
191+
assertBottomRightFromTitle(hudTitle, 360, 138, 590, 392, 'Sample 1711 movement hud overlay');
192+
}
193+
160194
function assertSample1712TelemetryPlacement() {
161195
const scene = new GameplayMetricsTelemetryScene();
162196
scene.setCamera3D(createCameraStub());
@@ -186,7 +220,9 @@ export function run() {
186220
assertSample1701RuntimePanelPlacement();
187221
assertSample1704StackedPanelPlacement();
188222
assertSample1708CyclePlacement();
223+
assertSample1709MovementOverlayPlacement();
189224
assertSample1710CyclePlacement();
225+
assertSample1711MovementOverlayPlacement();
190226
assertSample1712TelemetryPlacement();
191227
assertSample1713FinalRuntimePlacement();
192228
}

0 commit comments

Comments
 (0)