4.6.0 (2026-07-04)
Added
- add cron.shutdown(timeout?) for graceful process teardown (#589) (35f1a61)
- add unref option for heartbeat timers (#588) (35cb140)
- day-of-month: Quartz-style W, L-n and ? modifiers (#570) (cbe379b)
- emit task:failed when a background daemon exits unexpectedly (7bd91d6)
- support cron expression nicknames (@yearly, @daily, etc.) (#579) (6a6e14e)
Fixed
- background task state transition on stop/destroy without fork (#584) (9dbc6de)
- clear jitter timeout on runner stop (#583) (28b8146)
- CommonJS type resolution (#608) (ee9d294)
- correct falied->failed typo in daemon task error log (#594) (66c6961)
- correct shutdown listener typing that broke the build (#595) (7aac3ad)
- correlate execute() by id, isolate event hooks, and stop counting manual runs toward maxExecutions (#607) (0f039a9)
- daemon serialized task state with wrong field name (#587) (688d465)
- expand inverted ranges with wrap-around instead of silently swapping (#602) (a10ae53)
- harden cron.shutdown() teardown (#598) (a0b0d1f)
- kill orphan child process on background task stop/destroy timeout (#582) (8179e10)
- make concurrent background start() await the daemon and time out coordinator lookups (#605) (446f03a)
- make lifecycle calls on a destroyed task safe no-ops (#600) (7fa9795)
- prevent double destroy on registry remove (#585) (8ae9f06)
- release-please: match existing v-prefixed tags (#575) (e43c152)
- runner promise bugs that could hang scheduling or crash process (#581) (0ae62be)
- unref the IPC channel so background tasks let the process exit (#599) (534e593)
- validate the cron expression when scheduling a task (#603) (196e6cd)
- validate() consistency and multi-asterisk expansion (#606) (8cf41c4)
- weekday 7-to-0 conversion corrupting ranges (#580) (c8a3943)