feat(T-572): map SKIPPED in lib/job-status + alle terminal-checks
- lib/job-status.ts: SKIPPED ↔ 'skipped' mapping in beide richtingen - components/shared/job-status.ts: label "Overgeslagen" + neutrale italic styling - actions/admin/jobs.ts: cancel-guard erkent SKIPPED als eindstatus - app/api/cron/cleanup-agent-artifacts: SKIPPED ook opruimen na 7d - lib/insights/agent-throughput: SKIPPED telt mee als terminal ACTIVE_JOB_STATUSES bewust ongewijzigd — SKIPPED is afgerond. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
fc2f819645
commit
deb70a9e20
8 changed files with 497 additions and 6 deletions
|
|
@ -59,7 +59,7 @@ export async function getJobsPerDay(
|
|||
SELECT
|
||||
COUNT(*) FILTER (WHERE DATE(created_at) = CURRENT_DATE) AS today_count,
|
||||
COUNT(*) FILTER (WHERE status = 'DONE' AND created_at > NOW() - INTERVAL '7 days') AS done_7d,
|
||||
COUNT(*) FILTER (WHERE status IN ('DONE','FAILED','CANCELLED') AND created_at > NOW() - INTERVAL '7 days') AS terminal_7d,
|
||||
COUNT(*) FILTER (WHERE status IN ('DONE','FAILED','CANCELLED','SKIPPED') AND created_at > NOW() - INTERVAL '7 days') AS terminal_7d,
|
||||
AVG(EXTRACT(EPOCH FROM (finished_at - claimed_at))) FILTER (WHERE status = 'DONE' AND created_at > NOW() - INTERVAL '7 days') AS avg_seconds
|
||||
FROM claude_jobs
|
||||
WHERE user_id = ${userId}
|
||||
|
|
@ -69,7 +69,7 @@ export async function getJobsPerDay(
|
|||
SELECT
|
||||
COUNT(*) FILTER (WHERE DATE(created_at) = CURRENT_DATE) AS today_count,
|
||||
COUNT(*) FILTER (WHERE status = 'DONE' AND created_at > NOW() - INTERVAL '7 days') AS done_7d,
|
||||
COUNT(*) FILTER (WHERE status IN ('DONE','FAILED','CANCELLED') AND created_at > NOW() - INTERVAL '7 days') AS terminal_7d,
|
||||
COUNT(*) FILTER (WHERE status IN ('DONE','FAILED','CANCELLED','SKIPPED') AND created_at > NOW() - INTERVAL '7 days') AS terminal_7d,
|
||||
AVG(EXTRACT(EPOCH FROM (finished_at - claimed_at))) FILTER (WHERE status = 'DONE' AND created_at > NOW() - INTERVAL '7 days') AS avg_seconds
|
||||
FROM claude_jobs
|
||||
WHERE user_id = ${userId}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ const JOB_DB_TO_API = {
|
|||
DONE: 'done',
|
||||
FAILED: 'failed',
|
||||
CANCELLED: 'cancelled',
|
||||
SKIPPED: 'skipped',
|
||||
} as const satisfies Record<ClaudeJobStatus, string>
|
||||
|
||||
const JOB_API_TO_DB: Record<string, ClaudeJobStatus> = {
|
||||
|
|
@ -16,6 +17,7 @@ const JOB_API_TO_DB: Record<string, ClaudeJobStatus> = {
|
|||
done: 'DONE',
|
||||
failed: 'FAILED',
|
||||
cancelled: 'CANCELLED',
|
||||
skipped: 'SKIPPED',
|
||||
}
|
||||
|
||||
export type ClaudeJobStatusApi = typeof JOB_DB_TO_API[ClaudeJobStatus]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue