fix(cron): complete jobs filters#87620
Conversation
|
Codex review: needs maintainer review before merge. Reviewed May 28, 2026, 6:02 PM ET / 22:02 UTC. Summary PR surface: Source +94, Tests +119, Other +8. Total +221 across 20 files. Reproducibility: yes. from source inspection: current main omits job.id from the cron.list search haystack and has no server-side schedule-kind or last-run-status list filters. I did not run an executable current-main repro because this was a 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:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the focused cron filtering change after resolving the dirty merge state and rerunning the supplied cron service, protocol, controller, view, format, lint, and diff checks on the resolved head. Do we have a high-confidence way to reproduce the issue? Yes, from source inspection: current main omits job.id from the cron.list search haystack and has no server-side schedule-kind or last-run-status list filters. I did not run an executable current-main repro because this was a read-only review. Is this the best way to solve the issue? Yes, the proposed direction is the narrowest maintainable fix: add optional cron.list filters at the service/protocol boundary, keep shared non-table loads out of table-only filters, and preserve legacy lastStatus while preferring lastRunStatus. The only blocker is merge-state refresh, not a replacement design. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 938b2a84dd41. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +94, Tests +119, Other +8. Total +221 across 20 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 PR egg: ✨ hatched 💎 rare Mossy Test Hopper. Rarity: 💎 rare. Trait: purrs at green checks. DetailsShare on X: post this hatch
About:
|
a9b2fbe to
849f83b
Compare
66bf1c4 to
033dd48
Compare
Fixes #9455
Summary
Real behavior proof
lastRunStatusand legacylastStatusvalues./media/vdc/0668001470/workSpace/claw-campaign/openclaw-issue-9455at849f83bdf9on Linux, Nodev22.22.0, pnpm11.2.2, running repository code vianode --import tsxagainst a temporary cron store JSON.CronServicefromsrc/cron/service.ts, ranservice.listPage({ query: "tax" }), then importedgetVisibleCronJobsfromui/src/ui/controllers/cron.tsand appliedskippedandunknownlast-status filters to three UI job records.taxsearch returnedtax-digestby job ID even though its display name wasFinance digest; theskippedfilter returned both the preferredlastRunStatusjob and the legacylastStatusjob; theunknownfilter returned only the job with no last status.Supplemental checks
node scripts/run-vitest.mjs run --config test/vitest/vitest.cron.config.ts src/cron/service.list-page-sort-guards.test.ts --reporter=verbosenode scripts/run-vitest.mjs ui/src/ui/controllers/cron-filters.test.ts --reporter=verbosenode scripts/run-vitest.mjs ui/src/ui/views/cron.test.ts --reporter=verbosenode_modules/.bin/oxfmt --check src/cron/service/ops.ts src/cron/service.list-page-sort-guards.test.ts ui/src/ui/controllers/cron.ts ui/src/ui/controllers/cron-filters.test.ts ui/src/ui/views/cron.ts ui/src/ui/views/cron.test.tsnode_modules/.bin/oxlint --tsconfig config/tsconfig/oxlint.core.json src/cron/service/ops.ts src/cron/service.list-page-sort-guards.test.ts ui/src/ui/controllers/cron.ts ui/src/ui/controllers/cron-filters.test.ts ui/src/ui/views/cron.ts ui/src/ui/views/cron.test.tsgit diff --check origin/main...HEAD