@effectstream/runtime 0.100.27 → 0.100.28

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/package.json +12 -12
  2. package/src/coalesce.ts +7 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effectstream/runtime",
3
- "version": "0.100.27",
3
+ "version": "0.100.28",
4
4
  "license": "MIT",
5
5
  "homepage": "https://effectstream.github.io/docs/",
6
6
  "repository": {
@@ -13,17 +13,17 @@
13
13
  },
14
14
  "exports": "./src/mod.ts",
15
15
  "dependencies": {
16
- "@effectstream/concise": "0.100.27",
17
- "@effectstream/config": "0.100.27",
18
- "@effectstream/coroutine": "0.100.27",
19
- "@effectstream/crypto": "0.100.27",
20
- "@effectstream/db": "0.100.27",
21
- "@effectstream/event-client": "0.100.27",
22
- "@effectstream/event-server": "0.100.27",
23
- "@effectstream/log": "0.100.27",
24
- "@effectstream/sm": "0.100.27",
25
- "@effectstream/sync": "0.100.27",
26
- "@effectstream/utils": "0.100.27",
16
+ "@effectstream/concise": "0.100.28",
17
+ "@effectstream/config": "0.100.28",
18
+ "@effectstream/coroutine": "0.100.28",
19
+ "@effectstream/crypto": "0.100.28",
20
+ "@effectstream/db": "0.100.28",
21
+ "@effectstream/event-client": "0.100.28",
22
+ "@effectstream/event-server": "0.100.28",
23
+ "@effectstream/log": "0.100.28",
24
+ "@effectstream/sm": "0.100.28",
25
+ "@effectstream/sync": "0.100.28",
26
+ "@effectstream/utils": "0.100.28",
27
27
  "@fastify/cors": "^11.0.1",
28
28
  "@metamask/json-rpc-engine": "^10.0.3",
29
29
  "pg": "8.21.0",
package/src/coalesce.ts CHANGED
@@ -39,9 +39,13 @@ export function* loadEmptyRunBoundaries(
39
39
  ): Operation<EmptyRunBoundaries> {
40
40
  const [bh] = yield* until(getEarliestScheduledBlockHeight.run(undefined, dbConn));
41
41
  const [ts] = yield* until(getEarliestScheduledTimestamp.run(undefined, dbConn));
42
- // Ignore scheduled block heights already in the past: a stale unprocessed row
43
- // (e.g. from a DB reset) would otherwise permanently suppress coalescing for
44
- // all current blocks, since every block number >= the stale height.
42
+ // getEarliestScheduledBlockHeight now excludes heights at/below the last applied
43
+ // block in SQL, so this is always an upcoming schedule (or null when none pends).
44
+ // The `>= fromBlockNumber` check is a belt-and-suspenders guard. BEWARE the old
45
+ // shape: that query returned the global MIN, and a stale below-head row (e.g. an
46
+ // input that was already skipped) collapsed the boundary to null *here* — which
47
+ // disables coalescing's scheduled-input guard entirely, so every later scheduled
48
+ // input inside an empty run gets coalesced over. One orphan permanently broke it.
45
49
  const minScheduledBlockHeight = bh?.min_block_height != null && bh.min_block_height >= fromBlockNumber
46
50
  ? bh.min_block_height
47
51
  : null;