freezmo/components/homework
Martin Dvorak c662fb11f7 Lock the wizard mode switch while a run is generating
Reported: during a loading screen (freezing a deck) the Study deck /
Make my homework switch stayed live, so the run could be swapped out
mid-flight; a request that finished afterwards could even save a deck
the user never saw and navigate them into it.

- New lib/wizard-busy.ts: a tiny store both wizards publish to while
  phase === 'loading' (UploadScreen) or view.kind === 'loading'
  (HomeworkScreen); WizardModeSwitch hides itself while busy.
- Both wizards abort the in-flight request on unmount, so leaving via
  the header logo or the Back gesture stops the run instead of letting
  it finish invisibly and save/navigate later.
- Deck Cancel keeps its long-standing behaviour (wizard + cancelled
  notice + Retry), matching the freeze-loading suite.

Verified: wizard suite 92 checks (mode switch hidden during deck and
homework runs, it returns after Cancel, and a delayed reply after
leaving mid-run saves nothing and navigates nowhere) plus mobile
134/134 (also de-flaked the sheet's Escape close by waiting for
detach), regression 74/74, declutter 116/116, animation 8/8, native
35/35, i18n 25/25, phase1 38/38, phase2 43/43, phase3 20/20,
freeze-loading 6/6. Lint + build clean. SW freezmo-v29.
2026-10-10 17:47:05 +00:00
..
CopyButton.tsx Add “Make my homework”, and finish the mobile polish pass 2026-10-08 18:30:33 +00:00
FollowUpBar.tsx Phase 3: Check my work, follow-ups and turn-into-deck 2026-10-10 14:36:04 +00:00
HomeworkCheckResult.tsx Phase 3: Check my work, follow-ups and turn-into-deck 2026-10-10 14:36:04 +00:00
HomeworkGuide.tsx Phase 3: Check my work, follow-ups and turn-into-deck 2026-10-10 14:36:04 +00:00
HomeworkHistory.tsx Add “Make my homework”, and finish the mobile polish pass 2026-10-08 18:30:33 +00:00
HomeworkInput.tsx Phase 3: Check my work, follow-ups and turn-into-deck 2026-10-10 14:36:04 +00:00
HomeworkLoading.tsx Add “Make my homework”, and finish the mobile polish pass 2026-10-08 18:30:33 +00:00
HomeworkResult.tsx Phase 3: Check my work, follow-ups and turn-into-deck 2026-10-10 14:36:04 +00:00
HomeworkScreen.tsx Lock the wizard mode switch while a run is generating 2026-10-10 17:47:05 +00:00