Skip to content

Commit bb46832

Browse files
author
DavidQ
committed
Refine Object Vector Studio frame controls palette paint modes and shape action placement - PR_26133_046-object-vector-frame-palette-and-shape-action-cleanup
1 parent b9dcfb8 commit bb46832

8 files changed

Lines changed: 238 additions & 105 deletions

File tree

docs/dev/reports/playwright_v8_coverage_report.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# PR_26133_045 Playwright V8 Coverage Report
1+
# PR_26133_046 Playwright V8 Coverage Report
22

3-
Task: PR_26133_045-object-preview-pan-direction-and-strict-schema-fix
3+
Task: PR_26133_046-object-vector-frame-palette-and-shape-action-cleanup
44
Date: 2026-05-15
55

66
## Result
@@ -24,6 +24,7 @@ PASS - Coverage reporting was generated during `npm run test:workspace-v2`.
2424
## Relevant Runtime Coverage
2525

2626
```text
27+
(80%) tools/object-vector-studio-v2/js/bootstrap.js - executed lines 97/97; executed functions 4/5
2728
(90%) tools/object-vector-studio-v2/js/ToolStarterApp.js - executed lines 3187/3187; executed functions 331/369
2829
(95%) tools/object-vector-studio-v2/js/services/ObjectVectorStudioV2SchemaService.js - executed lines 409/409; executed functions 53/56
2930
```
@@ -36,4 +37,4 @@ PASS - Coverage reporting was generated during `npm run test:workspace-v2`.
3637

3738
## PR-Specific Note
3839

39-
The Workspace V2 run exercised Object Vector Studio V2 preview pan controls, center-dot visibility, coordinate/origin display updates, transform-origin pivot rendering, and strict schema rejection for unknown runtime/workspace fields.
40+
The Workspace V2 run exercised Object Vector Studio V2 frame creation/duplication/deletion/reordering, palette sort controls, Paint/Stroke mode application through canvas clicks, and icon-only shape order/group controls under Objects.
Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# PR_26133_045 Workspace V2 Playwright Results
1+
# PR_26133_046 Workspace V2 Playwright Results
22

3-
Task: PR_26133_045-object-preview-pan-direction-and-strict-schema-fix
3+
Task: PR_26133_046-object-vector-frame-palette-and-shape-action-cleanup
44
Date: 2026-05-15
55

66
## Result
@@ -10,22 +10,25 @@ PASS - `npm run test:workspace-v2` completed successfully.
1010
- Command: `npm run test:workspace-v2`
1111
- Playwright target: `tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list`
1212
- Final result: 51 passed, 0 failed.
13-
- Runtime/console guard: Workspace Manager V2 and Object Vector Studio V2 scenarios completed with no reported page errors.
13+
- Runtime/console guard: Workspace Manager V2, Object Vector Studio V2, and Asteroids runtime scenarios completed with no reported page errors.
1414

1515
## PR-Specific Coverage
1616

17-
- Verified the Center control toggles the center dot without recentering or changing the viewport.
18-
- Verified Up/Down/Left/Right pan only the viewport origin and update the Canvas origin display.
19-
- Verified pan controls do not mutate selected shape geometry or transform state.
20-
- Verified pointer X/Y coordinate display remains logical after the viewport-origin display change.
21-
- Verified the transform origin/pivot marker reflects the applied origin used for rotation/scale behavior.
22-
- Verified `game.gameData.objectVectorRuntime` and unknown `gameData` fields fail strict schema validation.
23-
- Verified the workspace manifest schema rejects an unknown root field.
17+
- Verified Delete Frame removes a selected frame and refuses to delete the final remaining frame.
18+
- Verified generated and canonical Asteroids frame IDs use `frame-x` instead of state-prefixed frame IDs.
19+
- Verified Left/Right frame controls and Frame Earlier/Frame Later reorder frames through the same sequence-safe path.
20+
- Verified palette sort buttons show ascending/descending caret indicators and toggle sort direction.
21+
- Verified Paint/Stroke buttons switch action mode without changing selected shape style.
22+
- Verified canvas clicks still apply the currently selected Paint/Stroke color.
23+
- Verified shape order/group actions moved under Objects and render as icon-only controls with titles.
2424

2525
## Additional Validation
2626

27-
- `node` JSON parse check passed for `tools/schemas/game.manifest.schema.json`, `tools/schemas/workspace.manifest.schema.json`, and `games/Asteroids/game.manifest.json`.
28-
- `node` schema-service check: current Asteroids manifest returned `{ ok: true }`.
29-
- `node` schema-service check: injected `game.gameData.objectVectorRuntime` returned `{ ok: false }`.
30-
- `node` schema-service check: injected `game.gameData.debugUnknown` returned `{ ok: false }`.
31-
- `node` schema-service check: injected workspace root `debugUnknown` returned `{ ok: false }`.
27+
- Targeted Playwright check passed for Object Vector Studio layout, animation frame controls, and Asteroids runtime rendering.
28+
- Node syntax checks passed for `tools/object-vector-studio-v2/js/ToolStarterApp.js` and `tools/object-vector-studio-v2/js/bootstrap.js`.
29+
- Node schema-service check passed for `games/Asteroids/game.manifest.json` and its workspace manifest.
30+
- `git diff --check` passed.
31+
32+
## Frame Control Note
33+
34+
`Left` and `Right` are directional aliases for the same frame-order mutation used by `Frame Earlier` and `Frame Later`; all four controls preserve the selected state linkage and only change frame order.

games/Asteroids/game.manifest.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@
336336
"name": "Idle",
337337
"frames": [
338338
{
339-
"id": "idle-frame-1",
339+
"id": "frame-1",
340340
"order": 0,
341341
"durationFrames": 1,
342342
"shapeOverrides": [
@@ -357,7 +357,7 @@
357357
"name": "Thrust",
358358
"frames": [
359359
{
360-
"id": "thrust-frame-1",
360+
"id": "frame-1",
361361
"order": 0,
362362
"durationFrames": 1,
363363
"shapeOverrides": [
@@ -466,7 +466,7 @@
466466
"name": "Active",
467467
"frames": [
468468
{
469-
"id": "active-frame-1",
469+
"id": "frame-1",
470470
"order": 0,
471471
"durationFrames": 1,
472472
"shapeOverrides": []
@@ -542,7 +542,7 @@
542542
"name": "Active",
543543
"frames": [
544544
{
545-
"id": "active-frame-1",
545+
"id": "frame-1",
546546
"order": 0,
547547
"durationFrames": 1,
548548
"shapeOverrides": []
@@ -626,7 +626,7 @@
626626
"name": "Active",
627627
"frames": [
628628
{
629-
"id": "active-frame-1",
629+
"id": "frame-1",
630630
"order": 0,
631631
"durationFrames": 1,
632632
"shapeOverrides": []
@@ -710,7 +710,7 @@
710710
"name": "Active",
711711
"frames": [
712712
{
713-
"id": "active-frame-1",
713+
"id": "frame-1",
714714
"order": 0,
715715
"durationFrames": 1,
716716
"shapeOverrides": []
@@ -790,7 +790,7 @@
790790
"name": "Active",
791791
"frames": [
792792
{
793-
"id": "active-frame-1",
793+
"id": "frame-1",
794794
"order": 0,
795795
"durationFrames": 1,
796796
"shapeOverrides": []
@@ -870,7 +870,7 @@
870870
"name": "Active",
871871
"frames": [
872872
{
873-
"id": "active-frame-1",
873+
"id": "frame-1",
874874
"order": 0,
875875
"durationFrames": 1,
876876
"shapeOverrides": []

0 commit comments

Comments
 (0)