t1199: Tune worker hung timeout based on task ~estimate field#1826
t1199: Tune worker hung timeout based on task ~estimate field#1826marcusquinn merged 1 commit intomainfrom
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- Add get_task_hung_timeout() to _common.sh: parses ~estimate from TODO.md, returns 2x estimate in seconds (4h cap, 30m minimum/default) - Phase 4 health check in pulse.sh now uses per-task hung timeout instead of the global SUPERVISOR_WORKER_TIMEOUT for the 'no log output' check - dispatch.sh logs the computed hung timeout at dispatch time for debugging - Supports ~Nh (hours), ~N.Nh (fractional hours), ~Nm (minutes) formats - Prevents premature kills on legitimately long tasks (t311.2, t311.3, t303) while keeping the safety net for actual hangs Examples: ~1h task -> 2h timeout, ~30m -> 1h, ~3h -> capped at 4h
5aefe98 to
6c38929
Compare
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report �[0;34m[INFO]�[0m Latest Quality Status: �[0;34m[INFO]�[0m Recent monitoring activity: 📈 Current Quality Metrics
Generated on: Wed Feb 18 23:25:37 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
|



Fixes worker hung timeout being a fixed 30m default regardless of task complexity.
Changes
_common.sh: Newget_task_hung_timeout()function — parses~estimatefrom TODO.md, returns 2x estimate (4h cap, 30m minimum/default). Supports~Nh,~N.Nh,~Nmformats.pulse.shPhase 4: Per-task hung timeout replaces globalSUPERVISOR_WORKER_TIMEOUTfor the 'no log output' check. Global timeout still applies as the absolute max runtime (Check 1).dispatch.sh: Logs computed hung timeout at dispatch time (hung_timeout_seconds=in dispatch metadata + supervisor log).Behaviour
~30m~1h~2h~3hRoot cause
t311.2, t311.3, and t303 all failed with
Worker hung (no output for ~1800s, timeout 1800s). The 30m default was too short for legitimately long tasks. This PR makes the timeout proportional to the task's declared estimate.Ref #1818