fix(tasks): recover terminal lost cron rows#75036
Conversation
|
Thanks for the contribution. I reviewed the branch, and this PR is not a good landing base for OpenClaw. Close as unmergeable cleanup: the intended task-registry fix is useful, but the latest branch head now carries a 65-file, 20k-addition cross-repo diff that is unrelated to terminal lost cron recovery. So I’m closing this PR rather than keeping an unmergeable branch open. A new narrow PR that carries only the useful part is welcome. Review detailsBest possible solution: Replace this with a narrow task-registry PR that keeps only the terminal lost cron recovery, focused regression tests, and required changelog entry. Do we have a high-confidence way to reproduce the issue? Yes, source-level. A terminal Is this the best way to solve the issue? No as submitted. The core task-registry approach is narrow, but the current branch is not the best merge vehicle because it bundles unrelated generated and formatting changes. Security review: Security review needs attention: Needs attention because the latest diff includes a large unexplained generated browser runtime asset unrelated to task recovery.
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 56eb23dda4dd. |
2e8f157 to
712bad0
Compare
712bad0 to
c598295
Compare
c598295 to
726b54b
Compare
726b54b to
c7c4970
Compare
c7c4970 to
4574ac8
Compare
4574ac8 to
2af5f84
Compare
2af5f84 to
137187c
Compare
|
ClawSweeper applied the proposed close for this PR.
|
Summary
Related #63196
Related #72884
Related #68191
Real behavior proof
38c58fc92115b830433ae5f6962d5a400ccbc48f, Nodev24.5.0, pnpm11.0.8. The current source CLI entrypoint from this checkout was run against an isolated temporaryOPENCLAW_HOMEandOPENCLAW_CONFIG_PATH; it did not touch the live user registry.runtime: "cron"status: "lost"error: "backing session missing"runId: "cron:cron-proof-terminal-lost:<startedAt>"action: "finished",status: "ok",runAtMs: <startedAt>, andsummary: "proof recovered from durable cron run log"{ "runtime": "cron", "sourceId": "cron-proof-terminal-lost", "status": "lost", "error": "backing session missing", "runId": "cron:cron-proof-terminal-lost:1778567791974" }{ "mode": "apply", "maintenance": { "tasks": { "reconciled": 0, "recovered": 1, "cleanupStamped": 0, "pruned": 0 } }, "tasks": { "total": 1, "terminal": 1, "failures": 0, "byStatus": { "succeeded": 1, "lost": 0 }, "byRuntime": { "cron": 1 } } }tasks list --jsonshowed the same task recovered tosucceededand the stale backing-session error was gone:{ "runtime": "cron", "sourceId": "cron-proof-terminal-lost", "status": "succeeded", "terminalSummary": "proof recovered from durable cron run log" }tasks maintenance --applyagainst the live user task registry; the real command was run against a seeded isolated registry only.Test plan
node scripts/test-projects.mjs src/tasks/task-registry.test.ts src/tasks/task-registry.maintenance.issue-60299.test.tsgit diff --check