M13: Claude job queue — 'Voer uit'-knop + worker presence (ST-1111) (#18)
* feat(ST-1111.1): add ClaudeJob model and state-machine enum Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.2): add ClaudeJob status API mappers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.3): add enqueue/cancel ClaudeJob server actions with idempotency + NOTIFY Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.4): forward ClaudeJob events on solo SSE stream + initial state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.6): add 'Voer uit' + cancel buttons to task detail dialog Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.7): add job status pill with spinner on solo task cards Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(ST-1111.8): cover job-status mappers and enqueue/cancel actions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(ST-1111.9): document Claude job queue architecture and agent flow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.10a): add ClaudeWorker presence model Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.10c): forward worker presence events on solo SSE + initial count Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ST-1111.10d): show worker presence indicator and gate 'Voer uit' on connected workers 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
1cb5772edd
commit
73087e9705
18 changed files with 921 additions and 27 deletions
21
components/shared/job-status.ts
Normal file
21
components/shared/job-status.ts
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import type { ClaudeJobStatusApi } from '@/lib/job-status'
|
||||
|
||||
export const JOB_STATUS_LABELS: Record<ClaudeJobStatusApi, string> = {
|
||||
queued: 'Wacht…',
|
||||
claimed: 'Geclaimd…',
|
||||
running: 'Bezig…',
|
||||
done: 'Klaar',
|
||||
failed: 'Mislukt',
|
||||
cancelled: 'Geannuleerd',
|
||||
}
|
||||
|
||||
export const JOB_STATUS_COLORS: Record<ClaudeJobStatusApi, string> = {
|
||||
queued: 'bg-status-todo/15 text-status-todo border-status-todo/30',
|
||||
claimed: 'bg-status-in-progress/15 text-status-in-progress border-status-in-progress/30',
|
||||
running: 'bg-status-in-progress/15 text-status-in-progress border-status-in-progress/30',
|
||||
done: 'bg-status-done/15 text-status-done border-status-done/30',
|
||||
failed: 'bg-status-blocked/15 text-status-blocked border-status-blocked/30',
|
||||
cancelled: 'bg-muted text-muted-foreground border-border',
|
||||
}
|
||||
|
||||
export const JOB_STATUS_ACTIVE = new Set<ClaudeJobStatusApi>(['queued', 'claimed', 'running'])
|
||||
Loading…
Add table
Add a link
Reference in a new issue