- T-856: activeRequestId-guard zat al in store.ts uit Story 1; bevestigd door de race-safety test (in-flight ensurePbiLoaded mag niet overschrijven). - T-857: restore-hint flow toegevoegd in setActiveProduct/setActivePbi/ setActiveStory. Async chain: await ensureXxxLoaded → guard check → readHints → valideer hint via entities.byId → setActiveYyy(hint). Geen setTimeout-trick — chain is alleen await-based. - T-858: writeProductHint/writePbiHint/writeStoryHint/writeTaskHint aangeroepen direct na set(...) zodat de hint-persistentie altijd consistent is met de in-store selectie. - T-859: nieuwe components/backlog/url-task-sync.tsx — leest ?editTask=<id> uit useSearchParams, schrijft de hint en roept setActiveTask aan zodat de URL wint boven een eerder gepersisteerde task-hint. Gemount in beide product-pages (desktop + mobile) binnen BacklogHydrationWrapper. - T-860: 6 nieuwe vitest-cases — 4 voor hint-persist per setter, 2 voor de restore-flow chain (hint die niet in entities zit wordt genegeerd; hint die wel in entities zit wordt toegepast). Bestaande race-safety test blijft groen. Verify: lint+typecheck clean, 642/642 tests groen. Refs: PBI-74, ST-1321, T-856..T-860 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| product-workspace | ||
| backlog-store.ts | ||
| debug-store.ts | ||
| idea-store.ts | ||
| jobs-store.ts | ||
| notifications-store.ts | ||
| planner-store.ts | ||
| product-store.ts | ||
| products-store.ts | ||
| selection-store.ts | ||
| solo-store.ts | ||
| sprint-store.ts | ||