@rindle/optimistic 0.7.2 → 0.7.3

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/README.md CHANGED
@@ -18,7 +18,7 @@ export const app = await createRindleClient({
18
18
  mutators, // one generator body per mutator, run on both tiers
19
19
  user: () => currentUser(), // the acting principal a mutator sees as ctx.user
20
20
  api: { url: "" }, // your API server (named queries + mutations)
21
- daemon: { wsUrl: "ws://127.0.0.1:7601" }, // the rindled follower's PUBLIC subscription port
21
+ // No topology config: the first query lease returns the ws endpoint + placement ticket.
22
22
  });
23
23
 
24
24
  app.mutate.createIssue({ id, title: "ship it", createdAt: Date.now() }); // applies NOW, rebases on confirm
package/dist/client.d.ts CHANGED
@@ -160,20 +160,21 @@ export interface RindleClientOptions<S extends ColsMap, R extends ClientRegistry
160
160
  headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
161
161
  fetch?: typeof fetch;
162
162
  };
163
- /** Where the live subscription ws connects.
163
+ /** Optional subscription transport override. Omit it in the normal unified setup: the first
164
+ * query lease carries `wsEndpoint` + a fresh affinity ticket and opens the transport lazily.
164
165
  * - `{ wsUrl }` — a static endpoint (single daemon), opened eagerly; in a routed deploy this is
165
166
  * the SSR-injected bootstrap endpoint (READ-ROUTER-DESIGN.md §2.4). A routed lease naming a
166
167
  * different follower migrates the connection there.
167
- * - `{ wsUrl }` omitted — pure-lazy: the first lease's `wsEndpoint` opens the connection (a
168
+ * - `{ wsUrl }` omitted (or this whole option omitted) — pure-lazy: the first lease's
169
+ * `wsEndpoint` opens the connection (a
168
170
  * routed SPA with no SSR bootstrap).
169
171
  * - `{ transport }` — a pre-built transport (tests / in-process); fixed, no migration.
170
172
  *
171
- * Set `affinity: true` (with `wsUrl` pointing at the fleet host, `app-<id>.rindle.cloud`) to run
172
- * FOLLOWER-AFFINITY mode (design §2): the ws offers a placement ticket as a subprotocol, the
173
- * client persists the follower's minted ticket (per-tab) and forwards it on the lease POST so both
174
- * legs pin the same nearby follower sticky, regional, monotone reads. Off (default) is today's
175
- * single-daemon behavior, byte-identical. Ignored for a pre-built `{ transport }`. */
176
- daemon: {
173
+ * With a fixed `wsUrl`, set `affinity: true` to opt into FOLLOWER-AFFINITY mode (design §2).
174
+ * With no daemon option, a lease that returns an affinity ticket enables the same mode
175
+ * automatically before opening its socket. The ticket is persisted per-tab and forwarded on
176
+ * later leases so both legs pin the same nearby follower. Ignored for `{ transport }`. */
177
+ daemon?: {
177
178
  wsUrl?: string;
178
179
  affinity?: boolean;
179
180
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAEV,OAAO,EACP,SAAS,EACT,gBAAgB,EAEhB,OAAO,EAGP,MAAM,EACP,MAAM,gBAAgB,CAAC;AAQxB,OAAO,KAAK,EAAgE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG9G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/D,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAiD,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAWjD;;;;;qGAKqG;AACrG,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,EACJ;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACrE;AAED,+FAA+F;AAC/F,MAAM,WAAW,kBAAkB;IACjC,qGAAqG;IACrG,SAAS,EAAE,MAAM,CAAC;IAClB;kFAC8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB;6CACyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAED;;;;;wCAKwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;kDAGkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED;;;;;+FAK+F;AAC/F,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAeD,MAAM,MAAM,mBAAmB;AAC7B;;;mFAGmF;AACjF,WAAW;AACb;;uFAEuF;GACrF,iBAAiB;AACnB;;;kGAGkG;GAChG,oBAAoB;AACtB;8EAC8E;GAC5E,cAAc,CAAC;AAEnB,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;2BAC2B;AAC3B,MAAM,WAAW,qBAAqB;IACpC;;;;;;;kDAO8C;IAC9C,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;6FACyF;IACzF,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;IAC5C,mGAAmG;IACnG,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C;;;4CAGwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;qEACqE;AACrE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,UAAU,EAAE,MAAM,CAAC;QACnB;;4CAEoC;QACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,8DAA8D;QAC9D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,OAAO,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9F,CACF,CAAC;CACH;AAqBD,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc;IAC9E,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,qFAAqF;IACrF,QAAQ,EAAE,CAAC,CAAC;IACZ;;qGAEiG;IACjG,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB,qFAAqF;IACrF,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7C,6EAA6E;QAC7E,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACtB,CAAC;IACF;;;;;;;;;;;;;+FAa2F;IAC3F,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAC3E;;;uBAGmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;iGAE6F;IAC7F,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE;;;;;;kFAM8E;IAC9E,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,CAAC;IAC1E;;;;;;;;;uDASmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IACnE,oGAAoG;IACpG,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC;yEACqE;IACrE,GAAG,CAAC,EAAE;QACJ;0FACkF;QAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc;IACvE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B;gFAC4E;IAC5E,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAC1D;kFAC8E;IAC9E,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,IAAI,IAAI,CAAC;IACd;6FACyF;IACzF,iBAAiB,IAAI,eAAe,CAAC;CACtC;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EAClF,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAggC7B;AA2GD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
package/dist/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // createRindleClient — the one-call client for the daemon/serverless topology:
2
2
  //
3
- // const app = await createRindleClient({ schema, mutators, api: { url }, daemon: { wsUrl } });
3
+ // const app = await createRindleClient({ schema, mutators, api: { url } });
4
4
  // const view = app.store.materialize(queries.allIssues());
5
5
  // app.mutate.createIssue({ id: 1, title: "hi", score: 0 });
6
6
  //
@@ -54,15 +54,15 @@ export async function createRindleClient(opts) {
54
54
  throw new RindleApiHttpError(path, res.status, text);
55
55
  return text ? JSON.parse(text) : undefined;
56
56
  };
57
- // FOLLOWER-AFFINITY mode (design §2): opt-in, and only for a fleet `wsUrl` connection (a pre-built
58
- // transport has no fleet edge to route through). The store is shared by the ws transport (offers
59
- // the ticket as a subprotocol), the source (records the follower's minted ticket / clears it on a
60
- // dead follower), and the lease POST below (forwards it). Persisted per-TAB (sessionStorage) so two
61
- // tabs can pin two regions (design §13) yet a reload lands back on the same follower.
62
- const affinityOn = !("transport" in opts.daemon) && opts.daemon.affinity === true;
63
- const affinityStore = affinityOn
64
- ? createAffinityTicketStore(sessionTicketPersistence())
65
- : undefined;
57
+ // FOLLOWER-AFFINITY mode (design §2): explicit for an eager fleet endpoint, or activated by the
58
+ // first pure-lazy lease's placement ticket. A pre-built transport has no fleet edge to route
59
+ // through. The store is shared by the ws transport, source, and lease POST, and persisted per-tab.
60
+ const daemon = opts.daemon ?? {};
61
+ const leaseDiscoversAffinity = !("transport" in daemon) && daemon.wsUrl === undefined;
62
+ let affinityOn = !("transport" in daemon) && daemon.affinity === true;
63
+ // A replaceable connection always has a dormant store. The first lease can activate it before
64
+ // that same lease's `wsEndpoint` constructs the pure-lazy socket.
65
+ const affinityStore = "transport" in daemon ? undefined : createAffinityTicketStore(sessionTicketPersistence());
66
66
  // The ONE app-lease POST both legs share. Sends the stable `clientId` so the api-server/router
67
67
  // can use it as the anonymous routing key (READ-ROUTER-DESIGN.md §2.2); the reply's top-level
68
68
  // fields are the daemon lease, and a room-served labeled query ADDITIONALLY carries `realtime`.
@@ -77,9 +77,9 @@ export async function createRindleClient(opts) {
77
77
  // forwarded on a lease until the CURRENT connection refreshes it, preventing a restored stale
78
78
  // ticket from independently re-pinning the HTTP and ws legs.
79
79
  let affinityFallbackWarned = false;
80
- const postLease = async (remote) => {
80
+ const performPostLease = async (remote) => {
81
81
  let affinity;
82
- if (affinityStore) {
82
+ if (affinityOn && affinityStore) {
83
83
  const ticket = await affinityStore.leaseTicket(AFFINITY_TICKET_TIMEOUT_MS);
84
84
  affinity = ticket.ticket;
85
85
  if (affinity !== undefined)
@@ -90,12 +90,50 @@ export async function createRindleClient(opts) {
90
90
  "(is the daemon affinity-enabled / RINDLE_AFFINITY_KEY set?)");
91
91
  }
92
92
  }
93
- return post(routes.query, {
93
+ const out = (await post(routes.query, {
94
94
  name: remote.name,
95
95
  args: remote.args,
96
96
  clientId: clientID,
97
97
  ...(affinity !== undefined ? { affinity } : {}),
98
+ }));
99
+ // A lease ticket ACTIVATES affinity (recorded before the pure-lazy socket opens), but never
100
+ // refreshes an already-active store: once a connection exists, only ITS `{t:"affinity"}` frames
101
+ // may mark the ticket connection-fresh (`connectionPending` discipline) — an HTTP response
102
+ // landing mid-reconnect must not re-pin the legs onto a follower the socket already left.
103
+ if (affinityStore && out.affinity !== undefined && !affinityOn && leaseDiscoversAffinity) {
104
+ affinityStore.set(out.affinity);
105
+ affinityOn = true;
106
+ }
107
+ // A successful ticketless reply settles discovery either way: the backend does not do
108
+ // placement, so stop serializing leases. (A thrown POST leaves discovery pending — the next
109
+ // queued lease becomes the discoverer.)
110
+ discoveryPending = false;
111
+ return out;
112
+ };
113
+ // Pure-lazy clients do not know they are affinity-enabled until the first lease replies. Queue
114
+ // that discovery window so only one ticketless POST can be in flight: once it establishes a
115
+ // placement, every queued lease re-checks `affinityOn` in `performPostLease` and forwards the
116
+ // same ticket. Without this gate, concurrent first materializations could land on different
117
+ // followers and mint leases that the one stable WebSocket can never subscribe to correctly.
118
+ // The window closes on the first completed lease — with a ticket (affinity on) or without (the
119
+ // backend mints none; leases run unserialized from then on).
120
+ let discoveryPending = leaseDiscoversAffinity;
121
+ let affinityDiscoveryTail = Promise.resolve();
122
+ const postLease = async (remote) => {
123
+ if (!discoveryPending || affinityOn)
124
+ return performPostLease(remote);
125
+ const previous = affinityDiscoveryTail;
126
+ let release;
127
+ affinityDiscoveryTail = new Promise((resolve) => {
128
+ release = resolve;
98
129
  });
130
+ await previous;
131
+ try {
132
+ return await performPostLease(remote);
133
+ }
134
+ finally {
135
+ release();
136
+ }
99
137
  };
100
138
  // One-shot fresh-token handoffs, by remote key: G-v's resolve-then-register (and the proactive
101
139
  // renewal) has ALREADY leased when the subscribe fires, so the resolver consumes the handed
@@ -133,14 +171,14 @@ export async function createRindleClient(opts) {
133
171
  // from `wsUrl` (eager when present, lazy when omitted). A routed lease's `wsEndpoint` migrates it.
134
172
  // In affinity mode each transport offers the current ticket as a subprotocol (evaluated per
135
173
  // connect, so a reconnect presents the freshest — or freshly cleared — ticket).
136
- const connection = "transport" in opts.daemon
137
- ? { transport: opts.daemon.transport }
174
+ const connection = "transport" in daemon
175
+ ? { transport: daemon.transport }
138
176
  : {
139
- factory: (endpoint) => new WsTransport(endpoint, affinityStore ? { subprotocols: () => offerSubprotocols(affinityStore) } : {}),
140
- endpoint: opts.daemon.wsUrl,
177
+ factory: (endpoint) => new WsTransport(endpoint, affinityOn && affinityStore ? { subprotocols: () => offerSubprotocols(affinityStore) } : {}),
178
+ endpoint: daemon.wsUrl,
141
179
  };
142
180
  const source = new RemoteOptimisticSource(connection, clientID, {
143
- ...(affinityStore ? { affinity: affinityStore } : {}),
181
+ ...(affinityStore ? { affinity: () => (affinityOn ? affinityStore : undefined) } : {}),
144
182
  resolveSubscribe: async ({ remote }) => {
145
183
  // A fail-open labeled register already leased — present exactly that token (see
146
184
  // `tokenHandoffs`); otherwise lease now. Read back the follower's `wsEndpoint` for placement.
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindle/optimistic",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,15 +25,15 @@
25
25
  "README.md"
26
26
  ],
27
27
  "dependencies": {
28
- "@rindle/client": "0.7.2",
29
- "@rindle/normalized": "0.7.2",
30
- "@rindle/wasm": "0.7.2",
31
- "@rindle/remote": "0.7.2"
28
+ "@rindle/client": "0.7.3",
29
+ "@rindle/wasm": "0.7.3",
30
+ "@rindle/remote": "0.7.3",
31
+ "@rindle/normalized": "0.7.3"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^22.10.0",
35
35
  "typescript": "^5.7.0",
36
- "@rindle/narrator": "0.7.2",
36
+ "@rindle/narrator": "0.7.3",
37
37
  "@rindle/replica": "0.0.0"
38
38
  },
39
39
  "scripts": {
package/src/client.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  // createRindleClient — the one-call client for the daemon/serverless topology:
2
2
  //
3
- // const app = await createRindleClient({ schema, mutators, api: { url }, daemon: { wsUrl } });
3
+ // const app = await createRindleClient({ schema, mutators, api: { url } });
4
4
  // const view = app.store.materialize(queries.allIssues());
5
5
  // app.mutate.createIssue({ id: 1, title: "hi", score: 0 });
6
6
  //
@@ -136,6 +136,9 @@ export interface RealtimeFenceBlock {
136
136
  interface QueryLeaseWire {
137
137
  leaseToken: string;
138
138
  wsEndpoint?: string;
139
+ /** Fresh placement ticket for the follower that minted this lease. When present on the first
140
+ * pure-lazy lease, it enables affinity before the returned endpoint opens. */
141
+ affinity?: string;
139
142
  realtime?: RealtimeLeaseBlock;
140
143
  realtimeFence?: RealtimeFenceBlock;
141
144
  lifecycle?: LifecycleLeaseBlock;
@@ -244,20 +247,21 @@ export interface RindleClientOptions<S extends ColsMap, R extends ClientRegistry
244
247
  headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
245
248
  fetch?: typeof fetch;
246
249
  };
247
- /** Where the live subscription ws connects.
250
+ /** Optional subscription transport override. Omit it in the normal unified setup: the first
251
+ * query lease carries `wsEndpoint` + a fresh affinity ticket and opens the transport lazily.
248
252
  * - `{ wsUrl }` — a static endpoint (single daemon), opened eagerly; in a routed deploy this is
249
253
  * the SSR-injected bootstrap endpoint (READ-ROUTER-DESIGN.md §2.4). A routed lease naming a
250
254
  * different follower migrates the connection there.
251
- * - `{ wsUrl }` omitted — pure-lazy: the first lease's `wsEndpoint` opens the connection (a
255
+ * - `{ wsUrl }` omitted (or this whole option omitted) — pure-lazy: the first lease's
256
+ * `wsEndpoint` opens the connection (a
252
257
  * routed SPA with no SSR bootstrap).
253
258
  * - `{ transport }` — a pre-built transport (tests / in-process); fixed, no migration.
254
259
  *
255
- * Set `affinity: true` (with `wsUrl` pointing at the fleet host, `app-<id>.rindle.cloud`) to run
256
- * FOLLOWER-AFFINITY mode (design §2): the ws offers a placement ticket as a subprotocol, the
257
- * client persists the follower's minted ticket (per-tab) and forwards it on the lease POST so both
258
- * legs pin the same nearby follower sticky, regional, monotone reads. Off (default) is today's
259
- * single-daemon behavior, byte-identical. Ignored for a pre-built `{ transport }`. */
260
- daemon: { wsUrl?: string; affinity?: boolean } | { transport: Transport };
260
+ * With a fixed `wsUrl`, set `affinity: true` to opt into FOLLOWER-AFFINITY mode (design §2).
261
+ * With no daemon option, a lease that returns an affinity ticket enables the same mode
262
+ * automatically before opening its socket. The ticket is persisted per-tab and forwarded on
263
+ * later leases so both legs pin the same nearby follower. Ignored for `{ transport }`. */
264
+ daemon?: { wsUrl?: string; affinity?: boolean } | { transport: Transport };
261
265
  /** Stable client identity. Default: a per-origin base (localStorage) plus per-tab and per-instance
262
266
  * suffixes, so each tab — and each client instance within a tab — gets its own mid sequence yet a
263
267
  * reload keeps it; falls back to a fresh random id when web storage is unavailable. Pass a value
@@ -336,15 +340,16 @@ export async function createRindleClient<S extends ColsMap, R extends ClientRegi
336
340
  return text ? JSON.parse(text) : undefined;
337
341
  };
338
342
 
339
- // FOLLOWER-AFFINITY mode (design §2): opt-in, and only for a fleet `wsUrl` connection (a pre-built
340
- // transport has no fleet edge to route through). The store is shared by the ws transport (offers
341
- // the ticket as a subprotocol), the source (records the follower's minted ticket / clears it on a
342
- // dead follower), and the lease POST below (forwards it). Persisted per-TAB (sessionStorage) so two
343
- // tabs can pin two regions (design §13) yet a reload lands back on the same follower.
344
- const affinityOn = !("transport" in opts.daemon) && opts.daemon.affinity === true;
345
- const affinityStore: AffinityTicketStore | undefined = affinityOn
346
- ? createAffinityTicketStore(sessionTicketPersistence())
347
- : undefined;
343
+ // FOLLOWER-AFFINITY mode (design §2): explicit for an eager fleet endpoint, or activated by the
344
+ // first pure-lazy lease's placement ticket. A pre-built transport has no fleet edge to route
345
+ // through. The store is shared by the ws transport, source, and lease POST, and persisted per-tab.
346
+ const daemon = opts.daemon ?? {};
347
+ const leaseDiscoversAffinity = !("transport" in daemon) && daemon.wsUrl === undefined;
348
+ let affinityOn = !("transport" in daemon) && daemon.affinity === true;
349
+ // A replaceable connection always has a dormant store. The first lease can activate it before
350
+ // that same lease's `wsEndpoint` constructs the pure-lazy socket.
351
+ const affinityStore: AffinityTicketStore | undefined =
352
+ "transport" in daemon ? undefined : createAffinityTicketStore(sessionTicketPersistence());
348
353
 
349
354
  // The ONE app-lease POST both legs share. Sends the stable `clientId` so the api-server/router
350
355
  // can use it as the anonymous routing key (READ-ROUTER-DESIGN.md §2.2); the reply's top-level
@@ -360,9 +365,9 @@ export async function createRindleClient<S extends ColsMap, R extends ClientRegi
360
365
  // forwarded on a lease until the CURRENT connection refreshes it, preventing a restored stale
361
366
  // ticket from independently re-pinning the HTTP and ws legs.
362
367
  let affinityFallbackWarned = false;
363
- const postLease = async (remote: RemoteQuery): Promise<QueryLeaseWire> => {
368
+ const performPostLease = async (remote: RemoteQuery): Promise<QueryLeaseWire> => {
364
369
  let affinity: string | undefined;
365
- if (affinityStore) {
370
+ if (affinityOn && affinityStore) {
366
371
  const ticket = await affinityStore.leaseTicket(AFFINITY_TICKET_TIMEOUT_MS);
367
372
  affinity = ticket.ticket;
368
373
  if (affinity !== undefined) affinityFallbackWarned = false;
@@ -374,12 +379,50 @@ export async function createRindleClient<S extends ColsMap, R extends ClientRegi
374
379
  );
375
380
  }
376
381
  }
377
- return post(routes.query, {
382
+ const out = (await post(routes.query, {
378
383
  name: remote.name,
379
384
  args: remote.args,
380
385
  clientId: clientID,
381
386
  ...(affinity !== undefined ? { affinity } : {}),
382
- }) as Promise<QueryLeaseWire>;
387
+ })) as QueryLeaseWire;
388
+ // A lease ticket ACTIVATES affinity (recorded before the pure-lazy socket opens), but never
389
+ // refreshes an already-active store: once a connection exists, only ITS `{t:"affinity"}` frames
390
+ // may mark the ticket connection-fresh (`connectionPending` discipline) — an HTTP response
391
+ // landing mid-reconnect must not re-pin the legs onto a follower the socket already left.
392
+ if (affinityStore && out.affinity !== undefined && !affinityOn && leaseDiscoversAffinity) {
393
+ affinityStore.set(out.affinity);
394
+ affinityOn = true;
395
+ }
396
+ // A successful ticketless reply settles discovery either way: the backend does not do
397
+ // placement, so stop serializing leases. (A thrown POST leaves discovery pending — the next
398
+ // queued lease becomes the discoverer.)
399
+ discoveryPending = false;
400
+ return out;
401
+ };
402
+
403
+ // Pure-lazy clients do not know they are affinity-enabled until the first lease replies. Queue
404
+ // that discovery window so only one ticketless POST can be in flight: once it establishes a
405
+ // placement, every queued lease re-checks `affinityOn` in `performPostLease` and forwards the
406
+ // same ticket. Without this gate, concurrent first materializations could land on different
407
+ // followers and mint leases that the one stable WebSocket can never subscribe to correctly.
408
+ // The window closes on the first completed lease — with a ticket (affinity on) or without (the
409
+ // backend mints none; leases run unserialized from then on).
410
+ let discoveryPending = leaseDiscoversAffinity;
411
+ let affinityDiscoveryTail = Promise.resolve();
412
+ const postLease = async (remote: RemoteQuery): Promise<QueryLeaseWire> => {
413
+ if (!discoveryPending || affinityOn) return performPostLease(remote);
414
+
415
+ const previous = affinityDiscoveryTail;
416
+ let release!: () => void;
417
+ affinityDiscoveryTail = new Promise<void>((resolve) => {
418
+ release = resolve;
419
+ });
420
+ await previous;
421
+ try {
422
+ return await performPostLease(remote);
423
+ } finally {
424
+ release();
425
+ }
383
426
  };
384
427
 
385
428
  // One-shot fresh-token handoffs, by remote key: G-v's resolve-then-register (and the proactive
@@ -422,19 +465,19 @@ export async function createRindleClient<S extends ColsMap, R extends ClientRegi
422
465
  // In affinity mode each transport offers the current ticket as a subprotocol (evaluated per
423
466
  // connect, so a reconnect presents the freshest — or freshly cleared — ticket).
424
467
  const connection: RemoteOptimisticConnection =
425
- "transport" in opts.daemon
426
- ? { transport: opts.daemon.transport }
468
+ "transport" in daemon
469
+ ? { transport: daemon.transport }
427
470
  : {
428
471
  factory: (endpoint) =>
429
472
  new WsTransport(
430
473
  endpoint,
431
- affinityStore ? { subprotocols: () => offerSubprotocols(affinityStore) } : {},
474
+ affinityOn && affinityStore ? { subprotocols: () => offerSubprotocols(affinityStore) } : {},
432
475
  ),
433
- endpoint: opts.daemon.wsUrl,
476
+ endpoint: daemon.wsUrl,
434
477
  };
435
478
 
436
479
  const source = new RemoteOptimisticSource(connection, clientID, {
437
- ...(affinityStore ? { affinity: affinityStore } : {}),
480
+ ...(affinityStore ? { affinity: () => (affinityOn ? affinityStore : undefined) } : {}),
438
481
  resolveSubscribe: async ({ remote }) => {
439
482
  // A fail-open labeled register already leased — present exactly that token (see
440
483
  // `tokenHandoffs`); otherwise lease now. Read back the follower's `wsEndpoint` for placement.