@rindle/remote 0.4.4 → 0.5.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/dist/backend.d.ts CHANGED
@@ -25,6 +25,11 @@ export declare class RemoteBackend implements Backend {
25
25
  __attachDevtoolsServerDeltas(observer: BackendDevObserver): () => void;
26
26
  private subscribe;
27
27
  private onServerMsg;
28
+ /** Route a `queryError` by its 101 §5 classification: retryable ⇒ keep the QState (and the
29
+ * rows already folded downstream — 101 §6) and re-subscribe after a jittered backoff
30
+ * honoring `retryAfterMs`; terminal (or pre-classification servers) ⇒ drop the
31
+ * subscription, exactly as before (FOLLOWER-LAG-SHED §6.3). */
32
+ private onQueryError;
28
33
  private openSubscriber;
29
34
  private applyBatch;
30
35
  private emitServerEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIhI,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAahD,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAoB;IAClD,OAAO,CAAC,OAAO,CAAqD;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;gBAEvC,SAAS,EAAE,SAAS,EAAE,IAAI,GAAE,oBAAyB;IAOjE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAStE,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKnC;+FAC2F;IAC3F,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAI/D,4BAA4B,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAStE,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;CAMxB;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EACjD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,IAAI,GAAE,oBAAyB,GAC9B,KAAK,CAAC,CAAC,CAAC,CAGV"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIhI,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiBhD,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAoB;IAClD,OAAO,CAAC,OAAO,CAAqD;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;gBAEvC,SAAS,EAAE,SAAS,EAAE,IAAI,GAAE,oBAAyB;IAOjE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAStE,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAOnC;+FAC2F;IAC3F,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAI/D,4BAA4B,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAStE,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,WAAW;IAanB;;;oEAGgE;IAChE,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;CAMxB;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EACjD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,IAAI,GAAE,oBAAyB,GAC9B,KAAK,CAAC,CAAC,CAAC,CAGV"}
package/dist/backend.js CHANGED
@@ -10,6 +10,7 @@ import { Store } from "@rindle/client";
10
10
  import { ProtocolError, Subscriber } from "./protocol.js";
11
11
  import { defaultSubscribeTarget, isThenable, subscribeMessage, } from "./subscribe.js";
12
12
  import { WsTransport } from "./transport.js";
13
+ import { retryDelayMs } from "./query-error.js";
13
14
  export class RemoteBackend {
14
15
  transport;
15
16
  resolveSubscribe;
@@ -28,10 +29,13 @@ export class RemoteBackend {
28
29
  console.error(`[rindle-remote] flat query ${qid} has no named remote identity`);
29
30
  return;
30
31
  }
31
- this.subs.set(qid, { remote, subscriber: null, epoch: 0, resubscribing: false, subscribeTicket: 0 });
32
+ this.subs.set(qid, { remote, subscriber: null, epoch: 0, resubscribing: false, subscribeTicket: 0, retryTimer: undefined, retryAttempt: 0 });
32
33
  this.subscribe(qid, remote);
33
34
  }
34
35
  unregisterQuery(qid) {
36
+ const s = this.subs.get(qid);
37
+ if (s?.retryTimer !== undefined)
38
+ clearTimeout(s.retryTimer);
35
39
  this.subs.delete(qid);
36
40
  this.transport.send({ t: "unsubscribe", queryId: qid });
37
41
  }
@@ -57,6 +61,12 @@ export class RemoteBackend {
57
61
  const s = this.subs.get(qid);
58
62
  if (!s)
59
63
  return;
64
+ // A fresh subscribe (gap recovery, the retry timer itself) supersedes any scheduled
65
+ // retryable-error retry — never leave two subscribe paths racing for one query.
66
+ if (s.retryTimer !== undefined) {
67
+ clearTimeout(s.retryTimer);
68
+ s.retryTimer = undefined;
69
+ }
60
70
  const request = { queryId: qid, remote, mode: "flat" };
61
71
  const ticket = ++s.subscribeTicket;
62
72
  const send = (target) => {
@@ -85,8 +95,7 @@ export class RemoteBackend {
85
95
  }
86
96
  onServerMsg(msg) {
87
97
  if (msg.t === "queryError") {
88
- this.subs.delete(msg.queryId);
89
- console.error(`[rindle-remote] query ${msg.queryId} subscription rejected: ${msg.message}`);
98
+ this.onQueryError(msg.queryId, msg);
90
99
  return;
91
100
  }
92
101
  // This backend is flat-only; it ignores normalized frames (`nhello`/`nbatch`).
@@ -100,6 +109,37 @@ export class RemoteBackend {
100
109
  else
101
110
  this.applyBatch(msg.queryId, s, msg.batch);
102
111
  }
112
+ /** Route a `queryError` by its 101 §5 classification: retryable ⇒ keep the QState (and the
113
+ * rows already folded downstream — 101 §6) and re-subscribe after a jittered backoff
114
+ * honoring `retryAfterMs`; terminal (or pre-classification servers) ⇒ drop the
115
+ * subscription, exactly as before (FOLLOWER-LAG-SHED §6.3). */
116
+ onQueryError(qid, err) {
117
+ const s = this.subs.get(qid);
118
+ if (!s)
119
+ return;
120
+ if (err.retryable !== true) {
121
+ if (s.retryTimer !== undefined)
122
+ clearTimeout(s.retryTimer);
123
+ this.subs.delete(qid);
124
+ console.error(`[rindle-remote] query ${qid} subscription rejected: ${err.message}`);
125
+ return;
126
+ }
127
+ if (s.retryTimer !== undefined)
128
+ return; // a retry is already scheduled — don't stack them
129
+ s.subscriber = null; // stop validating the dead epoch; recovery is a fresh seq-0 hydrate
130
+ s.resubscribing = true;
131
+ const delay = retryDelayMs(s.retryAttempt++, err.retryAfterMs);
132
+ console.warn(`[rindle-remote] query ${qid} ${err.code ?? "error"} (retryable): re-subscribing in ${delay}ms: ${err.message}`);
133
+ const timer = setTimeout(() => {
134
+ const cur = this.subs.get(qid);
135
+ if (cur !== s)
136
+ return;
137
+ s.retryTimer = undefined;
138
+ this.subscribe(qid, s.remote);
139
+ }, delay);
140
+ timer.unref?.();
141
+ s.retryTimer = timer;
142
+ }
103
143
  openSubscriber(qid, s, hello) {
104
144
  try {
105
145
  // The Subscriber ctor validates the comparator + fingerprint and emits the `hello`
@@ -107,6 +147,7 @@ export class RemoteBackend {
107
147
  s.subscriber = new Subscriber(hello, (ev) => this.emitServerEvent(qid, ev));
108
148
  s.epoch = hello.epoch;
109
149
  s.resubscribing = false;
150
+ s.retryAttempt = 0; // a successful hello resets the retryable-error backoff
110
151
  }
111
152
  catch (e) {
112
153
  // A comparator/schema mismatch at hello is unrecoverable (a code-contract divergence) —
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,iFAAiF;AACjF,0FAA0F;AAC1F,kGAAkG;AAClG,EAAE;AACF,6FAA6F;AAC7F,6FAA6F;AAC7F,2FAA2F;AAE3F,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAyBhD,MAAM,OAAO,aAAa;IACP,SAAS,CAAY;IACrB,gBAAgB,CAAoB;IACpC,YAAY,CAAqB;IAC1C,OAAO,GAA4C,GAAG,EAAE,GAAE,CAAC,CAAC;IACnD,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEnD,YAAY,SAAoB,EAAE,OAA6B,EAAE;QAC/D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,sBAAsB,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,GAAY,EAAE,IAAa,EAAE,MAAoB;QAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,+BAA+B,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7I,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe,CAAC,GAAY;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,UAAU,KAAK,SAAS;YAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;+FAC2F;IAC3F,MAAM,CAAC,SAAqB;QAC1B,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,OAAgD;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,4BAA4B,CAAC,QAA4B;QACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;IAED,gFAAgF;IAExE,SAAS,CAAC,GAAY,EAAE,MAAmB;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,oFAAoF;QACpF,gFAAgF;QAChF,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC/B,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,MAAiD,EAAE,EAAE;YACjE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,eAAe,KAAK,MAAM;gBAAE,OAAO;YACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,GAAY,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,eAAe,KAAK,MAAM;gBAAE,OAAO;YACxD,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,iCAAiC,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QACvH,CAAC,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,UAAU,CAAC,MAAM,CAAC;gBAAE,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;gBAChD,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAc;QAChC,IAAI,GAAG,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,+EAA+E;QAC/E,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO;YAAE,OAAO;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,+BAA+B;QAC/C,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;;YACjE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED;;;oEAGgE;IACxD,YAAY,CAAC,GAAY,EAAE,GAAmF;QACpH,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,kDAAkD;QAC1F,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,oEAAoE;QACzF,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,mCAAmC,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,CAChH,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO;YACtB,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,EAAE,KAAK,CAAC,CAAC;QACT,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5C,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,cAAc,CAAC,GAAY,EAAE,CAAS,EAAE,KAAY;QAC1D,IAAI,CAAC;YACH,mFAAmF;YACnF,4DAA4D;YAC5D,CAAC,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,wDAAwD;QAC9E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,wFAAwF;YACxF,qDAAqD;YACrD,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,2BAA4B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAAY,EAAE,CAAS,EAAE,KAAY;QACtD,IAAI,CAAC,CAAC,CAAC,UAAU;YAAE,OAAO,CAAC,mCAAmC;QAC9D,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;YAAE,OAAO,CAAC,+CAA+C;QAClF,IAAI,CAAC;YACH,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC;gBAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,aAAa;gBAAE,OAAO,CAAC,qBAAqB;YAClD,oFAAoF;YACpF,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,GAAY,EAAE,EAAe;QACnD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY;gBAAE,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;CACF;AAED,6FAA6F;AAC7F,MAAM,UAAU,iBAAiB,CAC/B,MAAiB,EACjB,cAAkC,EAClC,OAA6B,EAAE;IAE/B,MAAM,SAAS,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACxG,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { MutationEnvelope, NormalizedEvent, NormalizedTableSchema, OptimisticSource, ProgressFrame, QueryId, RemoteQuery } from "@rindle/client";
1
+ import type { MutationEnvelope, MutationOutcomeFrame, NormalizedEvent, NormalizedTableSchema, OptimisticSource, ProgressFrame, QueryId, RemoteQuery } from "@rindle/client";
2
2
  import { type MutationEnvelopeSender, type SubscribeResolver } from "./subscribe.ts";
3
3
  import type { Transport } from "./transport.ts";
4
4
  /** Build a transport to a follower's public ws endpoint (READ-ROUTER-DESIGN.md §2.3). Default
@@ -36,6 +36,19 @@ export declare class RemoteOptimisticSource implements OptimisticSource {
36
36
  private handler;
37
37
  private progressHandler;
38
38
  private restartHandler;
39
+ private bootIdHandler;
40
+ private outcomeHandler;
41
+ private resyncHandler;
42
+ /** Set by {@link resync} when this is a LEASE-AUTH session (some sub presented a `leaseToken`):
43
+ * transport pushes queue in {@link pendingPushes} until the first authenticated re-subscribe's
44
+ * hello re-establishes the socket's subject, then flush (see QState.authed). Never set on a
45
+ * token-less (embedded/rindled) session — its pushes need no subject and go straight out. */
46
+ private awaitingAuthedHello;
47
+ /** Envelopes held while {@link awaitingAuthedHello} (H-v §7.5 rule 3). Every entry corresponds
48
+ * to a still-pending backend mutation (the re-send reconstructs from pending entries; app
49
+ * invokes in the window are pending by definition), so a superseding resync may CLEAR this —
50
+ * its own re-send regenerates whatever still matters. */
51
+ private pendingPushes;
39
52
  private readonly subs;
40
53
  /** Queries whose subscribe is waiting for a transport to exist — endpoint-less subscribes issued
41
54
  * in pure-lazy mode before any lease opens a transport (the lmid system query is registered by
@@ -85,19 +98,51 @@ export declare class RemoteOptimisticSource implements OptimisticSource {
85
98
  /** Register a handler fired when the DAEMON restarts (a new boot id) — the backend resets its
86
99
  * `cv` watermark so the new daemon's reset `cv` sequence is accepted instead of dropped. */
87
100
  onRestart(handler: () => void): void;
101
+ /** Register the observed boot-id stream (`301-ECHO-FENCE-DESIGN.md` §2.4): fired on the FIRST
102
+ * observed daemon boot id and on every change — the backend's client-local boot ordinals for
103
+ * the direction-B pin fence. A late registration is replayed the current id immediately, so
104
+ * ordinal 0 is never missed on an already-open connection. */
105
+ onBootId(handler: (bootId: string) => void): void;
88
106
  expectClientSchema(tables: NormalizedTableSchema[]): void;
89
107
  registerQuery(qid: QueryId, remote: RemoteQuery): void;
90
108
  unregisterQuery(qid: QueryId): void;
91
109
  pushMutation(envelope: MutationEnvelope): Promise<void>;
92
110
  onNormalized(handler: (qid: QueryId, ev: NormalizedEvent) => void): void;
93
111
  onProgress(handler: (frame: ProgressFrame) => void): void;
112
+ /** The room deopt handshake's verdict stream (H-v). Dispatched OUT-OF-BAND on arrival — see
113
+ * {@link onServerMsg}'s `mutationOutcome` arm for why it must never wait behind the cv buffer. */
114
+ onMutationOutcome(handler: (frame: MutationOutcomeFrame) => void): void;
115
+ /** Fired once per re-established session, SYNCHRONOUSLY inside {@link resync} — before any
116
+ * post-reconnect frame can release (the §7.5 rule-3 window: a replayed lmid snapshot must not
117
+ * retire an entry whose outcome frame died with the old socket before the re-send captured
118
+ * it). The backend re-sends the domain's unconfirmed pending envelopes with their original
119
+ * mids; on a lease-auth session their DELIVERY is deferred until the first token hello
120
+ * re-authenticates the socket ({@link pendingPushes}). */
121
+ onResync(handler: () => void): void;
94
122
  private subscribe;
95
123
  private onServerMsg;
96
- /** On reconnect: re-announce identity and re-subscribe every live query (each re-resolves its
97
- * lease, so a restarted daemon re-materializes + re-leases on the fly). */
124
+ /** On reconnect: re-announce identity, fire the `onResync` re-send, and re-subscribe every live
125
+ * query (each re-resolves its lease, so a restarted daemon re-materializes + re-leases on the
126
+ * fly). The re-send fires HERE — synchronously, before any post-reconnect frame can be
127
+ * processed — because the §7.5 rule-3 window closes fast: the re-subscribed lmid stream's
128
+ * fresh snapshot may cover a mid whose outcome frame died with the OLD socket, and once the
129
+ * release retires that entry as an apparent success there is nothing left to re-send (the
130
+ * lost-deopt write would silently vanish). Firing now captures the in-flight set intact; on a
131
+ * lease-auth session the envelopes themselves are HELD ({@link pendingPushes}) until the first
132
+ * token re-subscribe's hello re-authenticates the socket, then flush in order — so the shell's
133
+ * subject gate never refuses them, and its re-answer (a recorded outcome for any non-applied
134
+ * mid) resolves even an already-retired entry via the handshake's not-found arm. */
98
135
  private resync;
99
- /** Track the daemon's boot id; a change (after the first) means it restarted — fire onRestart. */
136
+ /** Track the daemon's boot id; a change (after the first) means it restarted — fire onRestart.
137
+ * Every NEW id (including the first) also feeds {@link onBootId} — the §301 boot-ordinal
138
+ * stream. */
100
139
  private observeBootId;
140
+ /** Route a `queryError` by its 101 §5 classification: retryable ⇒ keep the QState (and the
141
+ * rows already folded downstream — 101 §6) and re-subscribe after a jittered backoff
142
+ * honoring `retryAfterMs`; terminal (or pre-classification servers) ⇒ drop the
143
+ * subscription, exactly as before. Fixes the stranded-client gap: a worker fault's or a
144
+ * shedding follower's error now heals end-to-end (FOLLOWER-LAG-SHED §6.3). */
145
+ private onQueryError;
101
146
  private openSubscriber;
102
147
  private applyBatch;
103
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"optimistic-source.d.ts","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimistic-source.d.ts","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@
14
14
  // `cv`-stamped snapshot + a progress frame that releases it.
15
15
  import { LMID_QUERY_NAME } from "@rindle/client";
16
16
  import { NormalizedSubscriber } from "./normalized.js";
17
+ import { retryDelayMs } from "./query-error.js";
17
18
  import { ProtocolError } from "./protocol.js";
18
19
  import { defaultSubscribeTarget, isThenable, subscribeMessage, } from "./subscribe.js";
19
20
  import { WsTransport } from "./transport.js";
@@ -30,6 +31,19 @@ export class RemoteOptimisticSource {
30
31
  handler = () => { };
31
32
  progressHandler = () => { };
32
33
  restartHandler = () => { };
34
+ bootIdHandler = () => { };
35
+ outcomeHandler = () => { };
36
+ resyncHandler = () => { };
37
+ /** Set by {@link resync} when this is a LEASE-AUTH session (some sub presented a `leaseToken`):
38
+ * transport pushes queue in {@link pendingPushes} until the first authenticated re-subscribe's
39
+ * hello re-establishes the socket's subject, then flush (see QState.authed). Never set on a
40
+ * token-less (embedded/rindled) session — its pushes need no subject and go straight out. */
41
+ awaitingAuthedHello = false;
42
+ /** Envelopes held while {@link awaitingAuthedHello} (H-v §7.5 rule 3). Every entry corresponds
43
+ * to a still-pending backend mutation (the re-send reconstructs from pending entries; app
44
+ * invokes in the window are pending by definition), so a superseding resync may CLEAR this —
45
+ * its own re-send regenerates whatever still matters. */
46
+ pendingPushes = [];
33
47
  subs = new Map();
34
48
  /** Queries whose subscribe is waiting for a transport to exist — endpoint-less subscribes issued
35
49
  * in pure-lazy mode before any lease opens a transport (the lmid system query is registered by
@@ -139,22 +153,48 @@ export class RemoteOptimisticSource {
139
153
  close() {
140
154
  this.closed = true;
141
155
  this.transport?.close();
156
+ for (const s of this.subs.values()) {
157
+ if (s.retryTimer !== undefined)
158
+ clearTimeout(s.retryTimer);
159
+ }
142
160
  this.subs.clear();
143
161
  this.deferred.clear();
162
+ this.pendingPushes.length = 0;
144
163
  }
145
164
  /** Register a handler fired when the DAEMON restarts (a new boot id) — the backend resets its
146
165
  * `cv` watermark so the new daemon's reset `cv` sequence is accepted instead of dropped. */
147
166
  onRestart(handler) {
148
167
  this.restartHandler = handler;
149
168
  }
169
+ /** Register the observed boot-id stream (`301-ECHO-FENCE-DESIGN.md` §2.4): fired on the FIRST
170
+ * observed daemon boot id and on every change — the backend's client-local boot ordinals for
171
+ * the direction-B pin fence. A late registration is replayed the current id immediately, so
172
+ * ordinal 0 is never missed on an already-open connection. */
173
+ onBootId(handler) {
174
+ this.bootIdHandler = handler;
175
+ if (this.lastBootId !== undefined)
176
+ handler(this.lastBootId);
177
+ }
150
178
  expectClientSchema(tables) {
151
179
  this.clientTables = tables;
152
180
  }
153
181
  registerQuery(qid, remote) {
154
- this.subs.set(qid, { remote, subscriber: null, epoch: 0, resubscribing: false, subscribeTicket: 0 });
182
+ this.subs.set(qid, {
183
+ remote,
184
+ subscriber: null,
185
+ epoch: 0,
186
+ resubscribing: false,
187
+ subscribeTicket: 0,
188
+ retryTimer: undefined,
189
+ retryAttempt: 0,
190
+ authed: false,
191
+ });
155
192
  this.subscribe(qid, remote);
156
193
  }
157
194
  unregisterQuery(qid) {
195
+ const s = this.subs.get(qid);
196
+ if (s?.retryTimer !== undefined)
197
+ clearTimeout(s.retryTimer);
158
198
  this.subs.delete(qid);
159
199
  this.deferred.delete(qid);
160
200
  this.transport?.send({ t: "unsubscribe", queryId: qid });
@@ -162,6 +202,13 @@ export class RemoteOptimisticSource {
162
202
  pushMutation(envelope) {
163
203
  if (this.pushMutationSender)
164
204
  return Promise.resolve(this.pushMutationSender(envelope));
205
+ // A lease-auth session that just reconnected is not yet re-authenticated (the shell's
206
+ // `pushMutation` subject gate would refuse) — hold the envelope until the first token
207
+ // re-subscribe's hello, then flush in order (H-v §7.5 rule 3).
208
+ if (this.awaitingAuthedHello) {
209
+ this.pendingPushes.push(envelope);
210
+ return Promise.resolve();
211
+ }
165
212
  this.transport?.send({ t: "pushMutation", envelope });
166
213
  return Promise.resolve();
167
214
  }
@@ -171,11 +218,31 @@ export class RemoteOptimisticSource {
171
218
  onProgress(handler) {
172
219
  this.progressHandler = handler;
173
220
  }
221
+ /** The room deopt handshake's verdict stream (H-v). Dispatched OUT-OF-BAND on arrival — see
222
+ * {@link onServerMsg}'s `mutationOutcome` arm for why it must never wait behind the cv buffer. */
223
+ onMutationOutcome(handler) {
224
+ this.outcomeHandler = handler;
225
+ }
226
+ /** Fired once per re-established session, SYNCHRONOUSLY inside {@link resync} — before any
227
+ * post-reconnect frame can release (the §7.5 rule-3 window: a replayed lmid snapshot must not
228
+ * retire an entry whose outcome frame died with the old socket before the re-send captured
229
+ * it). The backend re-sends the domain's unconfirmed pending envelopes with their original
230
+ * mids; on a lease-auth session their DELIVERY is deferred until the first token hello
231
+ * re-authenticates the socket ({@link pendingPushes}). */
232
+ onResync(handler) {
233
+ this.resyncHandler = handler;
234
+ }
174
235
  // --- internals ---------------------------------------------------------------
175
236
  subscribe(qid, remote) {
176
237
  const s = this.subs.get(qid);
177
238
  if (!s)
178
239
  return;
240
+ // A fresh subscribe (reconnect resync, gap recovery, the retry timer itself) supersedes any
241
+ // scheduled retryable-error retry — never leave two subscribe paths racing for one query.
242
+ if (s.retryTimer !== undefined) {
243
+ clearTimeout(s.retryTimer);
244
+ s.retryTimer = undefined;
245
+ }
179
246
  const request = { queryId: qid, remote, mode: "normalized" };
180
247
  const ticket = ++s.subscribeTicket;
181
248
  const send = (target) => {
@@ -185,6 +252,7 @@ export class RemoteOptimisticSource {
185
252
  if (cur !== s || cur.subscribeTicket !== ticket)
186
253
  return;
187
254
  const endpoint = "leaseToken" in target ? target.wsEndpoint : undefined;
255
+ s.authed = "leaseToken" in target; // a token subscribe (re-)authenticates the socket (H-v)
188
256
  if (endpoint !== undefined)
189
257
  this.sawRoutedEndpoint = true;
190
258
  if (this.transport) {
@@ -234,9 +302,23 @@ export class RemoteOptimisticSource {
234
302
  this.progressHandler(msg.frame);
235
303
  return;
236
304
  }
305
+ if (msg.t === "mutationOutcome") {
306
+ // OUT-OF-BAND BY DESIGN (H-v): the frame has no `cv`, so it must NEVER be routed through the
307
+ // backend's cv buffer — dispatch immediately. A deopt has to migrate its pending entry to
308
+ // the daemon stream BEFORE the buffered lmid release that would otherwise retire it as a
309
+ // success (silence + lmid coverage ⇒ applied), and the §7.3 hold-back trigger — keyed on the
310
+ // entry's confirming domain — would then park its staged writes the wrong way.
311
+ this.outcomeHandler({
312
+ mid: msg.mid,
313
+ kind: msg.kind,
314
+ ...(msg.reason !== undefined ? { reason: msg.reason } : {}),
315
+ ...(msg.name !== undefined ? { name: msg.name } : {}),
316
+ ...("args" in msg ? { args: msg.args } : {}),
317
+ });
318
+ return;
319
+ }
237
320
  if (msg.t === "queryError") {
238
- this.subs.delete(msg.queryId);
239
- console.error(`[rindle-remote] optimistic query ${msg.queryId} subscription rejected: ${msg.message}`);
321
+ this.onQueryError(msg.queryId, msg);
240
322
  return;
241
323
  }
242
324
  if (msg.t !== "nhello" && msg.t !== "nbatch")
@@ -253,27 +335,92 @@ export class RemoteOptimisticSource {
253
335
  else
254
336
  this.applyBatch(msg.queryId, s, msg.batch);
255
337
  }
256
- /** On reconnect: re-announce identity and re-subscribe every live query (each re-resolves its
257
- * lease, so a restarted daemon re-materializes + re-leases on the fly). */
338
+ /** On reconnect: re-announce identity, fire the `onResync` re-send, and re-subscribe every live
339
+ * query (each re-resolves its lease, so a restarted daemon re-materializes + re-leases on the
340
+ * fly). The re-send fires HERE — synchronously, before any post-reconnect frame can be
341
+ * processed — because the §7.5 rule-3 window closes fast: the re-subscribed lmid stream's
342
+ * fresh snapshot may cover a mid whose outcome frame died with the OLD socket, and once the
343
+ * release retires that entry as an apparent success there is nothing left to re-send (the
344
+ * lost-deopt write would silently vanish). Firing now captures the in-flight set intact; on a
345
+ * lease-auth session the envelopes themselves are HELD ({@link pendingPushes}) until the first
346
+ * token re-subscribe's hello re-authenticates the socket, then flush in order — so the shell's
347
+ * subject gate never refuses them, and its re-answer (a recorded outcome for any non-applied
348
+ * mid) resolves even an already-retired entry via the handshake's not-found arm. */
258
349
  resync() {
259
350
  if (this.closed)
260
351
  return;
261
352
  this.transport?.send({ t: "init", clientID: this.clientID });
353
+ // Lease-auth session ⇒ hold pushes until re-authed. A stale queue from a superseded resync is
354
+ // cleared first: every held envelope maps to a still-pending mutation, and THIS resync's
355
+ // re-send below regenerates whatever still matters (no loss, no stale duplicates).
356
+ this.pendingPushes.length = 0;
357
+ this.awaitingAuthedHello = [...this.subs.values()].some((s) => s.authed);
358
+ this.resyncHandler();
262
359
  this.resubscribeAll();
263
360
  }
264
- /** Track the daemon's boot id; a change (after the first) means it restarted — fire onRestart. */
361
+ /** Track the daemon's boot id; a change (after the first) means it restarted — fire onRestart.
362
+ * Every NEW id (including the first) also feeds {@link onBootId} — the §301 boot-ordinal
363
+ * stream. */
265
364
  observeBootId(bootId) {
266
365
  if (!bootId)
267
366
  return;
268
367
  if (this.lastBootId !== undefined && bootId !== this.lastBootId)
269
368
  this.restartHandler();
270
- this.lastBootId = bootId;
369
+ if (bootId !== this.lastBootId) {
370
+ this.lastBootId = bootId;
371
+ this.bootIdHandler(bootId);
372
+ }
373
+ }
374
+ /** Route a `queryError` by its 101 §5 classification: retryable ⇒ keep the QState (and the
375
+ * rows already folded downstream — 101 §6) and re-subscribe after a jittered backoff
376
+ * honoring `retryAfterMs`; terminal (or pre-classification servers) ⇒ drop the
377
+ * subscription, exactly as before. Fixes the stranded-client gap: a worker fault's or a
378
+ * shedding follower's error now heals end-to-end (FOLLOWER-LAG-SHED §6.3). */
379
+ onQueryError(qid, err) {
380
+ const s = this.subs.get(qid);
381
+ if (!s)
382
+ return;
383
+ if (err.retryable !== true) {
384
+ if (s.retryTimer !== undefined)
385
+ clearTimeout(s.retryTimer);
386
+ this.subs.delete(qid);
387
+ console.error(`[rindle-remote] optimistic query ${qid} subscription rejected: ${err.message}`);
388
+ return;
389
+ }
390
+ if (s.retryTimer !== undefined)
391
+ return; // a retry is already scheduled — don't stack them
392
+ s.subscriber = null; // stop validating the dead epoch; recovery is a fresh seq-0 hydrate
393
+ s.resubscribing = true;
394
+ const delay = retryDelayMs(s.retryAttempt++, err.retryAfterMs);
395
+ console.warn(`[rindle-remote] optimistic query ${qid} ${err.code ?? "error"} (retryable): re-subscribing in ${delay}ms: ${err.message}`);
396
+ const timer = setTimeout(() => {
397
+ const cur = this.subs.get(qid);
398
+ if (cur !== s)
399
+ return;
400
+ s.retryTimer = undefined;
401
+ this.subscribe(qid, s.remote);
402
+ }, delay);
403
+ // Node returns a Timeout (unref keeps a retiring process from being pinned by a retry);
404
+ // browsers return a number, where the optional call is a no-op.
405
+ timer.unref?.();
406
+ s.retryTimer = timer;
271
407
  }
272
408
  openSubscriber(qid, s, hello) {
273
409
  try {
274
410
  s.subscriber = new NormalizedSubscriber(hello, (ev) => this.handler(qid, ev), this.clientTables);
275
411
  s.epoch = hello.epoch;
276
412
  s.resubscribing = false;
413
+ s.retryAttempt = 0; // a successful hello resets the retryable-error backoff
414
+ // H-v §7.5 rule 3: the first AUTHENTICATED hello after a reconnect proves the socket is
415
+ // re-authorized (the shell set its subject from the verified token — pushMutation-ready):
416
+ // flush the held envelopes, in order. A token-less hello (the lmid system query) does not
417
+ // qualify — an envelope racing ahead of the lease-token subscribe would be refused.
418
+ if (this.awaitingAuthedHello && s.authed) {
419
+ this.awaitingAuthedHello = false;
420
+ for (const envelope of this.pendingPushes.splice(0)) {
421
+ this.transport?.send({ t: "pushMutation", envelope });
422
+ }
423
+ }
277
424
  }
278
425
  catch (e) {
279
426
  // A comparator/fp mismatch at hello is unrecoverable (a code-contract divergence).
@@ -1 +1 @@
1
- {"version":3,"file":"optimistic-source.js","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimistic-source.js","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"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"}
@@ -85,9 +85,19 @@ export type ServerMsg = {
85
85
  t: "queryError";
86
86
  queryId: number;
87
87
  message: string;
88
+ code?: string;
89
+ retryable?: boolean;
90
+ retryAfterMs?: number;
88
91
  } | {
89
92
  t: "progress";
90
93
  frame: ProgressFrame;
94
+ } | {
95
+ t: "mutationOutcome";
96
+ mid: number;
97
+ kind: "deopt" | "rejected";
98
+ reason?: string;
99
+ name?: string;
100
+ args?: unknown;
91
101
  } | {
92
102
  t: "error";
93
103
  queryId?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}