Public Access
docs: record Sprint 9 post-deploy dismiss-bug fix across all 6 running docs
Sprint 9 (commit6e386ba) shipped a working OnboardingTour but a broken dismiss path: clicking X / Skip / Esc / "Got it" did nothing. Root cause: useOnboarding().reset() was wired to the dismiss handler at App.tsx, but reset() does the inverse of dismiss — it clears the localStorage key and flips isComplete to FALSE, so the tour re-rendered, the early-return did not fire, and the dialog stayed visible. Fix: commit1562929split the dismiss and reset paths into two distinct callbacks (onComplete and onReset). User confirmed browser smoke passes. This commit updates the 6 running docs that track Sprint 9: - .agent/plan.md — S9.4.1 sub-task (post-deploy fix) added. - .agent/context.md — D9 (root cause + fix) + Q4 (Vitest?) added. - Review/sprint9-verification.md — full post-deploy fix section appended (root cause, fix, post-fix verification, lessons). - Review/handoff-ui-audit.md — Sprint 9 status banner + Last updated footer updated to reference the fix commit. - fix-ui-audit.md — T3.4.1 sub-task added under the T3.4 verification gate. - docs/HANDOFF.md — post-deploy fix paragraph added to the Sprint 9 section. All 6 docs now reflect the post-deploy reality. No code changes.
This commit is contained in:
+16
-2
@@ -160,8 +160,22 @@ Goal: bring implementation back into alignment with `Review/reviewconcensus.md`.
|
||||
### S9.4 — Verify
|
||||
|
||||
- [x] `npm run build` green (tsc 0 errors, vite 0 errors).
|
||||
- [ ] Browser smoke (8 steps) on `http://100.108.208.56:8082/` per `Review/sprint9-verification.md`.
|
||||
- [ ] No regression in Sprints 1–8 (keyboard shortcuts, error toast, 3-button vote row, WeekRangeNav, bulk pantry add).
|
||||
- [x] Browser smoke (8 steps) on `http://100.108.208.56:8082/` per `Review/sprint9-verification.md`.
|
||||
- [x] No regression in Sprints 1–8 (keyboard shortcuts, error toast, 3-button vote row, WeekRangeNav, bulk pantry add).
|
||||
|
||||
#### S9.4.1 — Post-deploy fix (2026-06-05)
|
||||
|
||||
User reported post-deploy: "The tour window looks great, but Clicking the X nor skip tour do anything. I cannot exit the tour." Build was green but the dismiss path was broken.
|
||||
|
||||
- [x] **Root cause identified** (systematic-debugging Phase 4): `useOnboarding().reset()` was wired to the dismiss handler at `App.tsx:104-109`. `reset()` does the *inverse* of dismiss — it clears the localStorage key AND flips `isComplete` to `false`. So clicking X wrote the key, but the App-level flag flipped in the wrong direction, the tour's `if (isComplete || !currentStep) return null` early-return never fired, and the dialog stayed visible.
|
||||
- [x] **Fix committed** (`1562929`): split the dismiss and reset paths into two distinct callbacks.
|
||||
- `useOnboarding` now exposes `markComplete()` (state flip to `true`) in addition to `reset()` (state flip to `false`).
|
||||
- `OnboardingTour` takes two props: `onComplete` (dismiss) and `onReset` (re-show).
|
||||
- `App.tsx` wires `onComplete → onboarding.markComplete()` and `onReset → onboarding.reset()`.
|
||||
- Cleaned up: `markComplete` no longer double-writes localStorage (the tour's `finish()` already does that).
|
||||
- [x] `npm run build` green on `docker-willester` after the fix (495.64 kB, no size change).
|
||||
- [x] User confirmed post-deploy smoke test passes (2026-06-05).
|
||||
- [x] Anchors + URL effect re-verified: 5/5 `data-tour` anchors present at `Dashboard.tsx:602`, `Pantry.tsx:185, 208`, `Recipes.tsx:131`, `ShoppingList.tsx:231`; `?reset-tour=1` effect calls `onReset()` correctly.
|
||||
|
||||
### S9.5 — Docs (all 6 running docs updated)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user