|
| 1 | +Toolbox Aid |
| 2 | +David Quesenberry |
| 3 | +04/06/2026 |
| 4 | +BUILD_PR_DEBUG_SURFACES_SERVER_DASHBOARD_FOUNDATION.md |
| 5 | + |
| 6 | +# BUILD_PR_DEBUG_SURFACES_SERVER_DASHBOARD_FOUNDATION |
| 7 | + |
| 8 | +## Build Summary |
| 9 | +Prepared a docs-first foundation bundle for a read-only server dashboard surface scoped to `tools/dev/server-dashboard`. This BUILD_PR remains one-purpose, sample-level, and does not modify engine core APIs or behavior. |
| 10 | + |
| 11 | +## Workflow Discipline |
| 12 | +PLAN_PR -> BUILD_PR -> APPLY_PR |
| 13 | + |
| 14 | +## Scope and Boundaries |
| 15 | +- docs-first only in this bundle |
| 16 | +- no engine core changes |
| 17 | +- no server mutation controls |
| 18 | +- no containerization/docker work |
| 19 | +- no transport implementation work |
| 20 | +- keep console and overlay decoupled from dashboard internals |
| 21 | +- keep combo keys unchanged |
| 22 | + |
| 23 | +## Server Dashboard Foundation Surface |
| 24 | +### Target folder |
| 25 | +`tools/dev/server-dashboard/` |
| 26 | + |
| 27 | +### Planned implementation units |
| 28 | +- `serverDashboardHost.js` |
| 29 | +- `serverDashboardRegistry.js` |
| 30 | +- `serverDashboardProviders.js` |
| 31 | +- `serverDashboardRenderer.js` |
| 32 | + |
| 33 | +## Responsibility Contract |
| 34 | +### Host responsibility (`serverDashboardHost`) |
| 35 | +- own start/stop lifecycle |
| 36 | +- own refresh cadence and polling schedule |
| 37 | +- request normalized snapshots from providers |
| 38 | +- coordinate registry + renderer handoff |
| 39 | +- remain debug-only and read-only from the dashboard perspective |
| 40 | + |
| 41 | +### Registry responsibility (`serverDashboardRegistry`) |
| 42 | +- register known dashboard sections |
| 43 | +- enforce deterministic section ordering |
| 44 | +- return immutable section descriptors for rendering |
| 45 | +- isolate dashboard section metadata from console/overlay plugin internals |
| 46 | + |
| 47 | +### Provider responsibility (`serverDashboardProviders`) |
| 48 | +- collect read-only sample-facing telemetry snapshots |
| 49 | +- normalize connection/session/player/network summaries |
| 50 | +- expose stable payload shape for renderer consumption |
| 51 | +- forbid runtime mutation and transport write actions |
| 52 | + |
| 53 | +### Renderer responsibility (`serverDashboardRenderer`) |
| 54 | +- render shell + summary rows + player rows |
| 55 | +- tolerate empty/partial datasets safely |
| 56 | +- avoid ownership of refresh, polling, or provider logic |
| 57 | +- avoid coupling to console renderer and overlay renderer internals |
| 58 | + |
| 59 | +## Decoupling Rules |
| 60 | +- console and overlay remain independent debug surfaces |
| 61 | +- dashboard host must not require console open state |
| 62 | +- dashboard host must not require overlay visibility |
| 63 | +- dashboard internals are not managed by combo key handlers |
| 64 | +- existing combo key behavior stays unchanged |
| 65 | + |
| 66 | +## Sample-Level Integration Rule |
| 67 | +- integration remains sample-level only |
| 68 | +- no engine-level promotion in this BUILD_PR |
| 69 | +- initial consumer/proving surface remains sample-owned wiring |
| 70 | + |
| 71 | +## Validation Targets (Docs-First) |
| 72 | +- host/registry/providers/renderer ownership is explicit and non-overlapping |
| 73 | +- provider payloads are read-only by contract |
| 74 | +- dashboard flow is deterministic and polling-based |
| 75 | +- decoupling from console and overlay is explicit |
| 76 | +- combo key behavior is explicitly unchanged |
| 77 | +- no engine-core work is requested |
| 78 | + |
| 79 | +## Apply Gate for Next PR |
| 80 | +APPLY_PR should only implement the documented foundation surface under `tools/dev/server-dashboard` plus sample wiring, with no scope expansion. |
| 81 | + |
| 82 | +## Packaging Target |
| 83 | +`<project folder>/tmp/BUILD_PR_DEBUG_SURFACES_SERVER_DASHBOARD_FOUNDATION_delta.zip` |
0 commit comments