You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/skills/env-reference/SKILL.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,6 +113,7 @@ See `apps/api/.env.example` for the full list. Key variables:
113
113
-`TASK_RECONCILIATION_PROMPT_SOFT_STALL_MS` — In-flight prompt observation threshold before SAM records a non-interrupting reconciliation event (default: 1800000)
114
114
-`TASK_RECONCILIATION_PROMPT_HARD_STALL_MS` — In-flight prompt hard-stall threshold before SAM requests prompt cancellation and retries check-in later (default: 7200000)
115
115
-`TASK_RECONCILIATION_MIN_ALARM_DELAY_MS` — Minimum delay before the next reconciliation alarm can fire (default: 10000)
116
+
-`TASK_RUN_ABSOLUTE_CEILING_MS` — Absolute runaway-cost ceiling that fails even a demonstrably live task (default: 86400000 / 24h)
116
117
-`SESSION_ACTIVITY_STALE_THRESHOLD_MS` — Evidence-based fallback threshold before stale working activity can be healed to idle (default: 300000)
117
118
-`NODE_HEARTBEAT_STALE_SECONDS` — Staleness threshold for node health
118
119
-`NODE_AGENT_READY_TIMEOUT_MS` — Max wait for freshly provisioned node-agent health
reason=`Task exceeded the absolute runaway-cost ceiling of ${Math.round(absoluteCeilingMs/60000)} minutes; live-runtime tasks are bounded to prevent unbounded compute.${stepInfo}`;
Copy file name to clipboardExpand all lines: apps/www/src/content/docs/docs/reference/configuration.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -207,6 +207,7 @@ SAM loads OpenCode Zen and OpenCode Go model choices through the authenticated m
207
207
|`STUCK_TASK_MAX_CANDIDATES_PER_SWEEP`|`100`| Maximum active tasks inspected by each recovery sweep |
208
208
|`TASK_LIVENESS_MAX_ACP_SESSIONS`|`5`| Maximum task-scoped ACP sessions inspected per liveness probe |
209
209
|`TASK_LIVENESS_PROBE_TIMEOUT_MS`|`5000` (5 sec) | Per-candidate timeout for the ACP liveness probe; a timeout is inconclusive (never fails a task) |
210
+
|`TASK_RUN_ABSOLUTE_CEILING_MS`|`86400000` (24 hr) | Absolute runaway-cost ceiling; fails even a task with a demonstrably live runtime |
210
211
|`CLAUDE_CODE_COMPACTION_LOOP_DETECTOR_ENABLED`|`true`| Enable Claude Code compaction-loop shutdown from recent message evidence |
211
212
|`CLAUDE_CODE_COMPACTION_LOOP_RECENT_MESSAGE_LIMIT`|`40`| Recent task-session messages to inspect for compaction-loop evidence |
212
213
|`CLAUDE_CODE_COMPACTION_LOOP_WINDOW_MESSAGES`|`20`| Rolling recent-message window used for compaction-loop detection |
@@ -220,7 +221,7 @@ SAM loads OpenCode Zen and OpenCode Go model choices through the authenticated m
220
221
|`TASK_RECONCILIATION_PROMPT_HARD_STALL_MS`|`7200000` (2 hr) | In-flight prompt hard-stall threshold before SAM requests prompt cancellation |
221
222
|`TASK_RECONCILIATION_MIN_ALARM_DELAY_MS`|`10000` (10 sec) | Minimum delay before the next reconciliation alarm can fire |
222
223
223
-
> **Liveness-gated recovery.** Stuck-task recovery for `in_progress` tasks (including task-mode work paused at the `awaiting_followup` execution step) is gated on **task-scoped** liveness — a live workspace, a healthy node with a recent heartbeat, **and** an active task-scoped ACP session. A shared-node heartbeat alone is never sufficient. Consequently, `TASK_RUN_HARD_TIMEOUT_MS` and `TASK_RUN_MAX_EXECUTION_MS` bound the point at which a task with **no** proven live runtime is failed; a task with a demonstrably live runtime is preserved past those thresholds rather than terminated on elapsed time alone. When liveness cannot be determined (probe timeout or error), the task is left untouched (fail-safe).
224
+
> **Liveness-gated recovery.** Stuck-task recovery for `in_progress` tasks (including task-mode work paused at the `awaiting_followup` execution step) is gated on **task-scoped** liveness — a live workspace, a healthy node with a recent heartbeat, **and** an active task-scoped ACP session. A shared-node heartbeat alone is never sufficient. Consequently, `TASK_RUN_HARD_TIMEOUT_MS` and `TASK_RUN_MAX_EXECUTION_MS` bound the point at which a task with **no** proven live runtime is failed; a task with a demonstrably live runtime is preserved past those thresholds, but remains bounded by `TASK_RUN_ABSOLUTE_CEILING_MS` (24 hours by default) as a runaway-cost backstop. When liveness cannot be determined (probe timeout or error), the task is left untouched (fail-safe) until it reaches that absolute ceiling.
0 commit comments