|
| 1 | +# PR_26161_007 Objects Model Simplification Report |
| 2 | + |
| 3 | +## Branch Guard |
| 4 | +- Current branch: `main` |
| 5 | +- Expected branch: `main` |
| 6 | +- Local branches found: `* main` |
| 7 | +- Branch validation before edits: PASS |
| 8 | + |
| 9 | +## Source Of Truth |
| 10 | +- `docs_build/dev/PROJECT_INSTRUCTIONS.md` was read before implementation. |
| 11 | +- No repo BUILD doc matching `PR_26161_007` was present. |
| 12 | +- The user-provided `PR_26161_007 Objects Model Simplification` request was used as the active BUILD source. |
| 13 | + |
| 14 | +## Requirement Checklist |
| 15 | +- PASS: Replaced primary user-facing Objects UI `Role` language with `Type`. |
| 16 | +- PASS: Replaced primary user-facing Objects UI `Traits` language with `Capabilities`. |
| 17 | +- PASS: Removed the exact disconnected-copy phrase from the repository. |
| 18 | +- PASS: Replaced status summary rows with `Objects`, `Graphics`, `Hitboxes`, and `Events`. |
| 19 | +- PASS: Status values now use creator-facing values: `Complete`, `Pending Setup`, `Not Configured`, `X Defined`, and `X Linked`. |
| 20 | +- PASS: Removed forbidden implementation wording from the Objects user-facing surface: `connected`, `publishes`, `coverage`, `technical object family`, `internal`, and `runtime type`. |
| 21 | +- PASS: Kept table-first editing and verified `Add Object` remains below the table. |
| 22 | +- PASS: Preserved Sprite render asset create, resolve, preview, and Sprite Editor link behavior. |
| 23 | +- PASS: Did not change engine runtime behavior, database/auth behavior, sample runtime behavior, or sample JSON. |
| 24 | +- PASS: Added/updated Playwright coverage for old vocabulary removal, new vocabulary presence, removed disconnected copy, and Sprite linking. |
| 25 | + |
| 26 | +## Implementation Evidence |
| 27 | +- `toolbox/objects/index.html` now presents `Type Choices`, `Capabilities`, and table columns `Name`, `Type`, `State`, `Render`, `Capabilities`, `Render Asset`, and `Actions`. |
| 28 | +- `toolbox/objects/objects.js` keeps existing object-model validation and hidden derived model type behavior, but converts visible setup language to Type/Capabilities. |
| 29 | +- `toolbox/objects/objects.js` now renders Object Status rows as `Objects`, `Graphics`, `Hitboxes`, and `Events` with production-safe setup actions. |
| 30 | +- `tests/playwright/tools/ObjectsTool.spec.mjs` asserts the primary Objects UI does not show `Role`, `Traits`, or removed disconnected copy; asserts `Type` and `Capabilities`; and keeps the Sprite asset link regression test. |
| 31 | +- `docs_build/dev/reports/objects-production-copy-and-status-report.md` had one historical exact removed phrase replaced so the exact text is absent repo-wide. |
| 32 | + |
| 33 | +## Impacted Lane |
| 34 | +- Impacted lane: Objects tool UI/runtime and targeted Objects Playwright. |
| 35 | +- Runtime JS changed: `toolbox/objects/objects.js`. |
| 36 | + |
| 37 | +## Validation |
| 38 | +- PASS: `node --check toolbox/objects/objects.js` |
| 39 | +- PASS: `node --check tests/playwright/tools/ObjectsTool.spec.mjs` |
| 40 | +- PASS: HTML restriction check for `toolbox/objects/index.html` |
| 41 | +- PASS: `npx playwright test tests/playwright/tools/ObjectsTool.spec.mjs --workers=1 --reporter=line` (4 passed) |
| 42 | +- PASS: `node tests/engine/ObjectModelContract.test.mjs` |
| 43 | +- PASS: Exact disconnected-copy phrase scan returned no matches. |
| 44 | +- PASS: `rg -n "\bRole\b|\bTraits\b|technical object family|publishes|coverage|runtime type|internal|connected" -S toolbox\objects` returned no matches. |
| 45 | +- PASS: `git diff --check` exited 0 with line-ending warnings only. |
| 46 | + |
| 47 | +## Playwright V8 Coverage |
| 48 | +- PASS: `docs_build/dev/reports/playwright_v8_coverage_report.txt` was regenerated by targeted Objects Playwright. |
| 49 | +- Changed Objects runtime JavaScript coverage: `(93%) toolbox/objects/objects.js - executed lines 815/815; executed functions 77/83`. |
| 50 | +- WARN: The coverage helper also reports prior-HEAD changed files such as `src/dev-runtime/guest-seeds/tool-metadata-inventory.js`; that file is not modified by this PR and the warning is advisory-only. |
| 51 | + |
| 52 | +## Skipped Lanes |
| 53 | +- SKIP: Full samples validation. Safe to skip because no sample JSON, sample manifest, sample launch path, or sample runtime behavior changed. |
| 54 | +- SKIP: Production DB/auth validation. Safe to skip because this PR did not add database/auth behavior. |
| 55 | +- SKIP: Broad Toolbox/Admin metadata Playwright. Safe to skip because tool metadata and Toolbox navigation behavior were not changed; Objects click-through remains covered by the targeted Objects spec. |
| 56 | +- SKIP: Full test suite. Safe to skip because this PR only changes the Objects UI language surface, Objects runtime presentation logic, and targeted Objects tests. |
| 57 | + |
| 58 | +## Manual Notes |
| 59 | +- The creator-facing setup Type is still stored through the existing Objects UI row value so the shared object-model validator can derive its existing model type without changing engine runtime contracts. |
| 60 | +- Sprite content ownership remains in Assets/Sprite Editor; Objects only preserves the linked render asset context. |
| 61 | + |
| 62 | +## Required Artifacts |
| 63 | +- PASS: `docs_build/dev/reports/PR_26161_007-objects-model-simplification-report.md` |
| 64 | +- PASS: `docs_build/dev/reports/playwright_v8_coverage_report.txt` |
| 65 | +- PASS: `docs_build/dev/reports/coverage_changed_js_guardrail.txt` |
| 66 | +- PASS: Repo-structured delta ZIP path: `tmp/PR_26161_007_delta.zip` |
0 commit comments