Scrum4Me/actions
Madhura68 d7d11124e3 feat(PBI-79): sprint-switch auto-select PBI/story + user-settings persist
Bij sprint-switch wordt de sprint-content server-side opgevraagd. Wanneer
de sprint precies één PBI (en die PBI exact één story binnen de sprint)
heeft, worden PBI en story automatisch geselecteerd. Alle drie keuzes
(sprint, pbi, story) worden atomair in user-settings opgeslagen zodat ze
cross-device blijven hangen.

- lib/user-settings.ts: layout krijgt nullable activePbis +
  activeStories per product.
- lib/active-sprint.ts: setActiveSelectionInSettings schrijft de drie
  keys atomair + notify pg_notify.
- actions/active-sprint.ts: switchActiveSprintAction(productId, sprintId)
  doet de server-side auto-select-resolutie (single PBI → single story)
  en returnt { sprintId, pbiId, storyId }.
- components/shared/sprint-switcher.tsx: handleSwitchSprint roept de
  nieuwe action aan en synchroniseert de workspace-store gelijk zodat
  de UI geen flash krijgt voor de SSR-refresh.
- components/backlog/active-selection-hydrator.tsx (nieuw): client-side
  effect dat user-settings.activePbis/activeStories naar workspace-store
  spiegelt; wint van de localStorage hint-restore.
- app/(app)/products/[id]/page.tsx: ActiveSelectionHydrator gemount
  binnen BacklogHydrationWrapper.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 18:13:20 +02:00
..
admin feat(T-572): map SKIPPED in lib/job-status + alle terminal-checks 2026-05-05 23:10:14 +02:00
active-product.ts feat(M9): active product backlog — persistent active PB, NavBar splits, sprint card styling (#10) 2026-04-27 20:25:13 +02:00
active-sprint.ts feat(PBI-79): sprint-switch auto-select PBI/story + user-settings persist 2026-05-11 18:13:20 +02:00
api-tokens.ts feat(rate-limit): per-user mutation-rate-limiting (v1-readiness #3) 2026-05-04 13:48:59 +02:00
auth.ts fix: admin-navigatie zichtbaar voor ADMIN-rol gebruikers 2026-05-05 20:46:27 +02:00
claude-jobs.ts feat(ST-006): voeg restartClaudeJobAction toe aan actions/claude-jobs.ts (#174) 2026-05-09 13:59:06 +02:00
ideas.ts feat(PBI-67): model + mode-selectie per ClaudeJob-kind (#169) 2026-05-08 11:20:10 +02:00
jobs-page.ts fix(PBI-59): jobs sorted newest-first, unified on created_at (#157) 2026-05-07 20:58:27 +02:00
pairing.ts M10: Password-loze inlog via QR-pairing (ST-1001..ST-1008) (#12) 2026-04-28 00:01:04 +02:00
pbis.ts feat(rate-limit): per-user mutation-rate-limiting (v1-readiness #3) 2026-05-04 13:48:59 +02:00
products.ts PBI-50: SPRINT_IMPLEMENTATION single-session sprint runner (Scrum4Me-side) (#139) 2026-05-07 13:05:02 +02:00
profile.ts feat(ST-507): persist email in updateProfileAction with Zod validation 2026-04-26 19:37:49 +02:00
push.ts Sprint: pbi-55 (#156) 2026-05-07 21:46:01 +02:00
questions.ts fix(m12): user can answer idea-questions — inline + bell support 2026-05-05 13:05:39 +02:00
settings.ts ST-1240: Verwijder backend todo-code (server actions + API route) (#135) 2026-05-06 12:24:48 +02:00
sprint-draft.ts feat(PBI-79/ST-1337): state A′ UI — metadata dialog + sticky banner + PbiList ombouw 2026-05-11 16:48:51 +02:00
sprint-runs.ts feat(PBI-67): model + mode-selectie per ClaudeJob-kind (#169) 2026-05-08 11:20:10 +02:00
sprints.ts feat(PBI-79/ST-1341+ST-1342): SprintEditDialog metadata-edit + multi-OPEN sprints 2026-05-11 17:09:58 +02:00
stories.ts feat(PBI-63): meerdere sprints per product + EXCLUDED + sprint-switcher (#161) 2026-05-08 00:15:04 +02:00
tasks.ts PBI-46: Sprint-niveau jobflow met cascade-FAIL (F1/F2/F4 Scrum4Me) (#136) 2026-05-06 16:43:57 +02:00
user-questions.ts feat(PBI-67): model + mode-selectie per ClaudeJob-kind (#169) 2026-05-08 11:20:10 +02:00
user-settings.ts feat(PBI-76): user-settings DB-store infrastructure (Phase 0) (#185) 2026-05-10 12:44:32 +02:00