cross-tab-worker-databus 0.20.20 → 0.20.22

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 CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  本项目遵循 [Semantic Versioning](https://semver.org/);变更记录格式参考 [Keep a Changelog](https://keepachangelog.com/)。
4
4
 
5
+ ## [0.20.22] - 2026-09-03
6
+
7
+ ### Fixed
8
+
9
+ - Explicit stop/restart lifecycles now reset recovery attempt and exhaustion state so a new session starts with a fresh diagnostic sequence.
10
+
11
+ ## [0.20.21] - 2026-09-03
12
+
13
+ ### Fixed
14
+
15
+ - Recovery exhaustion diagnostics are now emitted at most once per failed recovery sequence and reset after a successful reopen.
16
+
5
17
  ## [0.20.20] - 2026-09-03
6
18
 
7
19
  ### Added
@@ -2,7 +2,7 @@ import {
2
2
  CrossTabDataBus,
3
3
  parseDataBusPublication,
4
4
  selectWorkerBackend
5
- } from "./chunk-2PUSQWOL.js";
5
+ } from "./chunk-JOQXQPGI.js";
6
6
 
7
7
  // src/centrifuge-session.ts
8
8
  import { Centrifuge } from "centrifuge";
@@ -1275,6 +1275,7 @@ var CrossTabDataBus = class {
1275
1275
  // Monotonic attempt number within one runtime recovery sequence; reset once
1276
1276
  // a transport reopen succeeds so traces can correlate repeated failures.
1277
1277
  recoveryAttempt = 0;
1278
+ recoveryExhausted = false;
1278
1279
  // True while the tab is hidden so an in-flight transport start does not mark
1279
1280
  // the transport ready after suspendTransport() has stopped it.
1280
1281
  suspended = false;
@@ -1673,6 +1674,8 @@ var CrossTabDataBus = class {
1673
1674
  this.pendingStop = null;
1674
1675
  this.lastError = null;
1675
1676
  this.activeConfig = void 0;
1677
+ this.recoveryAttempt = 0;
1678
+ this.recoveryExhausted = false;
1676
1679
  this.updateStatus("disconnected");
1677
1680
  }
1678
1681
  }
@@ -1883,7 +1886,10 @@ var CrossTabDataBus = class {
1883
1886
  this.lastRecoveryAt = now;
1884
1887
  const attempt = ++this.recoveryAttempt;
1885
1888
  if (attempt > this.recoveryMaxAttempts) {
1886
- this.trace.event({ type: "reliability", operation: "transport_recovery", attempt: this.recoveryMaxAttempts, outcome: "exhausted" });
1889
+ if (!this.recoveryExhausted) {
1890
+ this.recoveryExhausted = true;
1891
+ this.trace.event({ type: "reliability", operation: "transport_recovery", attempt: this.recoveryMaxAttempts, outcome: "exhausted" });
1892
+ }
1887
1893
  return;
1888
1894
  }
1889
1895
  this.trace.event({ type: "reliability", operation: "transport_recovery", attempt, outcome: "scheduled" });
@@ -1997,6 +2003,7 @@ var CrossTabDataBus = class {
1997
2003
  if (traceAttempt !== void 0) {
1998
2004
  this.trace.event({ type: "reliability", operation: "transport_recovery", attempt: traceAttempt, outcome: "succeeded" });
1999
2005
  this.recoveryAttempt = 0;
2006
+ this.recoveryExhausted = false;
2000
2007
  }
2001
2008
  if (this.startPromise === opening) this.startPromise = null;
2002
2009
  },
@@ -2104,4 +2111,4 @@ export {
2104
2111
  parseDataBusPublication,
2105
2112
  selectWorkerBackend
2106
2113
  };
2107
- //# sourceMappingURL=chunk-2PUSQWOL.js.map
2114
+ //# sourceMappingURL=chunk-JOQXQPGI.js.map