34 Commits

Author SHA1 Message Date
Georg 705d1ea6bf Fix new-game title flip + cap lookahead prepare burst
Builds on the worker migration with prepare-burst pacing and a title-flip fix:

- New game from mid-game left the book on the previous game's spread, so the first block's
  source and target spread matched and the title->content page turn was skipped. story:client-reset
  now returns the book to the title spread (spread 0) so the first block flips 0->1 and animates.
  Verified: requiresSpreadTransition src=0 tgt=1, page-flip-started/near-end fire.

- The lookahead burst-prepared many blocks at once, spiking allocation/GC into multi-second
  main-thread stalls. WebGL book prepares are now serialized through a chain and capped to a
  small lookahead window (TTS audio prefetch still spans the full window); future lookahead is
  also deferred until the current sentence has entered the display pipeline, keeping it off the
  first flip/reveal critical path. Worst game-start stall ~6s -> ~3.4s.

- Page flips now drive the scene through the sceneControl prewarm/startPreparedPageFlip API
  (awaited) instead of an event, and the scene awaits the async initial spread draw.

Suite 177. Remaining: a per-block prepare stall (~1.6-3.4s for large blocks at game start)
that profiling has not yet attributed to a single function (likely GC from prepare-path
allocation) — needs a DevTools performance capture for exact attribution.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 00:59:01 +02:00
Georg ce8147b5b1 Enforce explicit WebGL book playback timeline 2026-06-10 09:35:00 +02:00
Georg 10bf23b10b Add timeline owner for WebGL book playback 2026-06-10 02:00:57 +02:00
Georg b41340151d Checkpoint WebGL book playback refactor state 2026-06-10 01:07:22 +02:00
Georg 171cafeb65 Stabilize WebGL book pagination restore 2026-06-09 16:42:12 +02:00
Georg d665a0f237 Fix WebGL line reveal renderer 2026-06-09 09:02:54 +02:00
Georg a73dc5725f Add WebGL page cache and runtime checks 2026-06-08 14:39:42 +02:00
Georg 86b6fa0419 Implement WebGL book spread flip groundwork 2026-06-08 09:13:37 +02:00
Georg c86a304364 Checkpoint WebGL book reveal optimization 2026-06-08 08:19:20 +02:00
Georg 53c24e4fae Stabilize WebGL reveal timing 2026-06-07 16:42:09 +02:00
Georg 74ddd1de1c Gate WebGL book texture fonts 2026-06-07 14:35:00 +02:00
Georg 9434950826 Queue WebGL book reveal masks 2026-06-07 13:52:07 +02:00
Georg 199462442c Add WebGL book scene checkpoint 2026-06-04 11:10:48 +02:00
Georg bccefd2a68 Checkpoint current interactive fiction changes 2026-06-03 12:59:43 +02:00
Georg d42540f29d Checkpoint Eibenreith ink architecture 2026-05-24 09:09:41 +02:00
Georg beac5a2be3 Fix stale restore after game restart 2026-05-20 22:27:36 +02:00
Georg 8258ea2321 Update TTS providers and story markup 2026-05-20 22:13:31 +02:00
Georg 121b174f2c Add glossary hover presentation 2026-05-19 07:34:52 +02:00
Georg 751ac5f62b Stabilize playback state and cursor feedback 2026-05-18 20:57:20 +02:00
Georg 4f6300042c Fix portrait image flow and drop-cap spacing 2026-05-18 03:08:23 +02:00
Georg d7bb175167 Checkpoint current UI and ink integration state 2026-05-18 02:46:02 +02:00
Georg 2c54498ee2 Document markup and improve choice tags 2026-05-17 15:52:41 +02:00
Georg e1a5d5809d Adapt book skin to detailed artwork 2026-05-16 22:06:56 +02:00
Georg f8911f6fc8 Keep live appends out of history reflow 2026-05-16 21:46:44 +02:00
Georg e368d252ad Refine line-based story scrolling 2026-05-16 21:40:36 +02:00
Georg b9ae7f71c5 Checkpoint line-grid renderer state 2026-05-16 15:57:03 +02:00
Georg fe33e4f0ab Checkpoint before line-grid scrolling refactor 2026-05-16 13:44:03 +02:00
Georg 42582352d6 Add storage-backed story history 2026-05-15 21:58:30 +02:00
Georg f2e786d5bc Add ink integration UI and media playback 2026-05-15 21:23:46 +02:00
Georg b8fe8535aa Fix story page scrolling and ellipsis spacing 2026-05-15 07:35:27 +02:00
Georg 9a6bb009f2 Fixed Ducking. Refined UI. 2026-05-14 23:18:30 +02:00
Georg 873049f7e6 Checkpoint current interactive fiction state 2026-05-14 21:17:43 +02:00
Georg c745efd1d2 Latest state before reworking with cluade 4.6. 2026-02-12 22:44:44 +00:00
Georg 0ab639fd25 Refactored modules and updated loader. 2025-04-06 18:35:04 +00:00