@lunora/scheduler 1.0.0-alpha.80 → 1.0.0-alpha.81

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/dist/index.d.mts CHANGED
@@ -1274,13 +1274,14 @@ declare class SchedulerDO {
1274
1274
  * INSTANCE id for a `workflow` target. A mutation's dedup read runs inside
1275
1275
  * the shard's single-writer gate, so a mutation is exactly-once even under a
1276
1276
  * genuinely concurrent re-fire; a workflow re-attaches to the running
1277
- * instance rather than starting a second one. An ACTION is weaker:
1278
- * `@lunora/do` deliberately does NOT take the gate for a non-mutation —
1277
+ * instance rather than starting a second one. An ACTION takes no gate —
1279
1278
  * gating one would let any caller freeze a whole shard for the length of an
1280
1279
  * action's outbound I/O — and its dedup row is written only after the
1281
- * handler returns, so two dispatches genuinely overlapping in time can both
1282
- * miss the cache. The lease exists to keep them from overlapping; an action
1283
- * that can outlive it must still be idempotent.
1280
+ * handler returns, so the cache alone could not tell "already ran" from
1281
+ * "still running". The shard closes that itself (#803): it claims the dedup
1282
+ * key before entering the handler and answers a second delivery of a live
1283
+ * key `409 DISPATCH_IN_PROGRESS`, which is a non-2xx, so the record is
1284
+ * re-armed rather than cleared.
1284
1285
  *
1285
1286
  * Two bounded walks (all `t:` values, then all `id:` headers) rather than a
1286
1287
  * per-header `get`, so the cost is one pass over each prefix.
package/dist/index.d.ts CHANGED
@@ -1274,13 +1274,14 @@ declare class SchedulerDO {
1274
1274
  * INSTANCE id for a `workflow` target. A mutation's dedup read runs inside
1275
1275
  * the shard's single-writer gate, so a mutation is exactly-once even under a
1276
1276
  * genuinely concurrent re-fire; a workflow re-attaches to the running
1277
- * instance rather than starting a second one. An ACTION is weaker:
1278
- * `@lunora/do` deliberately does NOT take the gate for a non-mutation —
1277
+ * instance rather than starting a second one. An ACTION takes no gate —
1279
1278
  * gating one would let any caller freeze a whole shard for the length of an
1280
1279
  * action's outbound I/O — and its dedup row is written only after the
1281
- * handler returns, so two dispatches genuinely overlapping in time can both
1282
- * miss the cache. The lease exists to keep them from overlapping; an action
1283
- * that can outlive it must still be idempotent.
1280
+ * handler returns, so the cache alone could not tell "already ran" from
1281
+ * "still running". The shard closes that itself (#803): it claims the dedup
1282
+ * key before entering the handler and answers a second delivery of a live
1283
+ * key `409 DISPATCH_IN_PROGRESS`, which is a non-2xx, so the record is
1284
+ * re-armed rather than cleared.
1284
1285
  *
1285
1286
  * Two bounded walks (all `t:` values, then all `id:` headers) rather than a
1286
1287
  * per-header `get`, so the cost is one pass over each prefix.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/scheduler",
3
- "version": "1.0.0-alpha.80",
3
+ "version": "1.0.0-alpha.81",
4
4
  "description": "Scheduling for Lunora: runAfter / runAt and Cron Triggers via SchedulerDO",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -46,7 +46,7 @@
46
46
  "access": "public"
47
47
  },
48
48
  "dependencies": {
49
- "@lunora/errors": "1.0.0-alpha.40",
49
+ "@lunora/errors": "1.0.0-alpha.41",
50
50
  "@lunora/platform": "1.0.0-alpha.33",
51
51
  "cron-parser": "5.10.0"
52
52
  },