|
| 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