feat(orchestrator): reap stale claims via last_heartbeat_at

Dispatch loop now releases tasks whose holder has gone silent past
ROBOCO_CLAIM_HEARTBEAT_TTL_SECONDS (default 300s). Closes the
'dead container squats task forever' failure mode that the schema
hinted at but no code enforced.
This commit is contained in:
Renn F
2026-05-03 04:47:51 +02:00
parent 37bc4e58ed
commit b301020398
4 changed files with 215 additions and 0 deletions
+8
View File
@@ -305,6 +305,14 @@ class Settings(BaseSettings):
ge=60,
description="Claim heartbeat staleness threshold (seconds)",
)
claim_heartbeat_ttl_seconds: int = Field(
default=300,
ge=60,
description=(
"If an agent's last_heartbeat_at is older than this, the dispatcher"
" considers the claim dead and releases the task back to pending."
),
)
spawn_cooldown_seconds: int = Field(
default=60,
ge=1,