Skip to content

Commit f415e11

Browse files
committed
Convert Objects to wireframe table input and remove MVP wording - PR_26161_004-objects-table-input-wireframe
1 parent fb7c781 commit f415e11

17 files changed

Lines changed: 7488 additions & 3468 deletions

docs_build/dev/reports/codex_changed_files.txt

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,39 @@
22
M docs_build/dev/reports/codex_changed_files.txt
33
M docs_build/dev/reports/codex_review.diff
44
M docs_build/dev/reports/coverage_changed_js_guardrail.txt
5+
M docs_build/dev/reports/db-object-model-contract-report.md
6+
M docs_build/dev/reports/object-render-asset-handoff-report.md
7+
M docs_build/dev/reports/objects-beta-rebuild-report.md
58
M docs_build/dev/reports/playwright_v8_coverage_report.txt
6-
M src/dev-runtime/persistence/tool-repositories/assets-mock-repository.js
7-
M src/engine/object-model/objectDefinitionSchema.js
8-
M src/engine/object-model/objectDefinitionValidator.js
9+
M src/dev-runtime/guest-seeds/tool-metadata-inventory.js
910
M src/engine/object-model/objectModelRegistry.js
1011
M tests/engine/ObjectModelContract.test.mjs
1112
M tests/playwright/tools/ObjectsTool.spec.mjs
13+
M tests/playwright/tools/RootToolsFutureState.spec.mjs
14+
M tests/playwright/tools/ToolboxAdminMetadataSsot.spec.mjs
15+
M tests/playwright/tools/ToolboxRoutePages.spec.mjs
1216
M toolbox/objects/index.html
1317
M toolbox/objects/objects.js
14-
?? docs_build/dev/reports/object-render-asset-handoff-report.md
18+
?? docs_build/dev/reports/objects-table-input-wireframe-report.md
1519

1620
# git ls-files --others --exclude-standard
17-
docs_build/dev/reports/object-render-asset-handoff-report.md
21+
docs_build/dev/reports/objects-table-input-wireframe-report.md
1822

1923
# git diff --stat
20-
docs_build/dev/reports/codex_changed_files.txt | 32 +-
21-
docs_build/dev/reports/codex_review.diff | 1990 +++++++++-----------
22-
.../dev/reports/coverage_changed_js_guardrail.txt | 12 +-
23-
.../dev/reports/playwright_v8_coverage_report.txt | 33 +-
24-
.../tool-repositories/assets-mock-repository.js | 179 ++
25-
src/engine/object-model/objectDefinitionSchema.js | 14 +
26-
.../object-model/objectDefinitionValidator.js | 103 +
27-
src/engine/object-model/objectModelRegistry.js | 8 -
28-
tests/engine/ObjectModelContract.test.mjs | 36 +-
29-
tests/playwright/tools/ObjectsTool.spec.mjs | 66 +-
30-
toolbox/objects/index.html | 21 +-
31-
toolbox/objects/objects.js | 147 +-
32-
12 files changed, 1473 insertions(+), 1168 deletions(-)
24+
docs_build/dev/reports/codex_changed_files.txt | 46 +-
25+
docs_build/dev/reports/codex_review.diff | 4838 +++++++-------------
26+
.../dev/reports/coverage_changed_js_guardrail.txt | 7 +-
27+
.../dev/reports/db-object-model-contract-report.md | 10 +-
28+
.../reports/object-render-asset-handoff-report.md | 6 +-
29+
.../dev/reports/objects-beta-rebuild-report.md | 8 +-
30+
.../dev/reports/playwright_v8_coverage_report.txt | 28 +-
31+
.../guest-seeds/tool-metadata-inventory.js | 16 +-
32+
src/engine/object-model/objectModelRegistry.js | 2 +-
33+
tests/engine/ObjectModelContract.test.mjs | 40 +-
34+
tests/playwright/tools/ObjectsTool.spec.mjs | 210 +-
35+
.../playwright/tools/RootToolsFutureState.spec.mjs | 4 +-
36+
.../tools/ToolboxAdminMetadataSsot.spec.mjs | 36 +-
37+
tests/playwright/tools/ToolboxRoutePages.spec.mjs | 20 +-
38+
toolbox/objects/index.html | 104 +-
39+
toolbox/objects/objects.js | 617 ++-
40+
16 files changed, 2429 insertions(+), 3563 deletions(-)

docs_build/dev/reports/codex_review.diff

Lines changed: 6745 additions & 2986 deletions
Large diffs are not rendered by default.

docs_build/dev/reports/coverage_changed_js_guardrail.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ Missing changed runtime JS files are WARN, not FAIL.
66
Source: Playwright/Chromium built-in V8 coverage from the active Playwright run.
77

88
Changed runtime JS files considered:
9+
(0%) src/dev-runtime/guest-seeds/tool-metadata-inventory.js - WARNING: changed runtime JS file was not collected by Playwright V8 coverage; advisory only
910
(0%) src/dev-runtime/persistence/tool-repositories/assets-mock-repository.js - WARNING: changed runtime JS file was not collected by Playwright V8 coverage; advisory only
1011
(67%) src/engine/object-model/objectModelRegistry.js - executed lines 139/139; executed functions 4/6
11-
(74%) src/engine/object-model/objectDefinitionValidator.js - executed lines 360/360; executed functions 17/23
12+
(70%) src/engine/object-model/objectDefinitionValidator.js - executed lines 360/360; executed functions 16/23
1213
(75%) src/engine/object-model/objectDefinitionSchema.js - executed lines 58/58; executed functions 3/4
13-
(96%) toolbox/objects/objects.js - executed lines 590/590; executed functions 68/71
14-
(100%) src/engine/object-model/index.js - executed lines 29/29; executed functions 1/1
14+
(95%) toolbox/objects/objects.js - executed lines 741/741; executed functions 84/88
1515

1616
Guardrail warnings:
17+
(0%) src/dev-runtime/guest-seeds/tool-metadata-inventory.js - WARNING: changed runtime JS file missing from coverage; advisory only
1718
(0%) src/dev-runtime/persistence/tool-repositories/assets-mock-repository.js - WARNING: changed runtime JS file missing from coverage; advisory only

docs_build/dev/reports/db-object-model-contract-report.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
- PASS: Read `docs_build/dev/PROJECT_INSTRUCTIONS.md` before BUILD execution.
1313
- PASS: Added shared object-model contract files under `src/engine/object-model/`.
1414
- PASS: Added object body/type registry for `Static`, `Dynamic`, `Collectible`, `Hazard`, and `Goal`.
15-
- PASS: Added trait registry for `movable`, `damageable`, `killable`, `playerControlled`, `bounces`, `collides`, `scores`, `collectible`, `hazard`, and `goal`.
15+
- PASS: Added trait registry for `movable`, `damageable`, `killable`, `playerControlled`, `collides`, `scores`, `collectible`, `hazard`, and `goal`.
1616
- PASS: Added object definition schema and validator for manifest/config-driven object definitions.
1717
- PASS: Validator returns visible, actionable issue objects with `code`, `path`, `message`, and `action`.
1818
- PASS: Validator rejects legacy names such as `objectStatic`, `objectDynamic`, and `objectKillable`; no legacy class hierarchy was restored.
1919
- PASS: Wired `toolbox/objects` to consume the shared object-model registry and validator instead of page-local type metadata.
20-
- PASS: Objects remains focused on static/dynamic paddle + ball MVP setup and visible diagnostics.
20+
- PASS: Objects remains focused on broad object setup and visible diagnostics.
2121
- PASS: Theme V2 restrictions preserved; no inline CSS, inline JS, script blocks, style blocks, or inline event handlers were added.
2222
- PASS: No persistence, auth, sample JSON alignment, DB write behavior, or new engine runtime behavior was added.
2323
- PASS: No Toolbox/Admin metadata was changed in this PR.
@@ -28,9 +28,9 @@
2828
- `src/engine/object-model/objectDefinitionSchema.js` owns the object definition schema metadata.
2929
- `src/engine/object-model/objectDefinitionValidator.js` validates definitions, rejects unknown fields/types/traits, rejects duplicate traits, and preserves incoming payloads without mutation.
3030
- `src/engine/object-model/index.js` exports the shared contract.
31-
- `toolbox/objects/objects.js` imports the shared registry/validator, renders object type and trait basics from the registry, derives MVP traits for draft rows, and validates draft/list definitions through the shared validator.
31+
- `toolbox/objects/objects.js` imports the shared registry/validator, renders object type and trait basics from the registry, derives role traits for draft rows, and validates draft/list definitions through the shared validator.
3232
- `tests/engine/ObjectModelContract.test.mjs` covers registry membership, schema enum alignment, valid payload cloning/no mutation, actionable invalid diagnostics, and legacy type rejection.
33-
- `tests/playwright/tools/ObjectsTool.spec.mjs` now verifies shared trait registry visibility and trait-backed MVP seeded output.
33+
- `tests/playwright/tools/ObjectsTool.spec.mjs` now verifies shared trait registry visibility and trait-backed seeded output.
3434

3535
## Validation
3636

@@ -70,4 +70,4 @@ Note: an initial Playwright invocation used a Windows backslash path and returne
7070

7171
- Objects still uses the First-Class Tool V2 surface and Theme V2 CSS.
7272
- Object type choices and visible type/trait registry lists are generated from `src/engine/object-model/`.
73-
- The MVP seeded path remains in-memory only and validates as ready with a Dynamic paddle, Dynamic ball, and Static boundary.
73+
- The seeded path remains in-memory only and validates as ready with Dynamic hero, Dynamic projectile, and Static wall rows.

docs_build/dev/reports/object-render-asset-handoff-report.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
- PASS: Removed `bounces` from object identity traits. Bounce remains a future behavior/physics/event configuration concern.
1515
- PASS: Added object definition render config schema/validation for `None` and `Sprite`.
1616
- PASS: Wired Objects to the shared object-model registry and shared asset repository contract instead of owning duplicate sprite asset records.
17-
- PASS: Added Render Type = Sprite handoff that creates or resolves a real mock-adapter asset row named from the object key, for example `sprite_ball`.
17+
- PASS: Added Render Type = Sprite handoff that creates or resolves a real mock-adapter asset row named from the object key, for example `sprite_bolt`.
1818
- PASS: Linked the object render config to the returned sprite asset key and shared asset preview path.
1919
- PASS: Objects shows the linked sprite key/path and an Edit Sprite route with `assetKey`, `objectKey`, and `sourceTool=objects` query context.
2020
- PASS: Missing sprite assets create a minimal editable default sprite asset record with visible status diagnostics.
2121
- PASS: No fake `placeholder` asset key/concept and no `imageDataUrl` were introduced.
22-
- PASS: Object ownership stays in Objects; sprite content ownership stays with Assets/Sprite Editor.
22+
- PASS: Object definition ownership stays in Objects; sprite content ownership stays with Assets/Sprite Editor.
2323
- PASS: No sample JSON alignment, auth behavior, production DB behavior, or unrelated tool rewrites were added.
2424
- PASS: Toolbox/Admin tool metadata was not changed.
2525

@@ -32,7 +32,7 @@
3232
- `toolbox/objects/index.html`: added Render Type input, Render Asset column, linked sprite preview, and Edit Sprite action using Theme V2 markup only.
3333
- `toolbox/objects/objects.js`: requests shared sprite assets, stores linked render config, logs warnings, and displays preview/action state.
3434
- `tests/engine/ObjectModelContract.test.mjs`: validates no `bounces` object trait and sprite render asset-key validation.
35-
- `tests/playwright/tools/ObjectsTool.spec.mjs`: validates sprite render selection creating/resolving `sprite_ball`, DB row evidence, no placeholder key, and no visible `bounces` trait.
35+
- `tests/playwright/tools/ObjectsTool.spec.mjs`: validates sprite render selection creating/resolving a real sprite asset, DB row evidence, no placeholder key, and no visible `bounces` trait.
3636

3737
## Validation
3838

docs_build/dev/reports/objects-beta-rebuild-report.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ Files changed:
3939
- PASS: Rebuilt `toolbox/objects` as a Tool Template V2-style first-class surface with header, Tool Display Mode host, left setup panel, center workspace, right output/validation/status panels, and working accordions.
4040
- PASS: Used Theme V2 only. No inline CSS, no inline JS, no `<style>` blocks, no inline event handlers.
4141
- PASS: Added an external Objects module with in-memory-only object setup behavior.
42-
- PASS: Kept the tool focused on the paddle + ball MVP path with a seeded Dynamic paddle, Dynamic ball, and Static boundary.
42+
- PASS: Kept the tool focused on a targeted object setup path with seeded Dynamic hero, Dynamic projectile, and Static wall rows.
4343
- PASS: Added object type basics for Static, Dynamic, Collectible, Hazard, and Goal.
44-
- PASS: Added visible output, status logging, MVP requirement rows, and actionable validation diagnostics.
44+
- PASS: Added visible output, status logging, requirement rows, and actionable validation diagnostics.
4545
- PASS: Added no persistence, save/load, auth, sample JSON alignment, or engine runtime behavior.
4646
- PASS: Updated DB-backed tool metadata only after targeted Objects Playwright passed.
4747
- PASS: Marked Objects beta after execution evidence and targeted validation passed.
@@ -79,6 +79,6 @@ Coverage:
7979
## Manual Notes
8080

8181
- Objects page launches from `toolbox/objects/index.html`.
82-
- Seed Paddle + Ball creates three in-memory rows and validates the MVP path.
83-
- Add Object blocks missing fields and invalid Paddle/Ball/Boundary type combinations with actionable diagnostics.
82+
- Seed Starter Objects creates three in-memory rows and validates object setup.
83+
- Add Object blocks missing fields and invalid object type combinations with actionable diagnostics.
8484
- Reset/remove actions affect only the in-memory page draft.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# PR_26161_004 Objects Table Input Wireframe Report
2+
3+
## Branch Guard
4+
5+
- Current branch: `main`
6+
- Expected branch: `main`
7+
- Branch validation before edits: PASS
8+
9+
## Scope Checklist
10+
11+
- PASS: Read `docs_build/dev/PROJECT_INSTRUCTIONS.md` before edits.
12+
- PASS: Kept the change targeted to the Objects tool table-input wireframe and DB/mock-adapter handoff behavior.
13+
- PASS: Moved Objects metadata status/release channel to `Wireframe` / `wireframe`, keeping it clickable from Toolbox.
14+
- PASS: Removed old sample-path wording from the Objects UI, targeted Objects tests, Objects metadata, shared object-model copy, and Objects-specific reports.
15+
- PASS: Renamed the visible role concept to `Role`.
16+
- PASS: Replaced narrow sample-path roles with broader role choices: `Collectible`, `Custom`, `Enemy`, `Goal`, `Hazard`, `Hero`, `Platform`, `Projectile`, `Spawner`, `UI`, and `Wall`.
17+
- PASS: Reworked Objects input from the sidebar form to an editable table with inline name/type/role/state/render controls.
18+
- PASS: Placed `Add Object` below the table and disabled it while a new or edited row is active.
19+
- PASS: Added saved-row `Edit` and `Trash` actions, plus active-row `Save` and `Cancel` actions on the right side.
20+
- PASS: Preserved shared object-model registry/validator usage and Sprite render asset create/resolve handoff.
21+
- PASS: Kept Theme V2 restrictions intact: no inline CSS, no inline JS, no script/style blocks, and no inline event handlers.
22+
- PASS: Added no sample JSON alignment, production DB behavior, auth behavior, persistence behavior, or engine runtime behavior.
23+
24+
## Implementation Evidence
25+
26+
- `toolbox/objects/index.html` now presents Object Setup, Role Choices, readiness checks, and an Objects Table instead of a sidebar draft form.
27+
- `toolbox/objects/objects.js` now owns row edit state, table rendering, inline row controls, add/save/cancel/edit/trash handlers, broader role traits, and the existing Sprite asset handoff path.
28+
- `src/dev-runtime/guest-seeds/tool-metadata-inventory.js` marks Objects as wireframe and updates Objects capability copy to `Object setup types`.
29+
- `src/engine/object-model/objectModelRegistry.js` no longer exposes sample-path wording in the Dynamic body type description.
30+
- `tests/playwright/tools/ObjectsTool.spec.mjs` validates table input, broad roles, add disabling, Cancel/Edit/Trash, Toolbox click-through, no `bounces` trait, and real sprite asset linking/resolution.
31+
32+
## Validation
33+
34+
- PASS: `node --check toolbox/objects/objects.js`
35+
- PASS: `node --check src/dev-runtime/guest-seeds/tool-metadata-inventory.js`
36+
- PASS: `node --check src/engine/object-model/objectModelRegistry.js`
37+
- PASS: `node --check tests/engine/ObjectModelContract.test.mjs`
38+
- PASS: `node --check tests/playwright/tools/ObjectsTool.spec.mjs`
39+
- PASS: `node --check tests/playwright/tools/ToolboxAdminMetadataSsot.spec.mjs`
40+
- PASS: `node --check tests/playwright/tools/ToolboxRoutePages.spec.mjs`
41+
- PASS: `node --check tests/playwright/tools/RootToolsFutureState.spec.mjs`
42+
- PASS: HTML restriction check for `toolbox/objects/index.html`
43+
- PASS: `node tests/engine/ObjectModelContract.test.mjs`
44+
- PASS: `npx playwright test tests/playwright/tools/ObjectsTool.spec.mjs --workers=1 --reporter=line` (4 passed)
45+
- PASS: `npx playwright test tests/playwright/tools/ToolboxAdminMetadataSsot.spec.mjs --reporter=line` (4 passed)
46+
- PASS: `npx playwright test tests/playwright/tools/ToolboxRoutePages.spec.mjs -g "toolbox index shows wireframe|toolbox status kickers|toolbox Build Path status filters" --reporter=line` (3 passed)
47+
- PASS: Combined affected browser lane: `npx playwright test tests/playwright/tools/ObjectsTool.spec.mjs tests/playwright/tools/ToolboxAdminMetadataSsot.spec.mjs tests/playwright/tools/ToolboxRoutePages.spec.mjs -g "Objects|Toolbox and Admin Tool Votes|Admin metadata edits|Toolbox page does not|Toolbox and Admin pages do not|toolbox index shows wireframe|toolbox status kickers|toolbox Build Path status filters" --reporter=line` (11 passed)
48+
- PASS: targeted stale wording scan returned no matches across Objects UI, shared object-model files, targeted tests, Objects metadata, and Objects-specific reports.
49+
- PASS: `git diff --check`
50+
51+
## Playwright V8 Coverage
52+
53+
- PASS: `docs_build/dev/reports/playwright_v8_coverage_report.txt` regenerated from the final single-worker Objects Playwright run.
54+
- Covered changed browser/runtime modules:
55+
- `toolbox/objects/objects.js` at 95% function coverage.
56+
- `src/engine/object-model/objectDefinitionSchema.js` at 75%.
57+
- `src/engine/object-model/objectDefinitionValidator.js` at 70%.
58+
- `src/engine/object-model/objectModelRegistry.js` at 67%.
59+
- WARN: `src/dev-runtime/guest-seeds/tool-metadata-inventory.js` is server/dev-runtime metadata and was not collected by browser V8 coverage.
60+
- WARN: `src/dev-runtime/persistence/tool-repositories/assets-mock-repository.js` appears in the coverage helper's HEAD-change detection path and was not collected by browser V8 coverage; it is not modified in the PR_004 working diff.
61+
62+
## Skipped Lanes
63+
64+
- SKIP: Full samples validation. Safe to skip because no sample JSON, sample launch path, sample manifest, or engine runtime behavior changed.
65+
- SKIP: Sprite Editor launch/handoff Playwright. Safe to skip because no Sprite Editor files, routes, or context contract files changed; Objects still links to the existing Sprite Editor route with `assetKey`, `objectKey`, and `sourceTool=objects`.
66+
- SKIP: Full root future-state Playwright. Safe to skip because PR_004 validation targets Objects, Toolbox clickability, and Toolbox/Admin metadata. The touched root test change is limited to removing stale Objects wording and passed syntax check.
67+
- SKIP: Production DB/auth/persistence validation. Safe to skip because this PR only uses existing mock-adapter/shared asset contracts and adds no production DB, auth, or persistence behavior.
68+
69+
## Remaining Follow-Up
70+
71+
- Behavior and physics configuration still belong in future Events/behavior lanes, not object identity.
72+
- Sprite asset content editing remains owned by Sprite Editor; Objects only creates/resolves and links the shared sprite asset record.
73+
- The Objects table remains a wireframe authoring surface with in-session object definitions and no manifest persistence.

0 commit comments

Comments
 (0)