f880cd3c8f
docs(ST-355): add Solo Paneel implementation spec
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:49:29 +02:00
f994219957
fix(ST-507): split server-only code helpers into lib/code-server to keep client bundle clean
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:42:55 +02:00
b71eb53fa8
feat(ST-507): show code badges on cards, lists and dialogs across the app
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:36:59 +02:00
66063f035a
feat(ST-507): add code input to Product, Pbi and Story forms
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:36:47 +02:00
9da9f6ae56
feat(ST-507): split code from title in backlog parser and seed Scrum4Me with codes
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:36:45 +02:00
16a3b139ae
feat(ST-507): persist code in product, pbi and story actions with auto-default and uniqueness
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:36:35 +02:00
8ffbc526d5
feat(ST-507): add code-helpers and CodeBadge component
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:36:33 +02:00
33d66bc7c4
feat(ST-507): add optional code fields to Product, Pbi and Story
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:36:26 +02:00
c45ba1d0c2
feat(ST-509): add description textarea to Todo create and edit cards
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:59:55 +02:00
856a051b2f
feat(ST-509): persist Todo description in create and update actions
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:59:53 +02:00
318cb1e1f9
feat(ST-509): add optional description column (max 2000 chars) to Todo
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:59:52 +02:00
af76453dc1
feat(ST-004): force M3.5 stories and tasks to not-done in seed regardless of backlog checkbox
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:53:56 +02:00
34e6334051
fix(ST-507): remount email Input on prop change to silence base-ui uncontrolled warning
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:46:53 +02:00
a1ecf096a3
fix(ST-507): trigger logout via form ref to avoid base-ui native button warning
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:42:19 +02:00
338a5edf11
fix(ST-507): wrap UserMenu role label in DropdownMenuGroup to satisfy base-ui
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:40:06 +02:00
0dc907b75c
feat(ST-507): add email input to settings and surface in user menu
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:37:51 +02:00
5ed3645ecb
feat(ST-507): persist email in updateProfileAction with Zod validation
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:37:49 +02:00
1187117e05
feat(ST-507): add optional email field to User schema
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:37:38 +02:00
e887f796c7
feat(ST-507): replace navbar roles/settings/logout with avatar user menu
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:31:21 +02:00
8a5076a5ed
feat(ST-611): add tour screenshots to public/screenshots
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:22:52 +02:00
3977b89ca7
feat(ST-611): add tour with screenshots, Solo Paneel and Sprint Board to landing page
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:04:57 +02:00
767476aa8e
docs: sync architecture doc with current codebase
...
- Add REVIEW to TaskStatus enum
- Fix stores list: remove phantom files, add solo-store and product-store
- Fix SelectionStore method names (selectPbi/selectStory)
- Add solo board route and product layout to file tree
- Mark sprint/planning as redirect, not a full page
- Update Zustand store count from 3 to 5
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:21:43 +02:00
e6e6c96261
feat: default split pane to 20%, persist position in cookie
...
Replaced localStorage with document.cookie (1-year expiry, samesite=lax).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:17:33 +02:00
34848588a8
refactor: extract BacklogCard component, use for stories and PBIs
...
Single card component with priority border, selected state, badge
and actions slots. Replaces duplicate inline card markup.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:13:03 +02:00
6671f3118c
feat: change story grid to 3 columns
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:08:22 +02:00
3a78018e31
feat: story cards match solo task card style, 4-column grid layout
...
Replaced fixed w-28 blocks with priority-border cards identical to
solo task cards. Grid layout (grid-cols-4) replaces flex-wrap.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:07:53 +02:00
9a5cc484b7
feat: center product name in navbar
...
Three-section layout (flex-1 left, center, flex-1 right) keeps
the product name truly centered regardless of sidebar content.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:02:38 +02:00
991e9c0a4b
feat: add hover tooltips to roles and product name in navbar
...
Roles show full names (e.g. Product Owner), product shows full name.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:59:36 +02:00
29ed4f2773
feat: show active product name in navbar, links to product page
...
Sub-layout sets product in Zustand store; NavBar reads it.
getAccessibleProduct wrapped with React cache to avoid double DB call.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:56:50 +02:00
bc91e3c169
fix: nav order always Producten, Sprint, Solo, Todo's on all pages
...
Sprint is dimmed when no product is active in the URL.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:51:51 +02:00
abb42a7046
feat: fix nav link order to Producten, Sprint, Solo, Todo's
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:49:25 +02:00
d684732ec8
feat: show tasks with priority and status in unassigned stories sheet
...
Tasks are always visible under each story. Click a task to expand
its description.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:49:19 +02:00
a5f81fce70
feat(ST-004): emit one task per backlog sub-bullet, not per story
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 17:39:11 +02:00
1abbd4e5e4
fix: set lastProductId cookie in proxy instead of Server Component
...
Cookies can only be written in Server Actions or Route Handlers.
Moved the write to proxy.ts where NextResponse.cookies.set is allowed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:25:17 +02:00
d27c55c7fc
fix: sprint board accessible to product members, not only owners
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:25:10 +02:00
af4a357709
fix: product backlog page accessible to members, not only owners
...
Replaced owner-only query (user_id = session.userId) with
getAccessibleProduct which also accepts product members.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:15:26 +02:00
928328b380
fix(ST-102): show products via membership on dashboard, not just owned
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 17:12:42 +02:00
f84ce23332
chore: mark ST-607, ST-612 and Definition of Done as complete
...
All M0–M6 implementation tasks are done. Build passes, all 7 API
route handlers verified present, accessibility fixes applied.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:04:49 +02:00
44e4b70af5
feat(ST-607): WCAG AA accessibility fixes
...
- PBI row: role="button", tabIndex, aria-selected, onKeyDown (Enter/Space), focus-visible ring
- PBI "+" button: aria-label with priority name
- Sprint header cancel button: aria-label="Annuleer bewerken"
- Task create cancel button: aria-label="Annuleer"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:01:34 +02:00
6615af8aa1
chore: mark M3.5 tasks ST-350–360 as done in backlog
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:58:15 +02:00
82b2a39648
chore: update ERD diagram for M3.5 schema changes
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:56:20 +02:00
9b2cf482ca
feat(ST-360): extend demo seed with claimed and unassigned solo stories
...
Adds a Solo Demo PBI under the active sprint with 4 stories:
- 3 claimed by demo user, tasks covering TO_DO / IN_PROGRESS / DONE columns
- 1 unassigned story so the sheet demo shows a claimable item
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:56:12 +02:00
95ee968f39
feat(ST-359): add Solo nav link between Producten and Todos
...
- Active on /solo and /products/[id]/solo; Producten inactive when on solo pages
- Refactored navLinks to carry explicit active boolean for custom path matching
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:56:04 +02:00
89e5164a28
feat(ST-358): add unassigned stories sheet with claim-on-click
...
- UnassignedStoriesSheet: slide-in sheet listing unassigned sprint stories
- ClaimStoryRow: form action + ClaimButton with useFormStatus pending state
- Successful claim removes story from local list and shows success toast
- Empty state: "Geen ongeclaimde stories. Lekker bezig!"
- Demo: DemoTooltip wraps Pak op button, claim button disabled
- Page now fetches stories with _count.tasks instead of just count
- claimStoryAction also revalidates /products/[id]/solo path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:55:55 +02:00
1341163e34
feat(ST-357): add task detail dialog and updateTaskPlanAction
...
- updateTaskPlanAction: requireProductWriter, Zod validation, tenant-guard, revalidatePath
- TaskDetailContent component keyed by task.id avoids setState-in-effect pattern
- Save-on-blur: "Bezig met opslaan…" → "Opgeslagen" (fades after 2s)
- DemoTooltip + readOnly for demo users; error toast on failure
- Footer link "Open in Sprint Board ↗"; updates Zustand store on save
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:55:45 +02:00
e1903bc16c
feat(ST-356): add solo Kanban board with DnD and Zustand store
...
- useSoloStore: initTasks, optimisticMove (returns prev status), rollback, updatePlan
- SoloBoard: DndContext with PointerSensor (distance:5), closestCorners, 3 columns
- SoloColumn: useDroppable per status, MD3 status-color headers, task count, empty state
- SoloTaskCard + SoloTaskCardOverlay: useDraggable (disabled for demo), priority left-border
- onDragEnd: optimisticMove → updateTaskStatusAction → rollback + toast on error
- REVIEW tasks mapped to IN_PROGRESS column
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:54:52 +02:00
90598e9378
feat(ST-004): add lars as member of Scrum4Me product
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 16:42:55 +02:00
ca631e71ec
feat(ST-355): add /solo route, cookie helper, product picker, and solo product page
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:29:31 +02:00
802aa58157
feat(ST-354): add bulk-claim button to Sprint Backlog panel header
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:26:07 +02:00
358c88a9d9
feat(ST-353): add assignee chip and claim/reassign dropdown to sprint story card
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:24:34 +02:00