• Two real findings from today's live self-hosting run, surfaced while diagnosing why
    bfd3ee82/71868db6 were blocked:
    
    1. trigger_org_node/trigger_org_node_structured use a fixed wall-clock
       subprocess.run(timeout=...) -- a long-running-but-genuinely-progressing agent call
       gets killed just for taking longer than a guessed constant (300s), which is exactly
       what happened to bfd3ee82's Validator planning call. Per an already-established
       (but never actually implemented) decision: an agent call should never be judged
       "stuck" by total duration alone, only by an extended period with no activity AND no
       error. New requirements doc:
       docs/todo/agent-call-liveness-not-fixed-duration-timeout-requirements.md.
    
    2. task_execution.py::_mark_blocked's catch-all dumps anything outside a small
       exception whitelist into blocked_reason='execution_error' -- including
       ConcurrencyLimitReachedError, which isn't an error at all, just normal backpressure.
       Boss Agent needs the system to emit distinct, meaningful reasons at the point of
       failure, not reverse-engineer root cause from a generic bucket -- added as FR-7 to
       the Boss Agent doc.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    bboonnee authored
     
    Browse File »