feat: scroll-driven maintenance window set-piece in the infrastructure chapter
@@ -7,3 +7,11 @@ Run: `npm run build:preview` then serve `dist` (dev server shows a blank page).
|
||||
## Baseline
|
||||
- 688 vitest tests pass at fork.
|
||||
|
||||
## Round 1: The 03:12 Window (Infrastructure)
|
||||
- **What:** scroll-driven maintenance window across the Infrastructure chapter. HUD sub-line ("MAINTENANCE WINDOW · 03:12" -> BACKUP -> CONVERT · TRANSFER -> VERIFY -> "CUTOVER OK · 03:51", "ROLLBACK CHECKPOINT" on reverse scroll), storm sky tint, soft capped lightning (<=0.31 Hz, >=2.8 s apart), district power-down/relight, amber backup packets to a far "offsite" block, rain on the lens (LensFinishPass uRain), diagram nodes 01-04 lighting per step. Progress is scroll-driven, so scrolling back is a rollback.
|
||||
- **Why:** makes the "night shift" idea literal and dramatises the real Nextcloud migration (backups, convert, transfer, verify, cutover) with no invented copy. Closes the gaps "Infrastructure has no world beat" and "no rain / sky event".
|
||||
- **Build:** src/journey/maintenance-progress.ts, src/scene/world/maintenance-window.ts, useMaintenanceWindow.ts, maintenance.css; edits in environment, districts, palette, cinematic-grade, JourneyHud, AppShell. Reduced motion/static: no scene, diagram and sub-line still step. Low tier: dim/relight only.
|
||||
- **Verdict: KEEP with fixes** (Fable review on hardware GL, 1440 and 390): storm tint and lightning strengthened, clock holds 03:51 to end of chapter, phone sub-line fits. 709 tests green (+21), budgets clean (initial JS 111.7 KB gz, scene chunk +6.9 KB).
|
||||
- **Known weakness:** the reading panel covers the scene during p 0.1-0.75, so district power-down, packets and offsite are barely visible; relight uses the normal accent so the payoff reads as "back to normal". Audio rain bed skipped. Do not revisit before round 5.
|
||||
- Screenshots: docs/overnight/round1/ (before-* vs p*-1440/390).
|
||||
|
||||
|
||||
BIN
docs/overnight/round1/before-00-1440.webp
Normal file
|
After Width: | Height: | Size: 221 KiB |
BIN
docs/overnight/round1/before-05-1440.webp
Normal file
|
After Width: | Height: | Size: 191 KiB |
BIN
docs/overnight/round1/before-25-1440.webp
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
docs/overnight/round1/before-50-1440.webp
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
docs/overnight/round1/before-80-1440.webp
Normal file
|
After Width: | Height: | Size: 236 KiB |
BIN
docs/overnight/round1/before-97-1440.webp
Normal file
|
After Width: | Height: | Size: 186 KiB |
BIN
docs/overnight/round1/before-next-1440.webp
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
docs/overnight/round1/before-rev40-1440.webp
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
docs/overnight/round1/before-rev60-1440.webp
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
docs/overnight/round1/lightning-p06-1440.webp
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
docs/overnight/round1/p00-1440.webp
Normal file
|
After Width: | Height: | Size: 220 KiB |
BIN
docs/overnight/round1/p00-390.webp
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
docs/overnight/round1/p05-1440.webp
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/overnight/round1/p05-390.webp
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/overnight/round1/p25-1440.webp
Normal file
|
After Width: | Height: | Size: 107 KiB |
BIN
docs/overnight/round1/p25-390.webp
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
docs/overnight/round1/p50-1440.webp
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
docs/overnight/round1/p50-390.webp
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
docs/overnight/round1/p80-1440.webp
Normal file
|
After Width: | Height: | Size: 244 KiB |
BIN
docs/overnight/round1/p80-390.webp
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
docs/overnight/round1/p97-1440.webp
Normal file
|
After Width: | Height: | Size: 189 KiB |
BIN
docs/overnight/round1/p97-390.webp
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
docs/overnight/round1/pnext-1440.webp
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
docs/overnight/round1/pnext-390.webp
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/overnight/round1/prev40-1440.webp
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
docs/overnight/round1/prev40-390.webp
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
docs/overnight/round1/prev60-1440.webp
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
docs/overnight/round1/prev60-390.webp
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
docs/overnight/round1/storm-p06-1440.webp
Normal file
|
After Width: | Height: | Size: 102 KiB |