Problem
OpenCode-backed runs can finish main execution but still fail during self-review because the runner cancels review too early.
Root Cause
runSelfReview() uses a hardcoded 2 minute timeout even when the OpenCode backend itself allows much longer request durations.
Impact
Tasks can appear to regress in the self-review phase despite a healthy OpenCode session.
Proposed Fix
Use a longer OpenCode-specific self-review timeout while keeping the shorter timeout for other backends.
Add regression tests for backend-specific timeout selection.
Problem
OpenCode-backed runs can finish main execution but still fail during self-review because the runner cancels review too early.
Root Cause
runSelfReview()uses a hardcoded 2 minute timeout even when the OpenCode backend itself allows much longer request durations.Impact
Tasks can appear to regress in the self-review phase despite a healthy OpenCode session.
Proposed Fix
Use a longer OpenCode-specific self-review timeout while keeping the shorter timeout for other backends.
Add regression tests for backend-specific timeout selection.