Skip to content

Commit bb61fc0

Browse files
author
DavidQ
committed
BUILD_PR_OVERLAY_PANEL_PERSISTENCE: define versioned, debug-only persistence contract for overlay panel state; keep registry as runtime source of truth and preserve sample-level integration.
1 parent 5b87cf0 commit bb61fc0

10 files changed

Lines changed: 524 additions & 91 deletions

docs/dev/BIG_PICTURE_ROADMAP.md

Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
# Debug Surfaces Big Picture Roadmap (Checklist)
2+
3+
## Purpose
4+
5+
Track progress toward a reusable debug surface platform across games, tools, samples, and playable builds.
6+
7+
---
8+
9+
# North Star
10+
11+
- [.] Build a reusable debug surface platform (console + overlay + panels + providers + commands + persistence)
12+
- [ ] Enable cross-project adoption (games, tools, samples)
13+
- [ ] Support final playable builds with proper gating
14+
- [ ] Avoid engine core pollution
15+
16+
---
17+
18+
# Big Picture Architecture
19+
20+
## Engine Core (Minimal)
21+
22+
- [ ] Define debug interfaces
23+
- [ ] Define registration contracts
24+
- [ ] Define lifecycle hooks
25+
- [ ] Define environment/debug gating
26+
- [ ] Keep UI and debug policy OUT of core
27+
28+
## Engine Debug (Reusable Platform)
29+
30+
- [ ] Extract console host
31+
- [ ] Extract overlay host
32+
- [ ] Extract panel registry
33+
- [ ] Extract provider system
34+
- [ ] Extract operator command layer
35+
- [ ] Extract persistence system
36+
- [ ] Define debug bootstrap/composition
37+
38+
## Project Layer (Games / Tools / Samples)
39+
40+
- [ ] Define panel registration pattern
41+
- [ ] Define provider registration pattern
42+
- [ ] Define command registration pattern
43+
- [ ] Define scene integration pattern
44+
- [ ] Define presets/defaults pattern
45+
46+
---
47+
48+
# Platform Consumers
49+
50+
## 2D Games
51+
- [ ] Scene/debug panels
52+
- [ ] Entity/collision panels
53+
- [ ] Render layer panels
54+
- [ ] Camera/debug state panels
55+
56+
## 3D Games
57+
- [ ] Transform/camera panels
58+
- [ ] Scene graph inspection
59+
- [ ] Render pass diagnostics
60+
- [ ] Material/shader inspection
61+
- [ ] Lighting/debug panels
62+
- [ ] Physics/debug volume panels
63+
64+
## Networked / Multiplayer
65+
- [ ] Connection/session panels
66+
- [ ] Latency/ping panels
67+
- [ ] Replication diagnostics
68+
- [ ] Prediction/rollback visibility
69+
- [ ] Authority/ownership panels
70+
- [ ] Desync detection panels
71+
72+
## Tools / Editors
73+
- [ ] Tool state panels
74+
- [ ] Selection panels
75+
- [ ] Asset pipeline diagnostics
76+
- [ ] Validation panels
77+
78+
## Samples / Learning
79+
- [ ] Simple integration examples
80+
- [ ] Example panels/providers/commands
81+
- [ ] Low-friction setup
82+
83+
## Final Playable Builds
84+
- [ ] Debug gating
85+
- [ ] Operator-only access
86+
- [ ] Safe runtime enablement
87+
88+
---
89+
90+
# Journey Overview
91+
92+
## Phase 0 — Surfaces
93+
- [x] Dev Console
94+
- [x] Debug Overlay
95+
96+
## Phase 1 — Boundary
97+
- [x] Console vs overlay separation
98+
- [x] Allowed interaction rules
99+
- [x] Prohibited coupling rules
100+
101+
## Phase 2 — Overlay Structure
102+
- [x] Panel registry
103+
- [x] Panel identity
104+
- [x] Deterministic ordering
105+
- [ ] Panel lifecycle hooks
106+
107+
## Phase 3 — Data Flow
108+
- [x] Data providers
109+
- [x] Read-only snapshots
110+
- [ ] Snapshot contract formalization
111+
112+
## Phase 4 — Operator Control
113+
- [x] overlay.* command namespace
114+
- [x] Public API-only interaction
115+
- [ ] Output standardization
116+
117+
## Phase 5 — Persistence
118+
- [x] Panel persistence
119+
- [ ] Versioned persistence model
120+
- [ ] Reset/migration handling
121+
122+
## Phase 6 — Promotion Planning
123+
- [ ] Ownership model (core vs debug vs project)
124+
- [ ] Migration boundaries
125+
- [ ] Extraction plan from tools/dev
126+
127+
## Phase 7 — Engine-Debug Extraction
128+
- [ ] Create engine-debug layer
129+
- [ ] Move console host
130+
- [ ] Move overlay host
131+
- [ ] Move registry/providers/persistence
132+
- [ ] Define debug bootstrap
133+
134+
## Phase 8 — Core Contracts
135+
- [ ] Minimal debug interfaces
136+
- [ ] Registration APIs
137+
- [ ] Lifecycle hooks
138+
- [ ] Debug gating hooks
139+
140+
## Phase 9 — Integration Patterns
141+
- [ ] Game integration pattern
142+
- [ ] Tool integration pattern
143+
- [ ] Sample integration pattern
144+
145+
---
146+
147+
# Consumer Expansion Tracks
148+
149+
## 2D Integration
150+
- [ ] Harden 2D usage
151+
- [ ] Validate workflows
152+
153+
## Tools Integration
154+
- [ ] Tool adoption
155+
- [ ] Editor workflows
156+
157+
## Samples
158+
- [ ] Learning samples
159+
- [ ] Reference implementations
160+
161+
## Final Build Support
162+
- [ ] Debug enablement rules
163+
- [ ] Feature flags
164+
- [ ] Safe operator access
165+
166+
## 3D Support
167+
- [ ] 3D providers
168+
- [ ] Transform panels
169+
- [ ] Render diagnostics
170+
- [ ] Physics visualization
171+
172+
## Network Support
173+
- [ ] Network providers
174+
- [ ] Replication panels
175+
- [ ] Rollback/prediction views
176+
- [ ] Desync diagnostics
177+
178+
---
179+
180+
# Platform Expansion
181+
182+
## Standard Library
183+
- [ ] Common panels
184+
- [ ] Common providers
185+
- [ ] Common commands
186+
187+
## Presets / Layouts
188+
- [ ] Gameplay preset
189+
- [ ] Rendering preset
190+
- [ ] AI preset
191+
- [ ] QA preset
192+
- [ ] Tool preset
193+
194+
## Advanced Inspection
195+
- [ ] Entity inspector
196+
- [ ] Scene explorer
197+
- [ ] Runtime drill-down
198+
- [ ] Diagnostics summary panels
199+
200+
---
201+
202+
# Stabilization
203+
204+
- [ ] Architecture documentation
205+
- [ ] Integration documentation
206+
- [ ] Extension documentation
207+
- [ ] Ownership model finalized
208+
209+
---
210+
211+
# Recommended Planning Order
212+
213+
## Track A — Foundation
214+
- [x] Console + Overlay
215+
- [x] Boundary
216+
- [x] Panel Registry
217+
- [x] Data Providers
218+
- [x] Operator Commands
219+
- [x] Persistence
220+
221+
## Track B — Promotion Planning
222+
- [ ] Promotion plan
223+
- [ ] Ownership mapping
224+
- [ ] Migration strategy
225+
226+
## Track C — Platform Extraction
227+
- [ ] Engine-debug layer
228+
- [ ] Core contracts
229+
- [ ] Integration patterns
230+
231+
## Track D — Consumer Expansion
232+
- [ ] 2D stabilization
233+
- [ ] Tools integration
234+
- [ ] Sample integration
235+
- [ ] Final build gating
236+
- [ ] 3D support
237+
- [ ] Network support
238+
239+
## Track E — Platform Expansion
240+
- [ ] Standard panels/providers
241+
- [ ] Presets/layouts
242+
- [ ] Advanced inspectors
243+
- [ ] Cross-project reuse
244+
245+
## Track F — Stabilization
246+
- [ ] Documentation
247+
- [ ] Extension model
248+
- [ ] Maintenance strategy
249+
250+
---
251+
252+
# Immediate Next Step
253+
254+
- [ ] PLAN_PR_DEBUG_SURFACES_PROMOTION
255+
256+
---
257+
258+
# Long-Term Outcome
259+
260+
- [ ] Clean engine core
261+
- [ ] Reusable debug platform
262+
- [ ] Cross-project adoption
263+
- [ ] 2D + 3D + network support
264+
- [ ] Safe final-build debug capability

docs/dev/CODEX_COMMANDS.md

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,32 @@ MODEL: GPT-5.4-codex
22
REASONING: high
33

44
COMMAND:
5-
Create BUILD_PR_OVERLAY_OPERATOR_COMMANDS
5+
Follow PLAN_PR -> BUILD_PR -> APPLY_PR
6+
7+
Create BUILD_PR_OVERLAY_PANEL_PERSISTENCE
68

79
Requirements:
8-
- Follow PLAN_PR -> BUILD_PR -> APPLY_PR
10+
- Docs-first unless BUILD/APPLY implementation work is explicitly requested
11+
- No engine core changes in this PR
912
- One PR per purpose
10-
- No engine core changes
1113
- Keep integration sample-level
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
14+
- Use MultiSystemDemoScene.js as the integration reference
15+
- Add a clean overlay persistence adapter boundary
16+
- Persist overlay panel enabled/disabled state only
17+
- Registry remains runtime source of truth
18+
- Operator commands save through public APIs only
19+
- Handle invalid/unknown stored panel ids safely
20+
- Add versioned snapshot shape
21+
- Write outputs under docs/pr and docs/dev/reports
22+
- Package to <project folder>/tmp/BUILD_PR_OVERLAY_PANEL_PERSISTENCE_delta.zip
23+
24+
NEXT RECOMMENDED COMMAND:
25+
Create PLAN_PR_DEBUG_SURFACES_ENGINE_PROMOTION
26+
27+
Requirements:
28+
- Docs-only
29+
- Evaluate whether dev console and debug overlay should move into engine core
30+
- Compare promotion options: keep sample-owned, move to engine debug package, or partial core extraction
31+
- Preserve console vs overlay separation
32+
- Define promotion criteria, boundaries, risks, and rollout phases
33+
- Do not implement core migration yet

docs/dev/COMMIT_COMMENT.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
BUILD_PR_OVERLAY_OPERATOR_COMMANDS: add debug-only overlay operator command contract and sample-level console integration using public overlay APIs only
1+
BUILD_PR_OVERLAY_PANEL_PERSISTENCE: define versioned, debug-only persistence contract for overlay panel state; keep registry as runtime source of truth and preserve sample-level integration.

docs/dev/NEXT_COMMAND.txt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1 @@
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
1+
Create PLAN_PR_DEBUG_SURFACES_ENGINE_PROMOTION with docs-only evaluation of dev console and debug overlay promotion into engine-level debug surfaces after persistence validation.
Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,25 @@
1-
BUILD_PR_OVERLAY_OPERATOR_COMMANDS change summary
1+
BUILD_PR_OVERLAY_PANEL_PERSISTENCE change summary
22

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`
3+
Summary
4+
- Refreshed PLAN/BUILD/APPLY docs for overlay panel persistence.
5+
- Kept this bundle docs-first and single-purpose.
6+
- Preserved debug-only, sample-level scope with MultiSystemDemoScene.js as reference.
87

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`
8+
Key decisions
9+
- Added a clean persistence adapter boundary (`load/save/clear`).
10+
- Persist enabled/disabled panel state only.
11+
- Registry remains runtime source of truth.
12+
- Operator commands save state via public APIs only.
13+
- Unknown/invalid stored panel IDs are ignored safely.
14+
- Added versioned snapshot contract (`contract`, `version`, `panels`, `savedAt`).
1915

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`).
16+
Files in this bundle
17+
- docs/pr/PLAN_PR_OVERLAY_PANEL_PERSISTENCE.md
18+
- docs/pr/BUILD_PR_OVERLAY_PANEL_PERSISTENCE.md
19+
- docs/pr/APPLY_PR_OVERLAY_PANEL_PERSISTENCE.md
20+
- docs/dev/reports/change_summary.txt
21+
- docs/dev/reports/validation_checklist.txt
22+
- docs/dev/reports/file_tree.txt
2723

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
24+
Next recommended command
25+
- PLAN_PR_DEBUG_SURFACES_ENGINE_PROMOTION

0 commit comments

Comments
 (0)