fix(agents): keep cron cloud idle watchdog enabled#94445
Conversation
cd510a1 to
0d3d0fb
Compare
|
Codex review: needs maintainer review before merge. Reviewed June 21, 2026, 11:18 PM ET / 03:18 UTC. Summary PR surface: Source -4, Tests +6, Docs 0. Total +2 across 3 files. Reproducibility: yes. at source level: current main returns 0 for Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Merge only after a maintainer explicitly accepts restoring the default cloud cron idle fuse while preserving explicit timeout precedence and the local-provider opt-out. Do we have a high-confidence way to reproduce the issue? Yes at source level: current main returns 0 for Is this the best way to solve the issue? Yes, if maintainers accept the compatibility tradeoff; removing the cron-wide opt-out is narrower than adding a new config surface and keeps explicit run/provider/agent timeout precedence plus the local-provider exception. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against a1828110704f. Label changesLabel justifications:
Evidence reviewedPR surface: Source -4, Tests +6, Docs 0. Total +2 across 3 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review I updated the PR body with sanitized maintainer-reported incident evidence for the actual
I did not force a live Codex app-server stall because the incident is not safely deterministic and would disturb a running agent. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Addressed the updated ClawSweeper finding in c200249. What changed:
Compatibility note: this PR intentionally accepts the no-explicit-timeout cloud cron behavior change because the reported incident was a @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
* fix(agents): keep cron cloud idle watchdog enabled * docs: align cron idle timeout guidance
Summary
gpt-5.5main-agent cron wedge: an isolatedagent:main:cron:*run stayed inactiveWorkKind=model_callwith queued work andrecovery=nonebecause cron disabled the implicit model-idle fuse.agents.defaults.timeoutSecondsstill win over the implicit default.Reviewers should focus on whether cron-triggered Codex/remote model calls should share the same default idle guard as other embedded runs when no explicit timeout is set, and whether the local-provider exception remains narrow enough.
Linked context
Maintainer-reported installed-runtime incident on OpenClaw
2026.6.8with the Codex harness usinggpt-5.5. No public issue is linked.Real behavior proof (required for external PRs)
2026.6.8runtime for the before evidence; local source checkout for the after-patch resolver/stream proof.agents.defaults.timeoutSeconds, no main-agent timeout entry, and notimeoutSecondson the active configured provider surface.src/agents/embedded-agent-runner/run/llm-idle-timeout.tsto exerciseresolveLlmIdleTimeoutMsandstreamWithIdleTimeoutfor the incident-shaped cron Codex route.node scripts/run-vitest.mjs src/agents/embedded-agent-runner/run/llm-idle-timeout.test.tsnode scripts/run-vitest.mjs src/agents/embedded-agent-runner/run/llm-idle-timeout.test.ts src/agents/openai-transport-stream.test.ts src/llm/providers/openai-responses-shared.test.tsnode scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-test.tsbuildinfogit diff --check origin/main...HEADcodex review --base origin/main.agents/skills/autoreview/scripts/autoreview --mode local{ "agents.defaults.timeoutSeconds": null, "agents.defaults.model": { "primary": "openai/gpt-5.5", "fallbacks": ["openai/gpt-5.4"] }, "agents.list.timeoutSeconds": [], "models.providers.*.timeoutSeconds": null }gpt-5.5no-explicit-timeout route now receives the default 120s stream-idle fuse; the local-provider route remains opted out; a stalled stream is aborted bystreamWithIdleTimeoutafter the restored default fuse.0fortrigger: "cron"with no timeout configuration.Tests and validation
node scripts/run-vitest.mjs src/agents/embedded-agent-runner/run/llm-idle-timeout.test.tsnode scripts/run-vitest.mjs src/agents/embedded-agent-runner/run/llm-idle-timeout.test.ts src/agents/openai-transport-stream.test.ts src/llm/providers/openai-responses-shared.test.tsnode scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-test.tsbuildinfogit diff --check origin/main...HEADcodex review --base origin/main.agents/skills/autoreview/scripts/autoreview --mode localRegression coverage was updated in
src/agents/embedded-agent-runner/run/llm-idle-timeout.test.tsto lock down the new cron default and the retained cron local-provider opt-out.CI note: the previous failing run was on a stale merge from older
main; the branch was rebased onto currentorigin/mainand force-pushed with only the intended PR commit retained.Risk checklist
Did user-visible behavior change?
YesDid config, environment, or migration behavior change?
NoDid security, auth, secrets, network, or tool execution behavior change?
NoHighest-risk area: very slow remote/Codex cron responses with no stream progress may now abort after the default idle window unless an explicit timeout is configured.
Mitigation: existing explicit run/provider/agent timeout precedence remains unchanged, and local-provider calls continue to opt out of the implicit watchdog.
Current review state
Next action: ClawSweeper re-review and maintainer review.
Still waiting on: maintainer acceptance that restoring the default idle fuse for no-explicit-timeout cron Codex/remote model calls is the desired compatibility behavior.
Bot/reviewer comments addressed: local Codex review and autoreview reported no accepted/actionable findings; PR body now includes sanitized real incident evidence plus after-patch runtime fuse proof.
AI assistance disclosure
This PR was prepared with AI assistance. The change was reviewed against the touched resolver, its production caller path, focused regression tests, the reported installed-runtime incident shape, and the relevant embedded-run timeout behavior.