Sprint: Jobs tabel #76

Merged
janpeter merged 8 commits from feat/sprint-94uw4mg4 into main 2026-08-03 17:49:03 +02:00
Owner

Sprint 'Jobs tabel' (PBI-16) volledig afgerond — 9 taken over 4 stories (ST-037 t/m ST-040). Kern: één canonieke actief/terminaal-split via nieuwe helper lib/job-status-groups.ts (ACTIVE_JOB_STATUSES=QUEUED/CLAIMED/RUNNING, TERMINAL=DONE/FAILED/CANCELLED/SKIPPED, allowlist-semantiek). Server-split expliciet in actions/jobs-page.ts (in-clauses i.p.v. notIn/=='DONE'); drift geconsolideerd (claude-jobs.ts gebruikt isTerminalStatus, dode export JOB_STATUS_ACTIVE verwijderd); realtime store (jobs-store.ts) verhuist nu bij élke terminale status. UI: 24u-default-tijdfilter die alléén de afgerond-kolom filtert (actieve kolom altijd 'all'), rechterkolom hernoemd naar 'Afgerond' (SplitPane-tab incl.), docs/pages/jobs.md bijgewerkt. Alle executions ALIGNED/PARTIAL via de verify-gate; afsluitende npm run verify groen (eslint + tsc --noEmit + vitest: 797 tests passed, 10 skipped). Commits: 0b00d77, 61577fd, 3626f63, 5a0a4a6, 858ea15, f30024b, e72a561, f1331a9.


Draft PR voor sprint-batch cmsde6d25004dx77r94uw4mg4 (single-session). Wordt ready-for-review zodra alle tasks DONE zijn.

Sprint 'Jobs tabel' (PBI-16) volledig afgerond — 9 taken over 4 stories (ST-037 t/m ST-040). Kern: één canonieke actief/terminaal-split via nieuwe helper lib/job-status-groups.ts (ACTIVE_JOB_STATUSES=QUEUED/CLAIMED/RUNNING, TERMINAL=DONE/FAILED/CANCELLED/SKIPPED, allowlist-semantiek). Server-split expliciet in actions/jobs-page.ts (in-clauses i.p.v. notIn/=='DONE'); drift geconsolideerd (claude-jobs.ts gebruikt isTerminalStatus, dode export JOB_STATUS_ACTIVE verwijderd); realtime store (jobs-store.ts) verhuist nu bij élke terminale status. UI: 24u-default-tijdfilter die alléén de afgerond-kolom filtert (actieve kolom altijd 'all'), rechterkolom hernoemd naar 'Afgerond' (SplitPane-tab incl.), docs/pages/jobs.md bijgewerkt. Alle executions ALIGNED/PARTIAL via de verify-gate; afsluitende npm run verify groen (eslint + tsc --noEmit + vitest: 797 tests passed, 10 skipped). Commits: 0b00d77, 61577fd, 3626f63, 5a0a4a6, 858ea15, f30024b, e72a561, f1331a9. --- *Draft PR voor sprint-batch `cmsde6d25004dx77r94uw4mg4` (single-session). Wordt ready-for-review zodra alle tasks DONE zijn.*
Voegt lib/job-status-groups.ts toe met ACTIVE/TERMINAL statussets en
isActiveStatus/isTerminalStatus. Allowlist-semantiek voor terminaal
zorgt dat nieuwe/onbekende statussen niet stilletjes als actief tellen.
Test bewijst de canonieke partitie over alle 7 ClaudeJobStatus-waarden.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Vervang de impliciete DONE/notIn-DONE-splitsing door expliciete
allowlists uit lib/job-status-groups: active = ACTIVE_JOB_STATUSES,
done = TERMINAL_JOB_STATUSES. Zo blijven onbekende/nieuwe statussen
niet stilletjes in de active-lijst hangen en is de intentie leesbaar.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De lokale TERMINAL-array in actions/claude-jobs.ts dupliceerde de
terminale statusgroep die nu centraal in lib/job-status-groups.ts leeft.
Vervang de guard door isTerminalStatus() zodat er één bron van waarheid is
en drift onmogelijk wordt. RESTARTABLE blijft lokaal (eigen semantiek).

Verwijder tevens de dode export JOB_STATUS_ACTIVE uit
components/shared/job-status.ts (nul consumers, grep-bevestigd).

Geen gedragswijziging.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De realtime-split gebruikte een harde DONE-check, waardoor FAILED/CANCELLED/
SKIPPED-jobs in de active-lijst bleven hangen. Trek gelijk met de
allowlist-semantiek van isTerminalStatus (niet-actief ⇒ terminaal), zodat de
store dezelfde split hanteert als de rest van de app. Move-logica ongewijzigd.

T-90
JobsOverview initialiseert op DEFAULT_JOBS_TIME_FILTER, dus de
default van 'all' naar '24h' zetten laat de control op 24 uur staan
en filtert de rechterkolom op 24h. Kolom-wiring volgt in latere taak.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De '24h' default zou een actieve job ouder dan 24u onterecht verbergen
in de linkerkolom. Zet leftPane expliciet op timeFilter="all"; alleen
de afgerond-kolom filtert nog op tijd.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De rechterkolom-titel en bijbehorende SplitPane-tab heetten 'Klaar', wat
botste met het 'Klaar'-label van de done-status. Kolom is een verzameling
afgeronde jobs (done/failed/cancelled/skipped), dus 'Afgerond' dekt de lading
beter. Status-labels blijven ongemoeid.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs(jobs): actualiseer split, tijdfilter en canonieke helper
All checks were successful
CI / Verify (pull_request) Successful in 2m53s
f1331a9723
Werk docs/pages/jobs.md bij naar het gedrag van deze sprint: actieve
jobs zijn QUEUED/CLAIMED/RUNNING en afgerond DONE/FAILED/CANCELLED/
SKIPPED, de linkerkolom toont altijd alles terwijl de 24u-default
tijdfilter alleen de afgerond-kolom beperkt, de kolomtitel is nu
'Afgerond' i.p.v. 'Klaar', en verwijs naar lib/job-status-groups.ts als
enige bron van de actief/terminaal-split.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
janpeter changed title from WIP: Sprint: Jobs tabel to Sprint: Jobs tabel 2026-08-03 17:49:02 +02:00
janpeter scheduled this pull request to auto merge when all checks succeed 2026-08-03 17:49:02 +02:00
janpeter referenced this pull request from a commit 2026-08-03 17:49:04 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/scrum4me-workers!76
No description provided.