Tak Hoffman
f6c2e99f5d
Cron: preserve due jobs after manual runs ( #23994 )
2026-02-22 19:02:05 -06:00
Tak Hoffman
211ab9e4f6
Cron: persist manual run marker before unlock ( #23993 )
...
* Cron: persist manual run marker before unlock
* Cron tests: relax wakeMode now microtask wait after run lock persist
2026-02-22 18:39:37 -06:00
Tak Hoffman
3efe63d1ad
Cron: respect aborts in main wake-now retries ( #23967 )
...
* Cron: respect aborts in main wake-now retries
* Changelog: add main-session cron abort retry fix note
* Cron tests: format post-rebase conflict resolution
2026-02-22 17:19:27 -06:00
Tak Hoffman
73e5bb7635
Cron: apply timeout to startup catch-up runs ( #23966 )
...
* Cron: apply timeout to startup catch-up runs
* Changelog: add cron startup timeout catch-up note
2026-02-22 17:04:30 -06:00
Tak Hoffman
556af3f08b
fix(cron): cancel timed-out runs before side effects (openclaw#22411) thanks @Takhoffman
...
Verified:
- pnpm check
- pnpm vitest run src/memory/qmd-manager.test.ts src/cron/service.issue-regressions.test.ts src/cron/isolated-agent.delivers-response-has-heartbeat-ok-but-includes.test.ts --maxWorkers=1
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-22 15:45:27 -06:00
Peter Steinberger
5d90e31807
refactor(cron): share timed job-execution helper
2026-02-22 20:18:20 +00:00
Peter Steinberger
7e83e7b3a7
fix(cron): narrow manual run execution state
2026-02-22 20:19:23 +01:00
Peter Steinberger
9cf445e37c
fix(cron): restore interval cadence after restart
2026-02-22 20:19:23 +01:00
Peter Steinberger
aa4c250eb8
fix(cron): split run and delivery status tracking
2026-02-22 20:19:23 +01:00
Peter Steinberger
c3bb723673
fix(cron): enforce timeout for manual cron runs
2026-02-22 20:19:23 +01:00
Peter Steinberger
8bf3c37c6c
fix(cron): keep watchdog timer armed during ticks
2026-02-22 20:19:23 +01:00
Peter Steinberger
5db1ee4ec6
fix(cron): keep manual runs non-blocking
2026-02-22 20:19:22 +01:00
Peter Steinberger
34ea33f057
refactor: dedupe core config and runtime helpers
2026-02-22 17:11:54 +00:00
Frank Yang
1051f42f96
fix(stability): patch regex retries and timeout abort handling
2026-02-22 10:59:34 +01:00
Vignesh Natarajan
961bde27fe
Cron: guard missing expr in schedule parsing
2026-02-21 20:18:11 -08:00
Vignesh Natarajan
2830dafbe9
Cron: keep list/status responsive during startup catch-up
2026-02-21 19:13:04 -08:00
Simone Macario
09d5f508b1
fix(cron): persist delivered flag in job state to surface delivery failures (openclaw#19174) thanks @simonemacario
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: simonemacario <2116609+simonemacario@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-21 12:47:29 -06:00
Tak Hoffman
7417c36268
fix(cron): honor maxConcurrentRuns in timer loop (openclaw#22413) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini (failed on unrelated baseline test: src/memory/qmd-manager.test.ts > throws when sqlite index is busy)
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-20 22:31:58 -06:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
Peter Steinberger
6dcc052bb4
fix: stabilize model catalog and pi discovery auth storage compatibility
2026-02-18 02:09:40 +01:00
Peter Steinberger
dd4eb8bf63
fix(cron): retry next-second schedule compute on undefined
2026-02-17 23:48:14 +01:00
Peter Steinberger
c26cf6aa83
feat(cron): add default stagger controls for scheduled jobs
2026-02-17 23:48:14 +01:00
Tyler Yust
75001a0490
fix cron announce routing and timeout handling
2026-02-17 11:40:04 -08:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
Vignesh Natarajan
f988abf202
Cron: route reminders by session namespace
2026-02-17 01:54:59 +01:00
cpojer
c70597daeb
chore: Fix formatting.
2026-02-17 09:40:00 +09:00
Peter Steinberger
80c7d04ad2
refactor(cron): reuse shared run outcome telemetry types
2026-02-17 00:32:34 +00:00
cpojer
90ef2d6bdf
chore: Update formatting.
2026-02-17 09:18:40 +09:00
Marcus Widing
8af4712c40
fix(cron): prevent spin loop when job completes within scheduled second ( #17821 )
...
When a cron job fires and completes within the same wall-clock second it
was scheduled for, the next-run computation could return undefined or the
same second, causing the scheduler to re-trigger the job hundreds of
times in a tight loop.
Two-layer fix:
1. computeJobNextRunAtMs: When computeNextRunAtMs returns undefined for a
cron-kind schedule (edge case where floored nowSecondMs matches the
schedule), retry with the ceiling (next second) as reference time.
This ensures we always get the next valid occurrence.
2. applyJobResult: Add MIN_REFIRE_GAP_MS (2s) safety net for cron-kind
jobs. After a successful run, nextRunAtMs is guaranteed to be at
least 2s in the future. This breaks any remaining spin-loop edge
cases without affecting normal daily/hourly schedules (where the
natural next run is hours/days away).
Fixes #17821
2026-02-16 23:59:44 +01:00
Rob Dunn
ddea5458d0
cron: log model+token usage per run + add usage report script
2026-02-16 23:58:38 +01:00
Peter Steinberger
b991919755
refactor(cron): dedupe next-run recompute paths
2026-02-16 17:06:40 +00:00
pierreeurope
fec4be8dec
fix(cron): prevent daily jobs from skipping days (48h jump) #17852 ( #17903 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 1ffe6a45af
Co-authored-by: pierreeurope <248892285+pierreeurope@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:35:49 -05:00
Advait Paliwal
bc67af6ad8
cron: separate webhook POST delivery from announce ( #17901 )
...
* cron: split webhook delivery from announce mode
* cron: validate webhook delivery target
* cron: remove legacy webhook fallback config
* fix: finalize cron webhook delivery prep (#17901 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM >
2026-02-16 02:36:00 -08:00
Peter Steinberger
17e5a5015c
perf: avoid async cron timer callbacks
2026-02-16 02:45:00 +00:00
Peter Steinberger
5b2cb8ba11
refactor(cron): dedupe finished event emit
2026-02-16 01:37:03 +00:00
Peter Steinberger
a73e7786e7
refactor(cron): share runnable job filter
2026-02-16 01:29:01 +00:00
Peter Steinberger
2679089e9e
refactor(cron): dedupe next-run recompute loop
2026-02-16 01:27:40 +00:00
Peter Steinberger
c95a61aa9d
refactor(cron): dedupe read-only load flow
2026-02-16 01:26:37 +00:00
Advait Paliwal
115cfb4430
gateway: add cron finished-run webhook ( #14535 )
...
* gateway: add cron finished webhook delivery
* config: allow cron webhook in runtime schema
* cron: require notify flag for webhook posts
* ui/docs: add cron notify toggle and webhook docs
* fix: harden cron webhook auth and fill notify coverage (#14535 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM >
2026-02-15 16:14:17 -08:00
Peter Steinberger
b3ef3fca75
refactor(cron): share legacy delivery helpers
2026-02-15 17:29:08 +00:00
Gustavo Madeira Santana
88caa4b50c
chore(cron): simplify enabled checks for lint
2026-02-15 10:30:19 -05:00
Alejandro Santander
9a344da298
fix(cron): treat missing enabled as true in update() (openclaw#15477) thanks @eternauta1337
...
Verified:
- pnpm exec vitest src/cron/service.issue-regressions.test.ts
Co-authored-by: eternauta1337 <550409+eternauta1337@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-15 08:52:02 -06:00
Vignesh Natarajan
4c4d2558e3
fix (heartbeat/cron): preserve cron prompts for tagged interval events
2026-02-14 19:46:31 -08:00
Vignesh Natarajan
7b89e68d18
fix (cron): skip startup replay for interrupted running jobs
2026-02-14 19:06:37 -08:00
Peter Steinberger
20dea3cdb1
perf(cron): make wakeMode now busy-wait configurable
2026-02-14 23:51:47 +00:00
Peter Steinberger
6b400eca5c
refactor(cron): share job tick state normalization
2026-02-14 21:44:30 +00:00
zerone0x
c60844931b
fix(cron): prevent list/status from silently skipping recurring jobs (openclaw#16201) thanks @zerone0x
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-14 13:33:29 -06:00
青雲
80407cbc6a
fix: recompute all cron next-run times after job update (openclaw#15905) thanks @echoVic
...
Verified:
- pnpm check
- pnpm vitest src/cron/service.issue-regressions.test.ts src/cron/service.issue-13992-regression.test.ts
Co-authored-by: echoVic <16428813+echoVic@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-14 12:37:22 -06:00