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