@warlock.js/scheduler 5.23.2 → 5.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/CHANGELOG.md +119 -113
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,9 +1,15 @@
1
- # Changelog — @warlock.js/scheduler
2
-
3
- All notable changes to `@warlock.js/scheduler` are documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `@warlock.js/*` packages are released in lockstep — every package shares the same version number, so a version below may list only the changes that affected this package.
6
-
1
+ # Changelog — @warlock.js/scheduler
2
+
3
+ All notable changes to `@warlock.js/scheduler` are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `@warlock.js/*` packages are released in lockstep — every package shares the same version number, so a version below may list only the changes that affected this package.
6
+
7
+ ## 5.24.0 - 2026-09-27
8
+
9
+ ### Changed
10
+
11
+ - Lockstep release; package APIs are unchanged.
12
+
7
13
  ## 5.23.2 - 2026-09-26
8
14
 
9
15
  ### Changed
@@ -16,110 +22,110 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
16
22
 
17
23
  - Lockstep patch release; package APIs are unchanged.
18
24
 
19
- ## 5.23.0 - 2026-09-25
20
-
21
- ### Added
22
-
23
- - `scheduler.around((job, run) => …)` wraps every job callback execution, each retry attempt included, so jobs can run inside a context such as `AsyncLocalStorage`. Multiple hooks compose with the first registered outermost; the call returns an unsubscribe function. A hook that never calls `run` skips the execution and emits `job:skip` (`JobResult.skipped` / `skipReason`); a hook that throws follows the normal retry/error path.
24
-
25
- ## 5.22.1 - 2026-09-25
26
-
27
- ### Changed
28
-
29
- - Lockstep patch release; package APIs are unchanged.
30
-
31
- ## 5.22.0 - 2026-09-25
32
-
33
- ### Fixed
34
-
35
- - Cron and time parsing handle absent fields explicitly under strict TypeScript checks.
36
-
37
- ## 5.21.0 - 2026-09-25
38
-
39
- ### Changed
40
-
41
- - Lockstep release maintenance and dependency refresh.
42
- ## 5.20.0 - 2026-09-24
43
-
44
- ### Added
45
-
46
- - `job.onOneServer({ lockTtl?, key? })` — run each tick on exactly one server. Every server races for a create-only, TTL-bounded cache claim keyed `scheduler.<key ?? name>.<scheduledTickEpochMs>`. The claim is never released, so exactly one server runs each tick even if another server's timer fires late. Losers skip the tick and emit `job:skip`. Requires a shared cache driver (redis/pg) and a job name or `key`. `@warlock.js/cache` is an optional peer dependency. Default claim TTL is `min(interval, 1h)` with a 60s floor (1h for cron jobs).
47
-
48
- ## 5.19.0 - 2026-09-23
49
-
50
- ### Changed
51
-
52
- - Refined package skill-discovery descriptions and regenerated the llms projections.
53
-
54
- ## 5.11.0 - 2026-09-14
55
-
56
- _Released in lockstep with the `@warlock.js/*` family; no package-specific changes in 5.11.0._
57
-
58
- ## 5.10.0 - 2026-09-14
59
-
60
- _Released in lockstep with the `@warlock.js/*` family; no package-specific changes in 5.10.0._
61
-
62
- ## 5.9.0 - 2026-09-13
63
-
64
- _Released in lockstep with the `@warlock.js/*` family; no package-specific changes in 5.9.0._
65
-
66
- ## 5.5.0 - 2026-09-07
67
-
68
- ### Fixed
69
-
70
- - Documentation shipped in this package's `skills/` told users to run `pnpm`-specific commands. `pnpm <binary>` has no npm equivalent, so those instructions failed outright for anyone not using pnpm. Commands are now package-manager neutral.
71
-
72
- ## 5.2.3 - 2026-09-02
73
-
74
- ### Fixed
75
-
76
- - Released in exact lockstep with Core's Web generator repairs so every family dependency remains installable at 5.2.3.
77
-
78
- ## 5.2.2
79
-
80
- - Documented: the README, CHANGELOG, and `overview` skill now describe the
81
- already-shipped `package.json` `"warlock": { "environment": "server" }`
82
- marker — `@warlock.js/scheduler`'s entire runtime surface is server-only.
83
- The marker is build-boundary metadata read by `@warlock.js/web`'s Gate A
84
- (import resolution) and Gate C (emitted-bundle verification); app client
85
- code must not value-import this package, type-only imports are allowed, and
86
- server loaders/controllers/modules may import it freely. No source change.
87
-
88
- ## 5.1.0
89
-
90
- No changes to `@warlock.js/scheduler`. Released in lockstep with the `@warlock.js/web`
91
- React-execution fix and the `@warlock.js/core` CLI additions — see those packages'
92
- changelogs.
93
-
94
- ## 5.0.2 - 2026-08-25
95
-
96
- No changes to `@warlock.js/scheduler`. Released in lockstep with the `@warlock.js/web` SSR
97
- fix (`ssr.noExternal`) — see that package's changelog.
98
-
99
- ## 5.0.1 - 2026-08-25
100
-
101
- No changes to `@warlock.js/scheduler`. Released in lockstep with the `create-warlock` vite
102
- resolution pin and the `@warlock.js/web` peer narrowing — see those packages'
103
- changelogs.
104
-
105
- ## 5.0.0 - 2026-08-25
106
-
107
- ### Changed
108
-
109
- - This package is unchanged in 5.0.0; its version moved only because the Warlock family releases in lockstep.
110
-
111
- ## 4.12.0
112
-
113
- ### Changed
114
-
115
- - Declares its own test runner and pins it to an exact version (`vitest@4.1.10`). The package is its own repository, so a runner resolved from a workspace root it may not be cloned with is a runner it cannot rely on. The pin is exact rather than a range because the version moved underneath the suite mid-development on an unrelated install — a suite whose runner can change without anyone choosing it proves less than it appears to
116
-
117
- ## 4.6.0
118
-
119
- ### Fixed
120
-
121
- - Warn in development when jobs are registered but `start()` is never called — a one-shot deferred check logs `N job(s) registered but scheduler.start() was never called`, is suppressed once `start()` runs or in production (`NODE_ENV=production`), and is unref'd so it never holds the process open.
122
-
123
- ## 4.1.15
124
-
125
- - Baseline — per-package changelog tracking starts at this version.
25
+ ## 5.23.0 - 2026-09-25
26
+
27
+ ### Added
28
+
29
+ - `scheduler.around((job, run) => …)` wraps every job callback execution, each retry attempt included, so jobs can run inside a context such as `AsyncLocalStorage`. Multiple hooks compose with the first registered outermost; the call returns an unsubscribe function. A hook that never calls `run` skips the execution and emits `job:skip` (`JobResult.skipped` / `skipReason`); a hook that throws follows the normal retry/error path.
30
+
31
+ ## 5.22.1 - 2026-09-25
32
+
33
+ ### Changed
34
+
35
+ - Lockstep patch release; package APIs are unchanged.
36
+
37
+ ## 5.22.0 - 2026-09-25
38
+
39
+ ### Fixed
40
+
41
+ - Cron and time parsing handle absent fields explicitly under strict TypeScript checks.
42
+
43
+ ## 5.21.0 - 2026-09-25
44
+
45
+ ### Changed
46
+
47
+ - Lockstep release maintenance and dependency refresh.
48
+ ## 5.20.0 - 2026-09-24
49
+
50
+ ### Added
51
+
52
+ - `job.onOneServer({ lockTtl?, key? })` — run each tick on exactly one server. Every server races for a create-only, TTL-bounded cache claim keyed `scheduler.<key ?? name>.<scheduledTickEpochMs>`. The claim is never released, so exactly one server runs each tick even if another server's timer fires late. Losers skip the tick and emit `job:skip`. Requires a shared cache driver (redis/pg) and a job name or `key`. `@warlock.js/cache` is an optional peer dependency. Default claim TTL is `min(interval, 1h)` with a 60s floor (1h for cron jobs).
53
+
54
+ ## 5.19.0 - 2026-09-23
55
+
56
+ ### Changed
57
+
58
+ - Refined package skill-discovery descriptions and regenerated the llms projections.
59
+
60
+ ## 5.11.0 - 2026-09-14
61
+
62
+ _Released in lockstep with the `@warlock.js/*` family; no package-specific changes in 5.11.0._
63
+
64
+ ## 5.10.0 - 2026-09-14
65
+
66
+ _Released in lockstep with the `@warlock.js/*` family; no package-specific changes in 5.10.0._
67
+
68
+ ## 5.9.0 - 2026-09-13
69
+
70
+ _Released in lockstep with the `@warlock.js/*` family; no package-specific changes in 5.9.0._
71
+
72
+ ## 5.5.0 - 2026-09-07
73
+
74
+ ### Fixed
75
+
76
+ - Documentation shipped in this package's `skills/` told users to run `pnpm`-specific commands. `pnpm <binary>` has no npm equivalent, so those instructions failed outright for anyone not using pnpm. Commands are now package-manager neutral.
77
+
78
+ ## 5.2.3 - 2026-09-02
79
+
80
+ ### Fixed
81
+
82
+ - Released in exact lockstep with Core's Web generator repairs so every family dependency remains installable at 5.2.3.
83
+
84
+ ## 5.2.2
85
+
86
+ - Documented: the README, CHANGELOG, and `overview` skill now describe the
87
+ already-shipped `package.json` `"warlock": { "environment": "server" }`
88
+ marker — `@warlock.js/scheduler`'s entire runtime surface is server-only.
89
+ The marker is build-boundary metadata read by `@warlock.js/web`'s Gate A
90
+ (import resolution) and Gate C (emitted-bundle verification); app client
91
+ code must not value-import this package, type-only imports are allowed, and
92
+ server loaders/controllers/modules may import it freely. No source change.
93
+
94
+ ## 5.1.0
95
+
96
+ No changes to `@warlock.js/scheduler`. Released in lockstep with the `@warlock.js/web`
97
+ React-execution fix and the `@warlock.js/core` CLI additions — see those packages'
98
+ changelogs.
99
+
100
+ ## 5.0.2 - 2026-08-25
101
+
102
+ No changes to `@warlock.js/scheduler`. Released in lockstep with the `@warlock.js/web` SSR
103
+ fix (`ssr.noExternal`) — see that package's changelog.
104
+
105
+ ## 5.0.1 - 2026-08-25
106
+
107
+ No changes to `@warlock.js/scheduler`. Released in lockstep with the `create-warlock` vite
108
+ resolution pin and the `@warlock.js/web` peer narrowing — see those packages'
109
+ changelogs.
110
+
111
+ ## 5.0.0 - 2026-08-25
112
+
113
+ ### Changed
114
+
115
+ - This package is unchanged in 5.0.0; its version moved only because the Warlock family releases in lockstep.
116
+
117
+ ## 4.12.0
118
+
119
+ ### Changed
120
+
121
+ - Declares its own test runner and pins it to an exact version (`vitest@4.1.10`). The package is its own repository, so a runner resolved from a workspace root it may not be cloned with is a runner it cannot rely on. The pin is exact rather than a range because the version moved underneath the suite mid-development on an unrelated install — a suite whose runner can change without anyone choosing it proves less than it appears to
122
+
123
+ ## 4.6.0
124
+
125
+ ### Fixed
126
+
127
+ - Warn in development when jobs are registered but `start()` is never called — a one-shot deferred check logs `N job(s) registered but scheduler.start() was never called`, is suppressed once `start()` runs or in production (`NODE_ENV=production`), and is unref'd so it never holds the process open.
128
+
129
+ ## 4.1.15
130
+
131
+ - Baseline — per-package changelog tracking starts at this version.
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "dayjs": "^1.11.19"
9
9
  },
10
10
  "peerDependencies": {
11
- "@warlock.js/cache": "5.23.2"
11
+ "@warlock.js/cache": "5.24.0"
12
12
  },
13
13
  "peerDependenciesMeta": {
14
14
  "@warlock.js/cache": {
@@ -33,7 +33,7 @@
33
33
  ],
34
34
  "author": "hassanzohdy",
35
35
  "license": "MIT",
36
- "version": "5.23.2",
36
+ "version": "5.24.0",
37
37
  "main": "./cjs/index.cjs",
38
38
  "module": "./esm/index.mjs",
39
39
  "types": "./esm/index.d.mts",