Skip to content

Commit 5bafa6a

Browse files
author
DavidQ
committed
Force Workspace Manager tool pager above Editors
PR Details: - Removes the newly created Workspace Manager top header/banner workflow. - Adds centered [PREV] <toolname> [NEXT] control above Editors. - Selects and mounts the first available tool on page load per user direction. - Prev/Next switches selected and mounted tool. - Removes dropdown + Select Tool + Mount initial workflow. - Keeps explicit gameId and does not restore legacy query fallback.
1 parent f5bea50 commit 5bafa6a

8 files changed

Lines changed: 490 additions & 165 deletions

File tree

docs/dev/codex_rules.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,54 @@ These rules OVERRIDE all other instructions.
44

55
## This PR
66

7-
Fix only Workspace Manager game-launched tool selection UX.
7+
Force the Workspace Manager tool pager UI above Editors.
88

99
Allowed:
10-
- targeted Workspace Manager render/selection/CSS changes
10+
- targeted Workspace Manager UI/render behavior changes
11+
- remove newly created top header/banner/control area
1112
- validation report
1213

1314
Forbidden:
1415
- broad cleanup
1516
- unrelated refactoring
1617
- changes to samples behavior
1718
- changes to required labels
18-
- new route systems
19+
- new header/banner replacement
1920
- second SSoT
20-
- fallback/default behavior
2121
- start_of_day changes
2222
- roadmap text rewrite outside status markers
2323

24-
## Required Initial State
24+
## User-Approved Exception
2525

26-
On game-launched Workspace Manager open:
27-
- show Workspace Manager shell/status
28-
- show Game Source and workspace status
29-
- show one tool dropdown above Editors
30-
- show Editors locked/overlaid until selection
31-
- do not mount a tool
32-
- do not auto-select a tool
26+
For this PR only:
27+
- the first available tool in the game tool list MUST be selected on page load
28+
- the selected first tool MUST be displayed between PREV and NEXT
29+
- the selected first tool MAY be activated/mounted on page load
3330

34-
## Required Selection Behavior
31+
This approved behavior is not considered an anti-pattern in this PR.
3532

36-
When the user selects a valid tool from the dropdown:
37-
- validate against registry/SSoT
38-
- automatically activate/mount selected tool
39-
- clear/hide overlay
40-
- update status
41-
42-
No separate Select Tool or Mount click may be required for the initial flow.
43-
44-
## Forbidden Restorations
33+
## Still Forbidden
4534

4635
Do not restore:
4736
- `gameId || game`
48-
- `toolIds[0]`
49-
- first-item selection
50-
- default tool
51-
- default workspace
52-
- fallback route
53-
- fallback view
37+
- legacy `game` query fallback
38+
- hidden fallback routing
5439
- stale memory reuse
40+
- label-text route guessing
41+
- DOM-order route guessing
42+
43+
## Required UI
44+
45+
Create centered control directly above Editors:
46+
47+
[PREV] <toolname> [NEXT]
48+
49+
Do not use:
50+
- detached top banner
51+
- new header
52+
- dropdown workflow
53+
- Select Tool button
54+
- Mount button for initial flow
5555

5656
## Anti-Patterns Forbidden
5757

@@ -60,12 +60,12 @@ Do not restore:
6060
- duplicate state
6161
- stored derived state
6262
- vague names
63-
- hidden fallback behavior
63+
- hidden query fallback
6464
- duplicated launch paths
6565
- silent redirects
6666
- silent caught errors
6767
- broad truthy/falsy behavior changes
68-
- magic strings outside existing SSoT/config pattern
68+
- magic strings outside existing registry/config pattern
6969
- duplicate event listeners
7070
- globals
7171
- new managers/factories/service layers
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
# Workspace Manager Tool Pager Above Editors Validation
2+
3+
## Changed Files
4+
5+
- `tools/Workspace Manager/index.html`
6+
- `tools/Workspace Manager/main.js`
7+
- `tools/Workspace Manager/toolHost.css`
8+
- `docs/dev/reports/workspace_manager_tool_pager_above_editors_validation.md`
9+
10+
## Proof Newly Created Header/Banner/Control Area Removed
11+
12+
- `tools/Workspace Manager/index.html` no longer contains a `<header>` block.
13+
- Command evidence:
14+
15+
```text
16+
headerTagCount 0
17+
```
18+
19+
## Proof Centered `[PREV] <toolname> [NEXT]` Appears Above Editors
20+
21+
Markup order shows pager directly above Editors:
22+
23+
- pager container: `tools/Workspace Manager/index.html:22`
24+
- `[PREV]`: `tools/Workspace Manager/index.html:23`
25+
- `<toolname>` label: `tools/Workspace Manager/index.html:24`
26+
- `[NEXT]`: `tools/Workspace Manager/index.html:25`
27+
- editors region: `tools/Workspace Manager/index.html:28`
28+
29+
Centering evidence in CSS:
30+
31+
- pager rule: `tools/Workspace Manager/toolHost.css:63`
32+
- centered layout: `tools/Workspace Manager/toolHost.css:66` (`justify-content: center`)
33+
34+
## Proof First Available Tool Selected On Page Load
35+
36+
User-approved exception applied in runtime:
37+
38+
- select default to first tool if preferred tool missing: `tools/Workspace Manager/main.js:516`
39+
- game-filtered list default to first tool if preferred missing: `tools/Workspace Manager/main.js:531`
40+
- init selects first available when query tool is absent/invalid: `tools/Workspace Manager/main.js:780`
41+
42+
## Proof Selected Tool Active/Mounted On Page Load
43+
44+
Init path mounts the selected/first tool automatically:
45+
46+
- initial load mount call: `tools/Workspace Manager/main.js:790` (`mountSelectedTool("init")`)
47+
- mount runtime call path: `tools/Workspace Manager/main.js:593-603`
48+
49+
## Proof Prev/Next Changes Selected/Mounted Tool
50+
51+
Pager button events remount immediately:
52+
53+
- prev event -> `mountSelectedTool("prev")`: `tools/Workspace Manager/main.js:615`
54+
- next event -> `mountSelectedTool("next")`: `tools/Workspace Manager/main.js:624`
55+
56+
## Proof Dropdown + Select Tool + Mount Initial Workflow Removed
57+
58+
Removed from HTML:
59+
60+
```text
61+
selectToolButtonCount 0
62+
mountButtonCount 0
63+
```
64+
65+
No `Select Tool` button and no `Mount` button are present in current `index.html`.
66+
67+
Selection is pager-driven with hidden internal select only (no user dropdown workflow):
68+
69+
- hidden internal selector: `tools/Workspace Manager/index.html:26`
70+
- hidden styling: `tools/Workspace Manager/toolHost.css:84`
71+
72+
## Proof `gameId || game` Fallback Not Restored
73+
74+
Command evidence:
75+
76+
```text
77+
gameIdOrGameCount 0
78+
legacyGameParamReadCount 0
79+
```
80+
81+
- `tools/Workspace Manager/main.js` reads only `gameId` (`readInitialGameId` at `main.js:335`).
82+
83+
## Proof Game Context Still Loads From Explicit `gameId`
84+
85+
- resolver still emits explicit `gameId` URL:
86+
87+
```text
88+
{
89+
href: '/tools/Workspace%20Manager/index.html?gameId=Bouncing-ball&mount=game',
90+
error: ''
91+
}
92+
```
93+
94+
- runtime game context reads and applies explicit `gameId`:
95+
- `readInitialGameId`: `tools/Workspace Manager/main.js:335`
96+
- valid game source write: `tools/Workspace Manager/main.js:758`
97+
98+
## Proof Sample `Open <tool>` Remains Untouched
99+
100+
- sample label still `Open <tool>`: `samples/index.render.js:104`
101+
- sample external launch reset flow unchanged: `samples/index.render.js:539`
102+
103+
## External Memory Clear Remains Intact
104+
105+
Runtime check output:
106+
107+
```text
108+
clearResult true
109+
localAfterClear [ [ 'keep.one', 'x' ] ]
110+
sessionAfterClear [ [ 'keep.two', 'y' ] ]
111+
launchResult true
112+
assignCalls [
113+
'/tools/Workspace%20Manager/index.html?gameId=Bouncing-ball&mount=game'
114+
]
115+
localAfterLaunch [ [ 'keep.one', 'x' ] ]
116+
sessionAfterLaunch [ [ 'keep.two', 'y' ] ]
117+
```
118+
119+
## Static Validation
120+
121+
Commands run successfully:
122+
123+
```bash
124+
node --check tools/Workspace\ Manager/main.js
125+
node --check games/index.render.js
126+
node --check samples/index.render.js
127+
```
128+
129+
## Anti-Pattern Self-Check
130+
131+
- No samples behavior or label changes.
132+
- No legacy `gameId || game` fallback restored.
133+
- No hidden fallback routing introduced.
134+
- No stale memory reuse introduced.
135+
- No second SSoT introduced.
136+
- No broad Workspace Manager refactor.
137+
- No start_of_day changes.
138+
- User-approved exception used in this PR: first available tool selection on page load (`toolIds[0]` usage is intentional and required for 20_19).
Lines changed: 44 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Codex Commands — BUILD_PR_LEVEL_20_18_AUTO_MOUNT_TOOL_SELECTION_WORKSPACE_SURFACE
1+
# Codex Commands — BUILD_PR_LEVEL_20_19_FORCE_WORKSPACE_TOOL_PAGER_ABOVE_EDITORS
22

33
## Model
44
GPT-5.4 or GPT-5.3-codex
@@ -10,44 +10,49 @@ High
1010

1111
```text
1212
Read docs/dev/codex_rules.md first.
13-
Read docs/dev/reports/workspace_manager_hide_tool_banner_validation.md if present.
13+
Read docs/dev/reports/workspace_manager_auto_mount_tool_selection_validation.md if present.
1414
Read docs/dev/specs/TOOL_LAUNCH_SSOT.md if present.
1515
16-
Execute BUILD_PR_LEVEL_20_18_AUTO_MOUNT_TOOL_SELECTION_WORKSPACE_SURFACE.
16+
Execute BUILD_PR_LEVEL_20_19_FORCE_WORKSPACE_TOOL_PAGER_ABOVE_EDITORS.
1717
18-
User UAT finding:
19-
- Current flow forces the user to choose dropdown workspace action, click Select Tool, select the tool, then Mount.
20-
- User wants one dropdown above Editors.
21-
- Tools/cards below should be hidden/locked with an overlay until a tool is selected.
22-
- When a tool is selected, automatically do the next step: activate/mount that selected tool.
23-
- No separate Select Tool + Mount flow should be required for initial game-launched use.
18+
User UAT correction:
19+
- Do not use a new HEADER at all.
20+
- Delete/remove what was created as the top Workspace Manager header/banner/control area.
21+
- Force this UI centered above Editors:
22+
[PREV] <toolname> [NEXT]
23+
- On page load, default <toolname> to the first tool in the available list.
24+
- No more attempts to keep the header.
25+
- No dropdown + Select Tool + Mount initial workflow.
2426
2527
Goal:
26-
Simplify Workspace Manager game-launched tool selection UX while preserving no-default/no-fallback rules.
28+
Replace the current top header/banner/dropdown workflow with a centered tool pager directly above Editors.
2729
2830
Required behavior:
29-
- URL tools/Workspace Manager/index.html?gameId=Bouncing-ball&mount=game renders visible Workspace Manager shell/status page.
30-
- Show one explicit tool dropdown above Editors.
31-
- Do not show detached top banner/tool controls.
32-
- Editors/tool cards below are locked/overlaid until tool selection.
33-
- Do not auto-select or mount a default tool on load.
34-
- When user selects a valid tool from dropdown, automatically activate/mount selected tool.
35-
- Remove/hide overlay after activation.
36-
- Do not require Select Tool button or Mount button for initial flow.
37-
- Keep game context loaded.
38-
- Keep external memory clear.
39-
- Keep visible diagnostics for invalid/missing context.
31+
- URL tools/Workspace Manager/index.html?gameId=Bouncing-ball&mount=game renders existing Workspace Manager page shell.
32+
- Remove newly created top banner/header/control content.
33+
- Directly above Editors, centered, render:
34+
[PREV] <selected tool name> [NEXT]
35+
- On page load, select the first available tool for the explicit gameId context.
36+
- Activate/mount selected tool on page load.
37+
- Prev/Next changes the selected tool and active/mounted tool.
38+
- Do not require dropdown.
39+
- Do not require Select Tool button.
40+
- Do not require Mount button.
41+
- Keep game context loaded from explicit gameId.
42+
- Keep samples untouched.
4043
41-
Forbidden:
42-
- changing samples
43-
- changing labels
44+
User-approved exception:
45+
- First available tool selected on page load is REQUIRED for this PR.
46+
- This is not considered fallback/default anti-pattern for this PR.
47+
48+
Still forbidden:
4449
- restoring gameId || game
45-
- restoring toolIds[0]
46-
- auto-selecting first tool
47-
- mounting a tool on initial game launch before user selection
50+
- legacy game query fallback
51+
- hidden fallback routing
52+
- stale memory reuse
53+
- new header/banner
4854
- broad Workspace Manager refactor
4955
- second SSoT
50-
- fallback/default behavior
5156
- start_of_day changes
5257
5358
Likely files:
@@ -56,21 +61,19 @@ Likely files:
5661
- Workspace Manager CSS only if needed
5762
5863
Validation:
59-
Create docs/dev/reports/workspace_manager_auto_mount_tool_selection_validation.md with:
64+
Create docs/dev/reports/workspace_manager_tool_pager_above_editors_validation.md with:
6065
- changed files
61-
- proof initial page shows one dropdown above Editors
62-
- proof detached top banner/tool controls are gone
63-
- proof Editors/tools are overlaid/disabled before tool selection
64-
- proof no default tool selected on load
65-
- proof selecting a tool from dropdown auto-mounts/activates it
66-
- proof separate Select Tool and Mount actions are not required for initial flow
67-
- proof toolIds[0] not restored
68-
- proof gameId || game not restored
69-
- proof valid gameId still loads game context
70-
- proof invalid/missing context renders visible diagnostic
71-
- proof samples Open <tool> remain untouched
66+
- proof newly created header/banner/control area removed
67+
- proof centered [PREV] <toolname> [NEXT] appears above Editors
68+
- proof first available tool selected on page load
69+
- proof selected tool active/mounted on page load
70+
- proof Prev/Next changes selected/mounted tool
71+
- proof dropdown + Select Tool + Mount initial workflow removed
72+
- proof gameId || game fallback not restored
73+
- proof game context still loads from explicit gameId
74+
- proof sample Open <tool> remains untouched
7275
- anti-pattern self-check
7376
7477
Return ZIP at:
75-
tmp/BUILD_PR_LEVEL_20_18_AUTO_MOUNT_TOOL_SELECTION_WORKSPACE_SURFACE.zip
78+
tmp/BUILD_PR_LEVEL_20_19_FORCE_WORKSPACE_TOOL_PAGER_ABOVE_EDITORS.zip
7679
```
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
Auto-mount selected Workspace Manager tool
1+
Force Workspace Manager tool pager above Editors
22

33
PR Details:
4-
- Places one tool dropdown above Editors.
5-
- Locks/overlays Editors until explicit tool selection.
6-
- Automatically mounts/activates the selected tool from the dropdown.
7-
- Removes the extra Select Tool + Mount requirement from initial game-launched flow.
8-
- Does not restore default/fallback tool selection.
9-
- Leaves sample Open <tool> behavior untouched.
4+
- Removes the newly created Workspace Manager top header/banner workflow.
5+
- Adds centered [PREV] <toolname> [NEXT] control above Editors.
6+
- Selects and mounts the first available tool on page load per user direction.
7+
- Prev/Next switches selected and mounted tool.
8+
- Removes dropdown + Select Tool + Mount initial workflow.
9+
- Keeps explicit gameId and does not restore legacy query fallback.

0 commit comments

Comments
 (0)