fix(cron): treat isolated setup phases as progress#93914
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 9, 2026, 9:04 AM ET / 13:04 UTC. Summary PR surface: Source -12, Tests +158. Total +146 across 2 files. Reproducibility: yes. Source inspection shows current main still routes isolated cron start and phase updates into the watchdog, maps setup phases to pre_execution, and only clears the guard for execution-stage progress or firstModelCallStarted; I did not run a live scheduled cron repro in this read-only review. Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review findings
Review detailsBest possible solution: Use the watchdog-layer fix, keep runner_entered-only starts under the short guard, fix the unused stage lookup, and require either redacted live scheduled-cron proof or an explicit maintainer proof override before merge. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows current main still routes isolated cron start and phase updates into the watchdog, maps setup phases to pre_execution, and only clears the guard for execution-stage progress or firstModelCallStarted; I did not run a live scheduled cron repro in this read-only review. Is this the best way to solve the issue? Mostly yes in direction, but not merge-ready as written. The watchdog layer is the right boundary and the latest commit preserves the runner_entered guard, but the patch must use the stage lookup so type/lint pass and still needs real scheduled-cron proof or an explicit proof override. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 124119a8985e. Label changesLabel justifications:
Evidence reviewedPR surface: Source -12, Tests +158. Total +146 across 2 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
Review history (2 earlier review cycles) |
|
Addressed the current review blocker around What changed in
Validation after the narrower fix: Additional checks: @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
This pull request has been automatically marked as stale due to inactivity. |
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: fix(cron): treat isolated setup phases as progress This is item 1/1 in the current shard. Shard 3/4. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
Summary
model_resolution,auth,context_engine, fallbackruntime_plugins) under the configured job timeout instead of the hard-coded pre-execution watchdog.Reviewers should focus on whether the watchdog should classify any known phase as progress after runner start, and whether the updated regression expectations match the intended timeout contract.
Linked context
Closes #93912
Related #93530
Related #93867
Requested by an operator trying to decide whether isolated cron jobs are safe to run again.
Real behavior proof (required for external PRs)
agentTurnjobs can be aborted by the 60s pre-execution watchdog while setup/context phases continue to report progress.node scripts/run-vitest.mjs src/cron/service/timer.regression.test.tsTests and validation
Commands run:
corepack pnpm install --frozen-lockfilenode scripts/run-vitest.mjs src/cron/service/timer.regression.test.tscorepack pnpm exec oxfmt --check --threads=1 src/cron/service/agent-watchdog.ts src/cron/service/timer.regression.test.tsgit diff --checkRegression coverage added/updated:
stalled before execution startfrom the pre-execution watchdog.model_resolution,auth,context_engine): stays alive past 60s and eventually hits the configured job timeout.before_agent_reply: no longer re-arms the 60s pre-execution watchdog.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: cron isolated-agent timeout behavior.
Risk mitigation: the pre-execution watchdog still protects the no-progress case; known phase progress now uses the existing configured job timeout, and the touched behavior is covered in
src/cron/service/timer.regression.test.ts.Current review state
Next action: maintainer review and CI.
Still waiting on: maintainer decision on whether focused regression proof is enough or whether a live cron repro should be attached before merge.
No bot or reviewer comments addressed yet.