Skip to content

Commit 5b87cf0

Browse files
author
DavidQ
committed
BUILD_PR_OVERLAY_OPERATOR_COMMANDS: add debug-only overlay operator command contract and sample-level console integration using public overlay APIs only
1 parent ccb5a73 commit 5b87cf0

11 files changed

+728
-60
lines changed

docs/dev/CODEX_COMMANDS.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
MODEL: GPT-5.4-codex
22
REASONING: high
33

4-
Create BUILD_PR_OVERLAY_DATA_PROVIDERS
5-
6-
Follow PLAN_PR -> BUILD_PR -> APPLY_PR
4+
COMMAND:
5+
Create BUILD_PR_OVERLAY_OPERATOR_COMMANDS
76

87
Requirements:
9-
- Docs-first unless APPLY explicitly needs code guidance notes
10-
- No engine core changes
8+
- Follow PLAN_PR -> BUILD_PR -> APPLY_PR
119
- One PR per purpose
10+
- No engine core changes
1211
- Keep integration sample-level
13-
- Use MultiSystemDemoScene.js as the integration reference
14-
- Define a clean read-only provider layer for Debug Overlay panels
15-
- Preserve the Dev Console = command/control boundary
16-
- Preserve the Debug Overlay = telemetry/visual boundary
17-
- Panels must consume provider snapshots instead of direct runtime reads
18-
- Include recommended provider IDs, descriptor shape, guardrails, validation, accomplishments summary, and next-step recommendations
19-
- Write outputs under docs/pr and docs/dev/reports
20-
- Package to <project folder>/tmp/BUILD_PR_OVERLAY_DATA_PROVIDERS_delta.zip
12+
- Use MultiSystemDemoScene.js as the integration target
13+
- Register overlay.* operator commands through the Dev Console command registry
14+
- Use only approved public overlay/registry APIs
15+
- Support: overlay.help, overlay.list, overlay.status, overlay.show <panelId>, overlay.hide <panelId>, overlay.toggle <panelId>, overlay.showAll, overlay.hideAll, overlay.order
16+
- Provide deterministic operator-readable outputs
17+
- Fail safely on invalid or missing panel IDs
18+
- Keep everything debug-only
19+
- Validate with node --check and sample command execution
20+
- Write docs under docs/pr and reports under docs/dev/reports
21+
- Package to <project folder>/tmp/BUILD_PR_OVERLAY_OPERATOR_COMMANDS_delta.zip

docs/dev/COMMIT_COMMENT.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
docs(debug): define overlay data provider contract and next-step execution path
1+
BUILD_PR_OVERLAY_OPERATOR_COMMANDS: add debug-only overlay operator command contract and sample-level console integration using public overlay APIs only

docs/dev/NEXT_COMMAND.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
1-
Create BUILD_PR_OVERLAY_OPERATOR_COMMANDS as the next docs-first bundle, scoped to public console commands for querying/toggling overlay state through approved overlay contracts only.
1+
Create BUILD_PR_OVERLAY_PANEL_PERSISTENCE
2+
3+
Requirements:
4+
- Follow PLAN_PR -> BUILD_PR -> APPLY_PR
5+
- One PR per purpose
6+
- No engine core changes
7+
- Keep integration sample-level
8+
- Persist overlay panel enabled/disabled state through approved debug-only storage
9+
- Restore state safely on sample boot without coupling console to overlay internals
10+
- Document validation, failure paths, and fallback defaults
11+
- Package to <project folder>/tmp/BUILD_PR_OVERLAY_PANEL_PERSISTENCE_delta.zip
Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
1-
BUILD_PR_OVERLAY_DATA_PROVIDERS change summary
1+
BUILD_PR_OVERLAY_OPERATOR_COMMANDS change summary
22

3-
What was updated
4-
- Refreshed PLAN/BUILD/APPLY docs for overlay data providers.
5-
- Kept scope docs-first and sample-level.
6-
- Preserved Dev Console (command/control) vs Debug Overlay (telemetry/visual) boundary.
7-
- Defined read-only provider model where panels consume provider snapshots only.
3+
Implemented
4+
- Added a new Dev Console command pack:
5+
- `tools/dev/commandPacks/overlayCommandPack.js`
6+
- Wired overlay command pack into Dev Console integration:
7+
- `tools/dev/devConsoleIntegration.js`
88

9-
Key contract outcomes
10-
- Recommended provider IDs documented.
11-
- Descriptor shape and validation rules documented.
12-
- Guardrails documented to prevent panel-to-console coupling and overlay host special cases.
13-
- Validation goals documented for deterministic snapshot behavior and graceful fallback.
14-
- Accomplishments summary and next-step recommendations included.
9+
Overlay commands registered
10+
- `overlay.help`
11+
- `overlay.list`
12+
- `overlay.status`
13+
- `overlay.show <panelId>`
14+
- `overlay.hide <panelId>`
15+
- `overlay.toggle <panelId>`
16+
- `overlay.showAll`
17+
- `overlay.hideAll`
18+
- `overlay.order`
1519

16-
Files included
17-
- docs/pr/PLAN_PR_OVERLAY_DATA_PROVIDERS.md
18-
- docs/pr/BUILD_PR_OVERLAY_DATA_PROVIDERS.md
19-
- docs/pr/APPLY_PR_OVERLAY_DATA_PROVIDERS.md
20-
- docs/dev/reports/change_summary.txt
21-
- docs/dev/reports/validation_checklist.txt
22-
- docs/dev/reports/file_tree.txt
20+
Contract and boundary outcomes
21+
- Commands use public runtime/registry APIs only.
22+
- Deterministic operator-readable output is enforced.
23+
- Invalid/missing panel IDs fail safely with explicit error codes.
24+
- Debug-only scope maintained.
25+
- No engine core changes.
26+
- Sample-level integration target preserved (`MultiSystemDemoScene.js`).
27+
28+
Docs updated
29+
- docs/pr/PLAN_PR_OVERLAY_OPERATOR_COMMANDS.md
30+
- docs/pr/BUILD_PR_OVERLAY_OPERATOR_COMMANDS.md
31+
- docs/pr/APPLY_PR_OVERLAY_OPERATOR_COMMANDS.md

docs/dev/reports/file_tree.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
HTML-JavaScript-Gaming/
2+
|-- tools/
3+
| `-- dev/
4+
| |-- commandPacks/
5+
| | `-- overlayCommandPack.js
6+
| `-- devConsoleIntegration.js
27
|-- docs/
38
| |-- pr/
4-
| | |-- PLAN_PR_OVERLAY_DATA_PROVIDERS.md
5-
| | |-- BUILD_PR_OVERLAY_DATA_PROVIDERS.md
6-
| | `-- APPLY_PR_OVERLAY_DATA_PROVIDERS.md
9+
| | |-- PLAN_PR_OVERLAY_OPERATOR_COMMANDS.md
10+
| | |-- BUILD_PR_OVERLAY_OPERATOR_COMMANDS.md
11+
| | `-- APPLY_PR_OVERLAY_OPERATOR_COMMANDS.md
712
| `-- dev/
813
| `-- reports/
914
| |-- change_summary.txt
1015
| |-- validation_checklist.txt
1116
| `-- file_tree.txt
1217
`-- tmp/
13-
`-- BUILD_PR_OVERLAY_DATA_PROVIDERS_delta.zip
18+
`-- BUILD_PR_OVERLAY_OPERATOR_COMMANDS_delta.zip
Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,38 @@
1-
BUILD_PR_OVERLAY_DATA_PROVIDERS validation checklist
1+
BUILD_PR_OVERLAY_OPERATOR_COMMANDS validation checklist
22

33
Workflow
4-
- [done] PLAN_PR documented
5-
- [done] BUILD_PR documented
6-
- [done] APPLY_PR documented
4+
- [done] PLAN_PR, BUILD_PR, APPLY_PR docs updated
75
- [done] One PR purpose only
8-
- [done] Docs-first bundle
96

10-
Scope and Boundaries
7+
Scope
118
- [done] No engine core changes
12-
- [done] Sample-level integration reference documented
13-
- [done] MultiSystemDemoScene.js used as reference
14-
- [done] Dev Console boundary preserved
15-
- [done] Debug Overlay boundary preserved
9+
- [done] Integration remains sample-level
10+
- [done] MultiSystemDemoScene.js retained as reference target
11+
- [done] Dev Console vs Debug Overlay boundary preserved
1612

17-
Provider Contract
18-
- [done] Read-only provider layer defined
19-
- [done] Recommended provider IDs documented
20-
- [done] Provider descriptor shape documented
21-
- [done] Provider guardrails documented
22-
- [done] Panels consume provider snapshots, not direct runtime reads
23-
- [done] Validation rules documented
13+
Functional Commands
14+
- [done] overlay.help
15+
- [done] overlay.list
16+
- [done] overlay.status
17+
- [done] overlay.show <panelId>
18+
- [done] overlay.hide <panelId>
19+
- [done] overlay.toggle <panelId>
20+
- [done] overlay.showAll
21+
- [done] overlay.hideAll
22+
- [done] overlay.order
2423

25-
Build Quality
26-
- [done] Accomplishments summary included
27-
- [done] Next-step recommendations included
24+
Behavior
25+
- [done] Deterministic operator-readable outputs
26+
- [done] Invalid panel IDs fail safely
27+
- [done] Missing panel IDs fail safely
28+
- [done] Public overlay/registry APIs only
29+
30+
Validation Commands
31+
- [done] node --check tools/dev/commandPacks/overlayCommandPack.js
32+
- [done] node --check tools/dev/devConsoleIntegration.js
33+
- [done] sample command harness execution for required overlay commands
2834

2935
Packaging
30-
- [done] Outputs written under docs/pr and docs/dev/reports
31-
- [done] Delta zip generated at <project folder>/tmp/BUILD_PR_OVERLAY_DATA_PROVIDERS_delta.zip
36+
- [done] Docs under docs/pr
37+
- [done] Reports under docs/dev/reports
38+
- [done] Delta zip generated at <project folder>/tmp/BUILD_PR_OVERLAY_OPERATOR_COMMANDS_delta.zip
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Toolbox Aid
2+
David Quesenberry
3+
04/05/2026
4+
APPLY_PR_OVERLAY_OPERATOR_COMMANDS.md
5+
6+
# APPLY_PR_OVERLAY_OPERATOR_COMMANDS
7+
8+
## Objective
9+
Apply the implemented overlay operator command pack without expanding beyond this PR purpose.
10+
11+
## Apply Scope
12+
- `tools/dev/commandPacks/overlayCommandPack.js`
13+
- `tools/dev/devConsoleIntegration.js`
14+
- docs and reports for this PR
15+
16+
## Guardrails
17+
- no engine core changes
18+
- no runtime architecture refactor
19+
- no direct console-to-overlay private coupling
20+
- no sample-wide or repo-wide debug framework expansion
21+
22+
## Apply Validation
23+
1. Confirm `overlay.*` commands appear in registry/autocomplete.
24+
2. Confirm deterministic output for list/order/status commands.
25+
3. Confirm safe failure on invalid panel IDs.
26+
4. Confirm show/hide/toggle/showAll/hideAll state changes apply via public APIs.
27+
5. Confirm `node --check` passes for touched JS files.
28+
29+
## Expected Outcome
30+
Operators can inspect and control overlay panel visibility from the Dev Console while maintaining the Dev Console vs Debug Overlay boundary.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
Toolbox Aid
2+
David Quesenberry
3+
04/05/2026
4+
BUILD_PR_OVERLAY_OPERATOR_COMMANDS.md
5+
6+
# BUILD_PR_OVERLAY_OPERATOR_COMMANDS
7+
8+
## Objective
9+
Implement debug-only `overlay.*` operator commands through the Dev Console command registry using approved public overlay/registry APIs.
10+
11+
## Implementation Scope
12+
- Add `tools/dev/commandPacks/overlayCommandPack.js`
13+
- Wire pack into `tools/dev/devConsoleIntegration.js`
14+
- Keep integration sample-level (`MultiSystemDemoScene.js` remains the target reference)
15+
16+
## API Boundary
17+
Allowed public calls:
18+
- `runtime.getState()`
19+
- `runtime.showOverlay()` / `runtime.hideOverlay()`
20+
- `runtime.panelRegistry.getOrderedPanels(includeDisabled)`
21+
- `runtime.panelRegistry.setPanelEnabled(panelId, enabled)`
22+
- `runtime.panelRegistry.getCount()`
23+
24+
Not allowed:
25+
- private overlay host field access
26+
- direct panel object mutation
27+
- engine core changes
28+
29+
## Commands Implemented
30+
- `overlay.help`
31+
- `overlay.list`
32+
- `overlay.status`
33+
- `overlay.show <panelId>`
34+
- `overlay.hide <panelId>`
35+
- `overlay.toggle <panelId>`
36+
- `overlay.showAll`
37+
- `overlay.hideAll`
38+
- `overlay.order`
39+
40+
## Deterministic Output Rules
41+
- panel listings use ordered registry snapshots
42+
- list/order rows are stable and index-prefixed
43+
- status lines use key=value format
44+
- failures include explicit error code and available panel IDs when relevant
45+
46+
## Safe Failure Rules
47+
- missing runtime/registry -> failed result with explicit code
48+
- missing/unknown panel ID -> `OVERLAY_PANEL_NOT_FOUND`
49+
- failed state set -> `OVERLAY_PANEL_SET_FAILED`
50+
51+
## Validation Evidence
52+
- `node --check tools/dev/commandPacks/overlayCommandPack.js` passed
53+
- `node --check tools/dev/devConsoleIntegration.js` passed
54+
- sample command harness execution passed for:
55+
- help/list/status/order
56+
- show/hide/toggle
57+
- showAll/hideAll
58+
- invalid panel ID failure path
59+
60+
## APPLY Guidance
61+
Apply scope stays surgical:
62+
- keep command logic isolated to Dev Console pack wiring
63+
- keep overlay interaction read/toggle-only through public APIs
64+
- keep behavior debug-only and sample-aligned
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
Toolbox Aid
2+
David Quesenberry
3+
04/05/2026
4+
PLAN_PR_OVERLAY_OPERATOR_COMMANDS.md
5+
6+
# PLAN_PR_OVERLAY_OPERATOR_COMMANDS
7+
8+
## Goal
9+
Define a sample-level, debug-only operator command surface for overlay panel control via Dev Console registry commands.
10+
11+
## Workflow
12+
PLAN_PR -> BUILD_PR -> APPLY_PR
13+
14+
## Scope
15+
In scope:
16+
- `overlay.*` command namespace and behavior contract
17+
- public overlay/registry API usage only
18+
- deterministic operator-readable command outputs
19+
- safe failure handling for missing/invalid panel IDs
20+
- sample-level validation target: `MultiSystemDemoScene.js`
21+
22+
Out of scope:
23+
- engine core changes
24+
- production runtime command surfaces
25+
- direct console-to-overlay-internals coupling
26+
27+
## Boundary Contract
28+
- Dev Console owns command/control.
29+
- Debug Overlay owns passive telemetry/HUD rendering.
30+
- Operator commands may query/toggle overlay panel state only through public runtime/registry APIs.
31+
32+
## Required Command Set
33+
- `overlay.help`
34+
- `overlay.list`
35+
- `overlay.status`
36+
- `overlay.show <panelId>`
37+
- `overlay.hide <panelId>`
38+
- `overlay.toggle <panelId>`
39+
- `overlay.showAll`
40+
- `overlay.hideAll`
41+
- `overlay.order`
42+
43+
## Output Contract
44+
- key-value and deterministic list rows
45+
- stable ordering for panel lists (`order`, then `id`)
46+
- explicit status/code for success and failure paths
47+
48+
## Validation Targets
49+
- commands register under Dev Console command registry
50+
- all required commands execute
51+
- invalid panel IDs fail safely
52+
- outputs remain deterministic
53+
- no engine core changes

0 commit comments

Comments
 (0)