The endpoint used to write the client-supplied step verbatim, so a stale or replayed request with tutorial_step=0 against any later-stage viewer would regress the persisted state to 0. NextSceneSwitcher routes step==0 to AreaSelect section 0, which has no chapter data — the client LINQ-Single() crashes on next /load/index, bricking the viewer. Math.Max-preserve matches the 31→41 pattern in GiftController.TutorialGiftReceive. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2.2 KiB
2.2 KiB