Commit Graph

11 Commits

Author SHA1 Message Date
q792602257 c50621eeca feat(jobs/runners): worktree prune two-phase + workspace prune queries/repo methods 2026-05-06 07:55:56 +08:00
q792602257 0111135e78 test(jobs/runners): cover CAS-lost, MarkSyncing-error, MarkFetchResult-error branches 2026-05-06 07:33:40 +08:00
q792602257 af1855b753 feat(jobs/runners): workspace fetch runner with notify dispatch on failure 2026-05-05 23:35:58 +08:00
q792602257 e361670539 feat(jobs): WebhookNotifier enqueues webhook.deliver jobs (topic whitelist + disabled short-circuit) 2026-05-05 23:26:47 +08:00
q792602257 9f290335b2 feat(jobs/handlers): webhook handler with HMAC sign + 4xx permanent / 5xx retry 2026-05-05 23:17:47 +08:00
q792602257 3aa19c8f7e fix(jobs): log repo write errors in worker.execute
Previously, write-back errors from Complete/DeadLetter/FailWithRetry
were silently dropped via underscore assignment. A transient DB
failure here would leave a job stuck (still 'running' with active
lease) until the reaper resets it, with zero observability into why.

Log each write-back error at Error level so operators can correlate
stuck jobs with DB symptoms. Code quality review of T8.
2026-05-05 23:12:43 +08:00
q792602257 1a83a5b1cf feat(jobs): worker pool with retry/dead-letter/panic-recovery 2026-05-05 19:57:23 +08:00
q792602257 f235b1be63 feat(jobs): periodic scheduler with panic-recovery and per-entry enable flag 2026-05-05 19:47:51 +08:00
q792602257 2e8135bcdf feat(jobs): postgres repository with SKIP LOCKED lease + retry/dead-letter/purge 2026-05-05 19:40:39 +08:00
q792602257 ff3f27c1dc feat(jobs): sqlc queries for jobs table 2026-05-05 16:59:03 +08:00
q792602257 215c1bb821 feat(jobs): domain types + Handler interface + Config 2026-05-05 16:52:17 +08:00