Primary finding
Worker reports kind:'done' with agreedCount=0/degraded=false regardless of actual outcome
mediumbughigh
- apps/web/lib/review-worker.ts:156-162
- apps/web/lib/review-worker.ts:30-33
The WorkerOutcome 'done' variant promises agreedCount and degraded, but runReviewWorker always returns hardcoded 0/false because processClaimedRow does not return the bundle. This makes the outcome misleading both for the webhook log ('webhook.worker_outcome') and any downstream consumer that might rely on the counters (the retry-cron currently counts kind only, so it does not catch this). Tests only assert outcome.kind === 'done' and never inspect the counters, so the lie passes CI. This is a maintainability/correctness hazard: a future caller that uses these fields will silently get wrong data.
Recommendation
Have processClaimedRow return a small summary { agreedCount, degraded } and wire it into the 'done' return. Or remove the counter fields from the WorkerOutcome shape if they are not actually used.