43 lines
4.0 KiB
Markdown
43 lines
4.0 KiB
Markdown
# Round 6: polish pass
|
|
|
|
Fable's ranked list from the round 5 review, implemented as one commit per item. Evidence lives in `round6/`. Before and after shots are at 1440 unless the filename names another width.
|
|
|
|
## Items
|
|
|
|
| # | Change | Commit | Evidence |
|
|
|---|--------|--------|----------|
|
|
| 1 | Removed the gantry and billboard districts from the export (glb went from 83.7 KB to 67.6 KB). The remaining districts now render as opaque dark steel with an emissive rim. | fc897e5 | `world-*-before/after` |
|
|
| 2 | Trimmed the interlude to about 1.5 s: the rise now starts at 1043 ms, the sign docks at 1194 ms, and the content settles at about 1.56 s (it was 1.93 s). | c8bc75c | `nav-sequence-after` |
|
|
| 3 | Moved the window and plate corner marks onto their own corners. | 4eaf327 | `window-*`, `profile-*` |
|
|
| 4 | Filed the end-of-route sign inside the destination panel, clear of both the bar and the credit. | 7fa1c08 | `outro-*` (1440, 1024, 390) |
|
|
| 5 | Changed the activation line from 35 % to 60 % of the viewport. | d6045ad | unit and browser tests |
|
|
| 6 | The 2D exit plate now stays visible on window hover at the destination. | c715cf1 | `outro-hover-*` |
|
|
| 7 | The window hint is hidden while a sign is in flight. | 40d8635 | `window-hover-after` |
|
|
| 8 | The motion tile gets its own slot outside the bay, so the other tiles no longer shift. | 38f680f | `bay-paused-1440/390-after` |
|
|
| 10 | Operations now runs as a base rail under the infrastructure route. | 0771062 | `infra-*` (1440, 1024, 390) |
|
|
| 11 | Fixed the `snapshot of null` error when the scene controller is disposed mid-await. | 1bccb75 | console clean |
|
|
| 12 | The quality select is disabled and reads Static while visuals are unavailable. | 863a44e | new unit test |
|
|
| RM | Under reduced motion the exit plate fades in over 160 ms instead of cutting. | 6f8449d | opacity sampled 0 → 1 |
|
|
| Sweep | When a sign takes the frame, the plates clear before the headings: plates go in 160 ms, headings in 130 ms after a 60 ms delay. | 06c7592 | screencast |
|
|
|
|
## Deviations
|
|
|
|
- **Item 9 (reduced motion):** with the OS set to reduce motion, the scene state is `static`. No scene chunks load and no WebGL is created; the only canvas is the 24x32 title particle canvas. "Enable motion" is offered only after a saved Static choice, never over the OS preference. We kept this on purpose.
|
|
- **Navy frame:** across about 100 screencast frames after a nav click, the lowest grey standard deviation was about 0.14. No frame was flat navy, so no change was needed.
|
|
|
|
## Test edits
|
|
|
|
- `tests/unit/sign-rendering.test.ts`: the sampled progress moved from 0.69 to 0.61 to follow the new truss timing.
|
|
- `tests/unit/section-controller.test.ts`: the activation test now expects 60 % (expected value 575 changed to 825), and the test names were updated.
|
|
- `tests/browser/navigation.spec.ts`: the activation offset moved from 0.34 to 0.59.
|
|
- `tests/browser/journey-integration.spec.ts`: every 0.35 activation offset is now 0.6, and a `gantryWindowBox` helper was added. The two stale pass-by tests were rewritten, not deleted:
|
|
- The car pass-by test now asserts that the approach arc peaks at more than 1.5 times the dwell width, that the sign docks inside the window box at opacity of at least 0.98, that it departs in place, and that the gantry state runs incoming → docked → passing.
|
|
- The Profile face test now asserts the sign is inside the window box and above `#profile .chapter-body`. The texel-density checks are kept.
|
|
- `tests/unit/SceneCanvas.test.ts`: added a test that the quality select is disabled while visuals are unavailable.
|
|
|
|
## Verification
|
|
|
|
- vitest: 686 tests pass. Typecheck is clean. `build:preview` reports `"violations": []`.
|
|
- Full Playwright run (4 workers): 163 passed, 72 failed, 55 skipped. Compared by title with the round 5 baseline, 61 of the failures were already failing there, and 2 baseline failures now pass. The other 11 all pass when re-run serially; they are timing-sensitive sign and audio tests under GPU contention.
|
|
- fps (headed, Intel ARL, 120 Hz display): start 67, infrastructure 81, selected-builds 79, toolkit 82, contact 93.
|