fix(issue-18): default ack timeout T = 180 s

In the v4.5.0 review round grok read the brief and published `started`
70 s after the injection; with T = 60 the wrapper had already closed the
job as agent_blocked and refused its later PASS. T bounds delivery, not
work, so a generous default costs nothing when the agent answers fast.
Code, docs and the CLI snapshot updated together.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff
This commit is contained in:
GodopuandClaude Fable 5.1 committed 2026-09-13 20:17:51 +09:00
1 parent d09c1627ce
commit 77f2829b8e
10 files changed
+15 -13

No files matched your search

+4 -2
View File
@@ -52,10 +52,12 @@ def generate_job_id(bits: int = 32) -> str:
# heartbeats (K x N seconds since the last event) as unresponsive; `started`
# must arrive within T seconds of the prompt injection. K x N with these
# defaults equals the historical 120 s idle timeout, so a caller that never
# asked for the contract sees the same idle window as before.
# asked for the contract sees the same idle window as before. T is generous:
# a real agent reads the brief and reasons before it runs the start command
# (grok took ~70 s in the v4.5.0 review round), and T only bounds delivery.
DEFAULT_HEARTBEAT_SEC = 30
DEFAULT_HEARTBEAT_MISSES = 4
DEFAULT_ACK_TIMEOUT_SEC = 60
DEFAULT_ACK_TIMEOUT_SEC = 180
def liveness_window(heartbeat_sec: int, heartbeat_misses: int) -> int: