GPT-5 finding
All errors treated as transient: isTransientError always returns true, causing unnecessary retries and delayed terminalization
- apps/web/lib/review-worker.ts
The function intends to classify retryable errors (429, 5xx, network/timeouts) but ends with an unconditional return true. As a result, every failure is treated as transient. In runReviewWorker, retryable=true schedules retries until MAX_PROCESSING_ATTEMPTS, meaning permanent 4xx or logic errors won't be terminally failed immediately, causing repeated work, cost, and latency before terminalization.
Recommendation
Change isTransientError to return false by default and only return true for known transient signals. For example, end with `return false;` instead of `return true;`. Consider adding explicit checks for non-retryable 4xx (other than 429) if needed.