Sprint: rerun jobs (#176)
* feat(PBI-jobs): voeg isDemo-prop door aan JobsBoard en JobDetailPane Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(PBI-jobs): voeg 'Opnieuw starten'-knop toe aan JobDetailPane Toont een restart-knop voor jobs met status FAILED, CANCELLED of SKIPPED. Gebruikt useTransition voor loading-state en DemoTooltip voor demo-modus. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(PBI-jobs): voeg component-test toe voor JobDetailPane restart-knop Test: knop zichtbaar voor FAILED, verborgen voor DONE, aanroep met juist id, disabled in demo-modus. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(PBI-jobs): voeg F-14 restart-acceptatiecriteria toe aan functional.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
71319e629d
commit
6756450131
5 changed files with 135 additions and 4 deletions
|
|
@ -522,6 +522,30 @@ De app is deployable op Vercel + Neon PostgreSQL en lokaal draaibaar met een Neo
|
|||
|
||||
---
|
||||
|
||||
### F-14: Job-queue inzicht en beheer (`/jobs`)
|
||||
|
||||
**Prioriteit:** v1 — Operationele controle
|
||||
**Persona:** Lars
|
||||
|
||||
**Omschrijving:**
|
||||
De `/jobs`-pagina geeft een overzicht van alle `ClaudeJob`-records voor het actieve product. Vanuit de `JobDetailPane` kan de gebruiker een mislukte, geannuleerde of overgeslagen job opnieuw in de wachtrij zetten.
|
||||
|
||||
**Acceptatiecriteria:**
|
||||
|
||||
#### Mislukte job opnieuw starten
|
||||
|
||||
- [ ] Een `ClaudeJob` in status `FAILED`, `CANCELLED` of `SKIPPED` toont een "Opnieuw starten"-knop in de `JobDetailPane`.
|
||||
- [ ] De knop reset de bestaande job (geen nieuwe job aanmaken): `status → QUEUED`, `retry_count + 1`, alle run-velden gecleared.
|
||||
- [ ] Bij `SPRINT_IMPLEMENTATION`-jobs worden alle bijbehorende `SprintTaskExecution`-rows in dezelfde transactie teruggezet naar `PENDING`.
|
||||
- [ ] Tijdens de server-action is de knop disabled (loading-state). De UI updatet via SSE zonder handmatige refresh.
|
||||
- [ ] Demo-sessies zien een `DemoTooltip` op de knop en kunnen niet restarten (drie-laagse policy: knop disabled + server action `session.isDemo`-check + HTTP 403).
|
||||
|
||||
**Randgevallen:**
|
||||
- Job is ondertussen al door een andere actie opnieuw gestart (race condition) → server-action controleert de huidige status vóór de update; als de status niet meer `FAILED/CANCELLED/SKIPPED` is, retourneert de action een foutmelding.
|
||||
- Demo-token probeert via directe API-aanroep te restarten → 403 Forbidden.
|
||||
|
||||
---
|
||||
|
||||
## Navigatiestructuur
|
||||
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue