Skip to content

Commit f5bea50

Browse files
author
DavidQ
committed
Auto-mount selected Workspace Manager tool
PR Details: - Places one tool dropdown above Editors. - Locks/overlays Editors until explicit tool selection. - Automatically mounts/activates the selected tool from the dropdown. - Removes the extra Select Tool + Mount requirement from initial game-launched flow. - Does not restore default/fallback tool selection. - Leaves sample Open <tool> behavior untouched.
1 parent 1bd2f89 commit f5bea50

8 files changed

Lines changed: 447 additions & 124 deletions

docs/dev/codex_rules.md

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

55
## This PR
66

7-
Fix only the initial Workspace Manager tool-banner visibility.
7+
Fix only Workspace Manager game-launched tool selection UX.
88

99
Allowed:
10-
- targeted Workspace Manager render/visibility/CSS changes
10+
- targeted Workspace Manager render/selection/CSS changes
1111
- validation report
1212

1313
Forbidden:
@@ -26,13 +26,20 @@ Forbidden:
2626
On game-launched Workspace Manager open:
2727
- show Workspace Manager shell/status
2828
- show Game Source and workspace status
29-
- do not show detached Tool banner
29+
- show one tool dropdown above Editors
30+
- show Editors locked/overlaid until selection
3031
- do not mount a tool
3132
- do not auto-select a tool
3233

33-
## Tool Controls Visibility Rule
34+
## Required Selection Behavior
3435

35-
Tool controls may appear only after explicit tool selection or explicit valid tool context.
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.
3643

3744
## Forbidden Restorations
3845

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
# Workspace Manager Auto Mount Tool Selection 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_auto_mount_tool_selection_validation.md`
9+
10+
## Proof Initial Page Shows One Dropdown Above Editors
11+
12+
Page shell/status and a single explicit dropdown above the editor surface:
13+
14+
- title: `tools/Workspace Manager/index.html:11`
15+
- game source: `tools/Workspace Manager/index.html:12`
16+
- workspace status: `tools/Workspace Manager/index.html:13`
17+
- first-class tools surface copy: `tools/Workspace Manager/index.html:21`
18+
- one dropdown above Editors: `tools/Workspace Manager/index.html:24`
19+
- editors region: `tools/Workspace Manager/index.html:29`
20+
21+
Required URL resolver output:
22+
23+
```text
24+
{
25+
href: '/tools/Workspace%20Manager/index.html?gameId=Bouncing-ball&mount=game',
26+
error: ''
27+
}
28+
```
29+
30+
## Proof Detached Top Banner/Tool Controls Are Gone
31+
32+
`tools/Workspace Manager/index.html` no longer includes detached button/banner controls:
33+
34+
```text
35+
actionApplyCount 0
36+
mountButtonCountExact 0
37+
prevButtonCount 0
38+
nextButtonCount 0
39+
unmountButtonCount 0
40+
standaloneCount 0
41+
stateInputCount 0
42+
currentLabelCount 0
43+
switchMetaCount 0
44+
```
45+
46+
## Proof Editors/Tools Are Overlaid/Disabled Before Tool Selection
47+
48+
Overlay markup exists directly over the editors region:
49+
50+
- editor region: `tools/Workspace Manager/index.html:29`
51+
- overlay node: `tools/Workspace Manager/index.html:31`
52+
53+
Overlay lock behavior is enforced in runtime:
54+
55+
- overlay lock helper: `tools/Workspace Manager/main.js:220`
56+
- init starts locked: `tools/Workspace Manager/main.js:713`
57+
- no explicit tool remains locked: `tools/Workspace Manager/main.js:771`
58+
- missing/invalid context remains locked: `tools/Workspace Manager/main.js:644`, `tools/Workspace Manager/main.js:655`
59+
60+
Overlay styling proves visual lock layer above editors:
61+
62+
- `tools/Workspace Manager/toolHost.css:97`
63+
- `tools/Workspace Manager/toolHost.css:113`
64+
- `tools/Workspace Manager/toolHost.css:127`
65+
66+
## Proof No Default Tool Selected On Load
67+
68+
Tool select is populated with explicit empty option first, and only set to requested tool when explicitly present:
69+
70+
- placeholder option: `tools/Workspace Manager/main.js:516`
71+
- explicit tool query validation: `tools/Workspace Manager/main.js:284-291`
72+
- no requested tool path returns without mount: `tools/Workspace Manager/main.js:771-773`
73+
74+
## Proof Selecting Tool From Dropdown Auto-Mounts/Activates It
75+
76+
Auto-mount is bound directly to dropdown change (no extra action required):
77+
78+
- dropdown change event: `tools/Workspace Manager/main.js:632-636`
79+
- `mountSelectedTool("select")` invoked directly: `tools/Workspace Manager/main.js:635`
80+
- mount call path executes runtime mount: `tools/Workspace Manager/main.js:593-603`
81+
- overlay clears after activation: `tools/Workspace Manager/main.js:542`
82+
83+
## Proof Separate Select Tool/Mount Actions Are Not Required For Initial Flow
84+
85+
- No `Select Tool` button exists (`actionApplyCount 0`).
86+
- No `Mount` button exists (`mountButtonCountExact 0`).
87+
- Initial flow uses one dropdown; selection directly mounts via change handler (`tools/Workspace Manager/main.js:632-636`).
88+
89+
## Proof `toolIds[0]` Not Restored
90+
91+
Command output:
92+
93+
```text
94+
toolIds0 0
95+
```
96+
97+
## Proof `gameId || game` Not Restored
98+
99+
Command output:
100+
101+
```text
102+
gameIdOrGame 0
103+
legacyGameParamRead 0
104+
```
105+
106+
## Proof Valid `gameId` Still Loads Game Context
107+
108+
- valid game context status update: `tools/Workspace Manager/main.js:663-665`
109+
- init valid game context status update: `tools/Workspace Manager/main.js:748-750`
110+
111+
## Proof Invalid/Missing Context Renders Visible Diagnostic
112+
113+
- missing gameId diagnostic: `tools/Workspace Manager/main.js:648`, `tools/Workspace Manager/main.js:731`
114+
- invalid gameId diagnostic: `tools/Workspace Manager/main.js:659`, `tools/Workspace Manager/main.js:741`
115+
- diagnostic panel in markup: `tools/Workspace Manager/index.html:14-17`
116+
117+
## Proof External Memory Clear Remains Intact
118+
119+
Runtime check output:
120+
121+
```text
122+
clearResult true
123+
localAfterClear [ [ 'keep.one', 'x' ] ]
124+
sessionAfterClear [ [ 'keep.two', 'y' ] ]
125+
launchResult true
126+
assignCalls [
127+
'/tools/Workspace%20Manager/index.html?gameId=Bouncing-ball&mount=game'
128+
]
129+
localAfterLaunch [ [ 'keep.one', 'x' ] ]
130+
sessionAfterLaunch [ [ 'keep.two', 'y' ] ]
131+
```
132+
133+
## Proof Samples `Open <tool>` Remain Untouched
134+
135+
- sample label remains: `samples/index.render.js:104`
136+
- sample launch memory-reset path unchanged: `samples/index.render.js:539`
137+
138+
## Static Validation
139+
140+
Commands run successfully:
141+
142+
```bash
143+
node --check tools/Workspace\ Manager/main.js
144+
node --check games/index.render.js
145+
node --check samples/index.render.js
146+
```
147+
148+
## Anti-Pattern Self-Check
149+
150+
- No sample launch behavior/labels changed.
151+
- No `gameId || game` fallback restored.
152+
- No `toolIds[0]` fallback restored.
153+
- No first-tool auto-selection restored.
154+
- No tool mounted on initial game launch before explicit selection.
155+
- No second SSoT introduced.
156+
- No broad Workspace Manager refactor performed.
157+
- No start_of_day files changed.
Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Codex Commands — BUILD_PR_LEVEL_20_17_HIDE_TOOL_BANNER_UNTIL_TOOL_SELECTED
1+
# Codex Commands — BUILD_PR_LEVEL_20_18_AUTO_MOUNT_TOOL_SELECTION_WORKSPACE_SURFACE
22

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

1111
```text
1212
Read docs/dev/codex_rules.md first.
13-
Read docs/dev/reports/workspace_manager_tool_selector_surface_validation.md if present.
13+
Read docs/dev/reports/workspace_manager_hide_tool_banner_validation.md if present.
1414
Read docs/dev/specs/TOOL_LAUNCH_SSOT.md if present.
1515
16-
Execute BUILD_PR_LEVEL_20_17_HIDE_TOOL_BANNER_UNTIL_TOOL_SELECTED.
16+
Execute BUILD_PR_LEVEL_20_18_AUTO_MOUNT_TOOL_SELECTION_WORKSPACE_SURFACE.
1717
1818
User UAT finding:
19-
- Detached Tool banner is still visible.
20-
- User wants the banner removed/hidden until a tool is selected.
21-
- Initial Workspace Manager page should show the Workspace Manager shell/status page with:
22-
- Workspace Manager title
23-
- First-Class Tools Surface copy
24-
- Game Source
25-
- workspace actions
26-
- Workspace loaded status
27-
- shared palette/assets status
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.
2824
2925
Goal:
30-
Hide/remove the detached Tool banner until explicit tool selection.
26+
Simplify Workspace Manager game-launched tool selection UX while preserving no-default/no-fallback rules.
3127
32-
Required initial behavior:
33-
- URL tools/Workspace Manager/index.html?gameId=SolarSystem&mount=game renders visible Workspace Manager shell/status page.
34-
- Do not show Tool / Prev / Next / Mount / Unmount / Open Standalone / Optional JSON state / No tool mounted banner on initial load.
35-
- Do not mount or auto-select a tool on initial load.
36-
- Tool controls may appear only after explicit tool selection or explicit valid tool context.
28+
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.
3737
- Keep game context loaded.
3838
- Keep external memory clear.
3939
- Keep visible diagnostics for invalid/missing context.
@@ -44,7 +44,7 @@ Forbidden:
4444
- restoring gameId || game
4545
- restoring toolIds[0]
4646
- auto-selecting first tool
47-
- mounting a tool on initial game launch
47+
- mounting a tool on initial game launch before user selection
4848
- broad Workspace Manager refactor
4949
- second SSoT
5050
- fallback/default behavior
@@ -56,12 +56,14 @@ Likely files:
5656
- Workspace Manager CSS only if needed
5757
5858
Validation:
59-
Create docs/dev/reports/workspace_manager_hide_tool_banner_validation.md with:
59+
Create docs/dev/reports/workspace_manager_auto_mount_tool_selection_validation.md with:
6060
- changed files
61-
- proof initial game-launched page shows Workspace Manager shell/status
62-
- proof detached tool banner is not visible before tool selection
63-
- proof tool controls appear only after explicit tool selection
64-
- proof no first-tool/default selection restored
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
6567
- proof toolIds[0] not restored
6668
- proof gameId || game not restored
6769
- proof valid gameId still loads game context
@@ -70,5 +72,5 @@ Create docs/dev/reports/workspace_manager_hide_tool_banner_validation.md with:
7072
- anti-pattern self-check
7173
7274
Return ZIP at:
73-
tmp/BUILD_PR_LEVEL_20_17_HIDE_TOOL_BANNER_UNTIL_TOOL_SELECTED.zip
75+
tmp/BUILD_PR_LEVEL_20_18_AUTO_MOUNT_TOOL_SELECTION_WORKSPACE_SURFACE.zip
7476
```
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
Hide Workspace Manager tool banner until selection
1+
Auto-mount selected Workspace Manager tool
22

33
PR Details:
4-
- Hides detached Tool banner on initial game-launched Workspace Manager load.
5-
- Shows Workspace Manager shell/status surface first.
6-
- Shows tool controls only after explicit tool selection.
7-
- Preserves explicit gameId context and memory clear behavior.
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.
88
- Does not restore default/fallback tool selection.
99
- Leaves sample Open <tool> behavior untouched.

0 commit comments

Comments
 (0)