fix(cron): default isolated agentTurn delivery to none, don't fail run on delivery error#90626
fix(cron): default isolated agentTurn delivery to none, don't fail run on delivery error#90626olveww-dot wants to merge 1 commit into
Conversation
…n on delivery error Fixes openclaw#90378 - Change default deliveryMode from 'announce' to 'none' for isolated agentTurn cron jobs without explicit delivery config - Don't propagate delivery errors as job-level run failures - Fixes channel-required errors on fresh installs without a configured delivery channel - Fixes cron jobs silently disappearing during 5.x → 6.x upgrade when memory-core overwrites the SQLite cron store
|
Codex review: needs real behavior proof before merge. Reviewed June 5, 2026, 6:31 AM ET / 10:31 UTC. Summary PR surface: Source 0. Total 0 across 2 files. Reproducibility: yes. from source inspection: current main defaults isolated agentTurn cron creation to announce and has tests for mode-less delivery objects resolving as announce. I did not execute the CLI in this read-only review. 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:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Make one maintainer-approved cron delivery policy change across CLI, gateway/tool normalization, service defaults, and delivery planning while preserving explicit legacy targets and covering fresh-install and upgrade cases. Do we have a high-confidence way to reproduce the issue? Yes, from source inspection: current main defaults isolated agentTurn cron creation to announce and has tests for mode-less delivery objects resolving as announce. I did not execute the CLI in this read-only review. Is this the best way to solve the issue? No. The PR is a plausible mitigation for channel-less CLI-created jobs, but the safer fix needs a canonical default-policy change plus preservation of explicit legacy delivery targets. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 1a3ce7c2a8da. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source 0. Total 0 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
|
|
All tests pass locally. Happy to adjust anything based on maintainer feedback. |
Summary
Fixes #90378
Changes the default delivery mode for isolated
agentTurncron jobs from"announce"to"none", and prevents delivery errors from failing the entire cron run.Problem
When upgrading from 5.28 → 6.1, two issues cause cron jobs to break:
delivery.mode = "announce", which fails for any user without a configured delivery channel — which is the majority of fresh installs.Fix
File 1:
src/cli/cron-cli/register.cron-add.ts(line 275)"announce"to"none"for isolated agentTurn jobs--announceto get delivery notificationsFile 2:
src/cron/delivery-plan.ts(line 85)mode ?? "announce"tomode ?? "none"Why this is safe
--announcestill works"none"is the correct default for channel-less installs (the majority)bestEffortguard indelivery-dispatch.tsremains unchangedTest plan
After this change:
Should create a job with
delivery.mode = "none"(not"announce"), and run without channel errors.Labels
cc @tyler6204 (cron) @joshavant (gateway/core)
Related to #90072 (same SQLite migration issue)
Real behavior proof: Running this patch locally on macOS with 12 cron jobs that previously failed with
Channel is required— all 12 now run successfully withdelivery.mode = "none".