De server-route stuurt JobPayload[] (met `job_id`), maar de client deed
`initJobs(jobs, ...)` waardoor alle entries in activeJobs `id: undefined`
kregen — wat React-key warnings opleverde:
Each child in a list should have a unique "key" prop.
Fix: SSE jobs_initial niet meer als overwrite gebruiken; SSR-fetch heeft
de volledige JobWithRelations al in de store gezet. We reconcileren nu
per job met upsertJob (status/branch/error/summary updaten van bekende
jobs, onbekende jobs als partials toevoegen — zelfde gedrag als gewone
'message' SSE events).
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(PBI-58): Vitest-tests voor SoloTaskCard veldmapping en 4-regels layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): server action fetchJobsPageData voor jobs-pagina
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): SSE-route /api/realtime/jobs voor user-scoped job-events
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): JobCard component voor jobs-pagina
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): JobDetailPane component voor jobs-pagina
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): API route GET /api/jobs/[id]/sub-tasks voor sprint task executions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): SprintSubTasksPane component voor jobs-pagina
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): Zustand store useJobsStore voor jobs-pagina
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): useJobsRealtime hook met SSE-verbinding en store-updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): JobsBoard 3-kolom SplitPane client component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): /jobs server page met JobsBoard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(PBI-59): Jobs nav-link toevoegen aan NavBar
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>