cross-tab-worker-databus 0.21.37 → 0.21.38
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 +9 -0
- package/dist/centrifuge.js +1 -1
- package/dist/{chunk-COFXTIRW.js → chunk-VWFEH3OS.js} +2 -2
- package/dist/cjs/centrifuge.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/docs/roadmap.md +8 -2
- package/docs/zh/roadmap.md +7 -1
- package/package.json +1 -1
- /package/dist/{chunk-COFXTIRW.js.map → chunk-VWFEH3OS.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [0.21.38] - 2026-09-25
|
|
2
|
+
|
|
3
|
+
One English sentence in the shipped roadmap described a ratio backwards while its Chinese mirror had the direction right — the class of defect only a two-language comparison finds. No library behavior, export, option, default, frame or storage key changed; the coverage floors and the zero-count arm ledger are `0.21.37`'s.
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **`docs/roadmap.md` placed the failing seed *below* the floor it is above.** The `0.21.17` block said the `storage-fail` interleaving reddens the sweep "from seed 414 onward, which is four times below the sweep's depth floor". The floor is `MIN_SEEDS = 100` in `tests/coordination-invariants.test.ts`, and 414 is more than four times it — which is the whole point of the sentence: the finding needs depth past what the sweep asserts as a minimum, so it is a finder rather than a guard. The Chinese mirror read 是……下限的四倍, correct in direction, so the two languages agreed on every digit and disagreed on the relation. Fixed in the English side; the Chinese side is left as written.
|
|
8
|
+
- **The English side of the same file now names the timeout its mirror names.** The `0.21.37` block credited `scripts/publication-lag.mjs` with "a per-call timeout"; the Chinese block said 30 秒超时. The script sets `CALL_TIMEOUT_MS = 30_000`, so the figure is in `scripts/publication-lag.mjs` and both languages now make the same claim rather than one making it more precisely than the other.
|
|
9
|
+
|
|
1
10
|
## [0.21.37] - 2026-09-25
|
|
2
11
|
|
|
3
12
|
One shipped instruction told every reader to run a script that exists in no clone, and making that script tracked turned up three numbers its own quoted prose had wrong. No library behavior, export, option or storage key changed.
|
package/dist/centrifuge.js
CHANGED
|
@@ -2475,7 +2475,7 @@ var SDK_VERSION = (
|
|
|
2475
2475
|
// declaration's type is `string | undefined` and the export's is `string`
|
|
2476
2476
|
// (dropping the conditional is TS2322, measured). Recorded here so the leg reads
|
|
2477
2477
|
// as a shape the harness cannot reach rather than as a case nobody exercised.
|
|
2478
|
-
true ? "0.21.
|
|
2478
|
+
true ? "0.21.38" : ""
|
|
2479
2479
|
);
|
|
2480
2480
|
|
|
2481
2481
|
// src/core/data-bus.ts
|
|
@@ -3715,4 +3715,4 @@ export {
|
|
|
3715
3715
|
parseDataBusPublication,
|
|
3716
3716
|
selectWorkerBackend
|
|
3717
3717
|
};
|
|
3718
|
-
//# sourceMappingURL=chunk-
|
|
3718
|
+
//# sourceMappingURL=chunk-VWFEH3OS.js.map
|
package/dist/cjs/centrifuge.cjs
CHANGED
|
@@ -2604,7 +2604,7 @@ var SDK_VERSION = (
|
|
|
2604
2604
|
// declaration's type is `string | undefined` and the export's is `string`
|
|
2605
2605
|
// (dropping the conditional is TS2322, measured). Recorded here so the leg reads
|
|
2606
2606
|
// as a shape the harness cannot reach rather than as a case nobody exercised.
|
|
2607
|
-
true ? "0.21.
|
|
2607
|
+
true ? "0.21.38" : ""
|
|
2608
2608
|
);
|
|
2609
2609
|
|
|
2610
2610
|
// src/core/data-bus.ts
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -2570,7 +2570,7 @@ var SDK_VERSION = (
|
|
|
2570
2570
|
// declaration's type is `string | undefined` and the export's is `string`
|
|
2571
2571
|
// (dropping the conditional is TS2322, measured). Recorded here so the leg reads
|
|
2572
2572
|
// as a shape the harness cannot reach rather than as a case nobody exercised.
|
|
2573
|
-
true ? "0.21.
|
|
2573
|
+
true ? "0.21.38" : ""
|
|
2574
2574
|
);
|
|
2575
2575
|
|
|
2576
2576
|
// src/core/data-bus.ts
|
package/dist/index.js
CHANGED
package/docs/roadmap.md
CHANGED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
0.21.37 was released on September 25, 2026. The project is intentionally continuing through reliability-focused releases before a 1.0.0 stability freeze.
|
|
4
4
|
|
|
5
|
+
## 0.21.38 delivered scope
|
|
6
|
+
|
|
7
|
+
- **A ratio described backwards in one language and correctly in the other.** The `0.21.17` block of this file said the `storage-fail` interleaving reddens the sweep "from seed 414 onward, which is four times below the sweep's depth floor". The floor is `MIN_SEEDS = 100` in `tests/coordination-invariants.test.ts`, so 414 sits more than four times *above* it — and that is the sentence's own point: the finding needs depth past what the sweep asserts as a minimum, which makes it a finder rather than a guard. The Chinese mirror had the direction right, so the two languages agreed on every digit and disagreed on the relation. No value-by-value comparison can see that; the block-paired sweep that found it compares the Nth release block of each language, then the sentences inside it.
|
|
8
|
+
- **Both languages now carry the same two figures for the promoted sweep tool.** The English `0.21.37` block credited the tool with "a per-call timeout" where the Chinese block said 30 秒超时. `scripts/publication-lag.mjs` sets `CALL_TIMEOUT_MS = 30_000`, so the number is now in the English sentence as well.
|
|
9
|
+
- **Nothing else moved.** No library code, export, option, default, frame or storage key changed; the zero-count arm ledger and the coverage aggregates are `0.21.37`'s.
|
|
10
|
+
|
|
5
11
|
## 0.21.37 delivered scope
|
|
6
12
|
|
|
7
|
-
- **A shipped instruction pointed at a directory git never had.** Both release checklists told the reader to re-derive the publication-lag series from `.gate-logs/publication-pair.mjs`, and that path is gitignored — live on the one machine that wrote it, dead in every clone and in the published tarball's own docs. Nothing can gate it: the citation sweep resolves test *titles*, and a shell command is neither a title nor a symbol. The tool is now `scripts/publication-lag.mjs`, tracked, resolving the repository and the Release workflow id through `gh` instead of hardcoding either, with a per-call timeout after the previous sweep hung 18 minutes on one `gh api`, a `reading <version>` line so a stopped run names where it stopped, and a printed line for every member its denominator drops.
|
|
13
|
+
- **A shipped instruction pointed at a directory git never had.** Both release checklists told the reader to re-derive the publication-lag series from `.gate-logs/publication-pair.mjs`, and that path is gitignored — live on the one machine that wrote it, dead in every clone and in the published tarball's own docs. Nothing can gate it: the citation sweep resolves test *titles*, and a shell command is neither a title nor a symbol. The tool is now `scripts/publication-lag.mjs`, tracked, resolving the repository and the Release workflow id through `gh` instead of hardcoding either, with a 30 s per-call timeout after the previous sweep hung 18 minutes on one `gh api`, a `reading <version>` line so a stopped run names where it stopped, and a printed line for every member its denominator drops.
|
|
8
14
|
- **Running it corrected three numbers in the prose that quotes it.** The sub-second consumer steps inside the measured set are two (`0.20.86`, `0.20.87`), not the six both languages carried — the other four pre-`0.20.92` releases print as `NEGATIVE` and sit outside the 45, the exact distinction the tool draws and the copied sentence lost. The `0.20.92`-onward window holds 43 releases, not the 42 `AGENTS.md` still counted, and since that number moves every release the count became the lookup. "Prints the attempt each reading came from" over-stated a flag that fires only for a non-first attempt.
|
|
9
15
|
- **What the series confirmed, and what the instrument itself taught.** Every per-release sample the prose quotes re-read identical — 127.2 / 76.1 / 75.5 / 75.8 / 127.3 / 126.4 s of record lag across `0.21.31`–`0.21.36`, their steps at 304–308 s, `0.21.30` alone at 310.0 s and 364.0 s, 42 of 45 steps inside 300–310 s, no gap over 310 s — so the 720 s budget and its floor test are unchanged. And the promoted script first ran *broken*: a `const` formatter scoped inside the sweep loop killed it with a `ReferenceError` after all 45 tags had been read, printing four lines and exit 1 — the formatter moved to module scope, and what made the failure diagnosable at all was the non-zero exit, since four rows from a 49-tag sweep reads like a short series rather than a broken one.
|
|
10
16
|
- **A copied-forward count in the progress log had never been measured.** The `bench:browser` debt read "four releases", then "five", in successive `Next` lines; the newest `bench-results/browser-*.json` is `2026-09-24T13:40:52Z`, eight minutes before `0.21.22`'s release commit regenerated `docs/benchmarks.md`, so it is fourteen (`0.21.23` on). Neither number is in a shipped file, so the correction stays in the log, where both older lines now point at the two artifacts.
|
|
@@ -186,7 +192,7 @@
|
|
|
186
192
|
`confirmedAt`, a state no worker writes and precisely the shape the new pass releases, so its assertion was passing
|
|
187
193
|
by a mechanism other than the one it named.
|
|
188
194
|
- **The `storage-fail` fuzz interleaving that found this is measured and deliberately not shipped** — it reddens the
|
|
189
|
-
sweep on the pre-fix code from seed 414 onward, which is four times
|
|
195
|
+
sweep on the pre-fix code from seed 414 onward, which is more than four times the sweep's 100-seed depth floor, so it is a finder
|
|
190
196
|
rather than a guard; its knob (`MemoryStorage.failNextWrites`) and the recipe are committed.
|
|
191
197
|
- **A classification, comment-only:** `handoffAssignedTopics()`'s unreachable `if (!owner) continue;` now names the
|
|
192
198
|
four links that make it unreachable, the test that pins each, and the measured counterfactual — deleting it keeps
|
package/docs/zh/roadmap.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
0.21.37 已于 2026 年 9 月 25 日发布。项目会先持续完成可靠性发布,再进入 1.0.0 稳定性冻结。
|
|
4
4
|
|
|
5
|
+
## 0.21.38 已完成范围
|
|
6
|
+
|
|
7
|
+
- **一个比例在一种语言里被写反,另一种语言写对了。** 本文 `0.21.17` 那段说 `storage-fail` 交错"从 seed 414 起就让 sweep 失败,这比 sweep 的深度下限低四倍"。下限是 `tests/coordination-invariants.test.ts` 里的 `MIN_SEEDS = 100`,而 414 是它的四倍*以上*——这正是那句话的本意:这条发现需要的深度超过了 sweep 自己断言的最小值,所以它是发现器而不是守卫。中文镜像的方向本来就是对的,于是两种语言每个数字都一致、关系却是反的。逐值比对看不见这种错;找到它的按块配对扫描比较的是两种语言的第 N 个发布块,再比块里的每一句。
|
|
8
|
+
- **两种语言现在写出同一个工具的同两个数。** 英文 `0.21.37` 那段只说"每次调用带一个超时",中文那段说 30 秒超时。`scripts/publication-lag.mjs` 里是 `CALL_TIMEOUT_MS = 30_000`,现在英文也带上了这个数值。
|
|
9
|
+
- **其余未动。** 库代码、导出、选项、默认值、帧格式与存储键均未改动;零计数分支账本与覆盖率聚合仍是 `0.21.37` 的。
|
|
10
|
+
|
|
5
11
|
## 0.21.37 已完成范围
|
|
6
12
|
|
|
7
13
|
- **一份已发布的操作说明指向了一个 git 里从来没有的目录。** 两份发版检查清单都告诉读者用 `.gate-logs/publication-pair.mjs` 重新推导发布延迟序列,而这个路径在 `.gitignore` 里——它只在写下这句话的那台机器上有效,在任何一份克隆里、在已发布压缩包自带的文档里都是死链。这一类问题无法被门禁看见:引用扫描解析的是测试*标题*,而一条 shell 命令既不是标题也不是符号。这个工具现在是 `scripts/publication-lag.mjs`,已被跟踪,仓库名与 Release workflow id 都通过 `gh` 解析而不再硬编码;上一版扫描曾卡在一次没有上限的 `gh api` 上 18 分钟且不打印任何东西,因此每次调用现在都有 30 秒超时、一行 `reading <version>` 进度,以及为分母丢掉的每个成员单独打印的一行。
|
|
@@ -183,7 +189,7 @@
|
|
|
183
189
|
- **一个既有测试的前提被改正**:它手写的"被接管"路由带着前任 owner 的 `confirmedAt`,而没有任何 Worker 会写出这种
|
|
184
190
|
状态——它恰好就是新清扫会释放的形状——所以那条断言其实是通过另一个机制成立的,而不是它声称的那一个。
|
|
185
191
|
- **找到这个问题的 `storage-fail` 交错被测量过,并且刻意没有留在 fuzz 里**:在修复前的代码上,它从 seed 414 起就让
|
|
186
|
-
sweep 失败,而这个深度是 sweep 自身 100-seed
|
|
192
|
+
sweep 失败,而这个深度是 sweep 自身 100-seed 下限的四倍多,所以它是发现器而不是守卫;它需要的开关
|
|
187
193
|
(`MemoryStorage.failNextWrites`)和复现配方已经提交。
|
|
188
194
|
- **一条纯注释的归类**:`handoffAssignedTopics()` 里那条走不到的 `if (!owner) continue;` 现在写清了使它不可达的四个
|
|
189
195
|
环节、每个环节各自被哪个测试固定,以及实测的反事实——删掉它整个测试套件的数字不变,而类型检查会报 5 个错误,所以它是
|
package/package.json
CHANGED
|
File without changes
|