@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.
- package/CHANGELOG.md +119 -113
- 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.
|
|
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.
|
|
36
|
+
"version": "5.24.0",
|
|
37
37
|
"main": "./cjs/index.cjs",
|
|
38
38
|
"module": "./esm/index.mjs",
|
|
39
39
|
"types": "./esm/index.d.mts",
|