Skip to content

Commit d5b8d87

Browse files
author
DavidQ
committed
Polish Input Mapping V2 layout and manifest registration - PR_26140_088-polish-input-mapping-v2-layout-and-manifest
1 parent 8eb62d4 commit d5b8d87

12 files changed

Lines changed: 428 additions & 34 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Input Mapping V2 Layout and Manifest Report
2+
3+
Task: PR_26140_088-polish-input-mapping-v2-layout-and-manifest
4+
5+
## Summary
6+
- Updated Input Mapping V2 to use the full available horizontal workspace with fixed left/right columns and an expanding center mapping area.
7+
- Added vertical scrolling and fixed 175px by 175px grid tiles for captured mappings.
8+
- Kept the captured mapping list empty until an input is captured, then renders captured mappings only.
9+
- Set capture buttons to 150px wide.
10+
- Updated the right column accordions to share vertical space evenly.
11+
- Added `Start`, `Select`, and `Pause` to default actions and sorted all default/custom actions alphabetically.
12+
13+
## Manifest and Schema Registration
14+
- Added `tools.input-mapping-v2` to `games/Asteroids/game.manifest.json` as a manifest-owned V2 tool payload with empty inputs.
15+
- Added the minimal `tools/schemas/tools/input-mapping-v2.schema.json` payload schema because the game manifest schema rejects unknown tool payload keys.
16+
- Updated `tools/schemas/game.manifest.schema.json` to allow `tools.input-mapping-v2`.
17+
- Updated Workspace Manager V2 payload schema registration so Input Mapping V2 validates through the same manifest/toolState path as other active V2 tools.
18+
19+
## Playwright Impact
20+
Playwright impacted: Yes.
21+
22+
Validated behavior:
23+
- Input Mapping V2 launches from the current V2 template shell.
24+
- Full-width layout pins left/right columns and expands the center workspace.
25+
- Mapping list starts empty, has vertical scroll behavior, and renders 175px grid tiles after capture.
26+
- Action dropdown includes `Pause`, `Select`, and `Start` and is sorted alphabetically.
27+
- Keyboard capture records `Keyboard KeyA` and clicking the token deletes it.
28+
- Gamepad capture logs an actionable WARN when live browser gamepad data is unavailable.
29+
- Asteroids game manifest includes the Input Mapping V2 payload and Workspace Manager validates it through the new schema.
30+
31+
## Validation
32+
- PASS: targeted `node --check` syntax/import validation for changed Input Mapping V2 and Workspace Manager files.
33+
- PASS: JSON parse validation for `games/Asteroids/game.manifest.json`, `tools/schemas/game.manifest.schema.json`, and `tools/schemas/tools/input-mapping-v2.schema.json`.
34+
- PASS: HTML inline script/style/event-handler scan for Input Mapping V2 HTML files returned no matches.
35+
- PASS: focused Playwright validation for Input Mapping V2 and Workspace Manager tile launch paths.
36+
- PASS: `npm run test:workspace-v2` with 60 passing tests.
37+
- PASS: Playwright V8 coverage guardrail lists changed runtime JavaScript files with no WARN entries.
38+
39+
## Scope Notes
40+
- No sample JSON files were changed.
41+
- Full samples smoke test was skipped because the PR is limited to Input Mapping V2 layout, focused manifest registration, and Workspace V2 validation.
42+
- No commits were created.

docs/tools/input-mapping-v2/uat.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
## Default Actions
1919

2020
- Confirm the default actions include movement, confirm/cancel, fire, thrust, and rotation actions.
21-
- Confirm `Pause` is not present in the default action dropdown.
21+
- Confirm `Pause`, `Select`, and `Start` are present in the default action dropdown.
22+
- Confirm default actions are sorted alphabetically.
2223

2324
## Gamepad Capture
2425

games/Asteroids/game.manifest.json

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,104 @@
212212
}
213213
}
214214
},
215+
"input-mapping-v2": {
216+
"$schema": "tools/schemas/tools/input-mapping-v2.schema.json",
217+
"toolId": "input-mapping-v2",
218+
"version": 1,
219+
"engineInputModel": "src/engine/input/InputMap",
220+
"actions": [
221+
{
222+
"action": "cancel",
223+
"label": "Cancel",
224+
"inputs": []
225+
},
226+
{
227+
"action": "confirm",
228+
"label": "Confirm",
229+
"inputs": []
230+
},
231+
{
232+
"action": "fire",
233+
"label": "Fire",
234+
"inputs": []
235+
},
236+
{
237+
"action": "interact",
238+
"label": "Interact",
239+
"inputs": []
240+
},
241+
{
242+
"action": "jump",
243+
"label": "Jump",
244+
"inputs": []
245+
},
246+
{
247+
"action": "menu",
248+
"label": "Menu",
249+
"inputs": []
250+
},
251+
{
252+
"action": "moveDown",
253+
"label": "Move Down",
254+
"inputs": []
255+
},
256+
{
257+
"action": "moveLeft",
258+
"label": "Move Left",
259+
"inputs": []
260+
},
261+
{
262+
"action": "moveRight",
263+
"label": "Move Right",
264+
"inputs": []
265+
},
266+
{
267+
"action": "moveUp",
268+
"label": "Move Up",
269+
"inputs": []
270+
},
271+
{
272+
"action": "pause",
273+
"label": "Pause",
274+
"inputs": []
275+
},
276+
{
277+
"action": "primaryAction",
278+
"label": "Primary Action",
279+
"inputs": []
280+
},
281+
{
282+
"action": "rotateLeft",
283+
"label": "Rotate Left",
284+
"inputs": []
285+
},
286+
{
287+
"action": "rotateRight",
288+
"label": "Rotate Right",
289+
"inputs": []
290+
},
291+
{
292+
"action": "secondaryAction",
293+
"label": "Secondary Action",
294+
"inputs": []
295+
},
296+
{
297+
"action": "select",
298+
"label": "Select",
299+
"inputs": []
300+
},
301+
{
302+
"action": "start",
303+
"label": "Start",
304+
"inputs": []
305+
},
306+
{
307+
"action": "thrust",
308+
"label": "Thrust",
309+
"inputs": []
310+
}
311+
]
312+
},
215313
"object-vector-studio-v2": {
216314
"version": 1,
217315
"toolId": "object-vector-studio-v2",

0 commit comments

Comments
 (0)