@econ-v1/rpc 7.6.95 → 7.6.97
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.
|
@@ -146,13 +146,18 @@ export type SubscriptionState = import("./client.js").SubscriptionState;
|
|
|
146
146
|
export type RpcRequest = import("./protocol.js").RpcRequest;
|
|
147
147
|
export type RpcRequestWithoutId = RpcRequest extends infer TRequest ? TRequest extends RpcRequest ? Omit<TRequest, "id"> : never : never;
|
|
148
148
|
export type RpcTransport = import("./transport.js").RpcTransport;
|
|
149
|
+
/**
|
|
150
|
+
* `deadlineAtMs` and `timeoutId` move together when reply progress extends the deadline (ADR-215).
|
|
151
|
+
*/
|
|
149
152
|
export type PendingRequest = {
|
|
153
|
+
deadlineAtMs: number;
|
|
154
|
+
readonly expire: () => void;
|
|
150
155
|
readonly reject: (error: unknown) => void;
|
|
151
156
|
readonly resolve: (value: JsonValue) => void;
|
|
152
157
|
readonly sessionId: string | undefined;
|
|
153
158
|
readonly slowBarId: ReturnType<typeof globalThis.setTimeout>;
|
|
154
159
|
readonly startedAtMs: number;
|
|
155
|
-
|
|
160
|
+
timeoutId: ReturnType<typeof globalThis.setTimeout>;
|
|
156
161
|
readonly timeoutMs: number;
|
|
157
162
|
};
|
|
158
163
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-port-client.d.ts","sourceRoot":"","sources":["../src/message-port-client.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message-port-client.d.ts","sourceRoot":"","sources":["../src/message-port-client.js"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -185,6 +185,9 @@ export type RpcEvent = {
|
|
|
185
185
|
readonly payload: JsonValue;
|
|
186
186
|
readonly requestId: string;
|
|
187
187
|
readonly type: "ui.request";
|
|
188
|
+
} | {
|
|
189
|
+
readonly requestId: string;
|
|
190
|
+
readonly type: "request.progress";
|
|
188
191
|
} | {
|
|
189
192
|
readonly message: string;
|
|
190
193
|
readonly subscriptionId: string;
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.js"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,6CAHW,UAAU,GACR,MAAM,CA2ClB;AACD;;;GAGG;AACH,kDAHW,MAAM,GACJ,UAAU,CAoCtB;AAYD;;;GAGG;AACH,+CAHW,WAAW,GACT,MAAM,CAMlB;AACD;;;GAGG;AACH,mDAHW,MAAM,GACJ,WAAW,CAUvB;AACD;;;GAGG;AACH,yCAHW,QAAQ,GACN,MAAM,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@econ-v1/rpc",
|
|
3
|
-
"version": "7.6.
|
|
3
|
+
"version": "7.6.97",
|
|
4
4
|
"description": "Typed runtime and contracts for Node client stage-to-kernel RPC",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"author": "Node contributors",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"access": "public"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@econ-v1/domain": "7.6.
|
|
60
|
-
"@econ-v1/ports": "7.6.
|
|
59
|
+
"@econ-v1/domain": "7.6.97",
|
|
60
|
+
"@econ-v1/ports": "7.6.97"
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -28,7 +28,8 @@ import {
|
|
|
28
28
|
/** @typedef {import("./protocol.js").RpcRequest} RpcRequest */
|
|
29
29
|
/** @typedef {RpcRequest extends infer TRequest ? TRequest extends RpcRequest ? Omit<TRequest, "id"> : never : never} RpcRequestWithoutId */
|
|
30
30
|
/** @typedef {import("./transport.js").RpcTransport} RpcTransport */
|
|
31
|
-
/**
|
|
31
|
+
/** `deadlineAtMs` and `timeoutId` move together when reply progress extends the deadline (ADR-215).
|
|
32
|
+
* @typedef {{ deadlineAtMs: number, readonly expire: () => void, readonly reject: (error: unknown) => void, readonly resolve: (value: JsonValue) => void, readonly sessionId: string | undefined, readonly slowBarId: ReturnType<typeof globalThis.setTimeout>, readonly startedAtMs: number, timeoutId: ReturnType<typeof globalThis.setTimeout>, readonly timeoutMs: number }} PendingRequest */
|
|
32
33
|
/**
|
|
33
34
|
* `cell` counts the group's own generations rather than the kernel's, because a new kernel
|
|
34
35
|
* (a leader-tab failover replays this subscription onto it) starts its count again.
|
|
@@ -126,6 +127,13 @@ const MAX_STAGE_COMMAND_TIMEOUT_MS = 180_000;
|
|
|
126
127
|
// times host + transport — an equal deadline would race the host's own verdict
|
|
127
128
|
// and report the loss as a port timeout instead of the host's clearer error.
|
|
128
129
|
const DECLARED_TIMEOUT_GRACE_MS = 5_000;
|
|
130
|
+
// ADR-215: while the kernel reports that reply bytes for a request are still arriving
|
|
131
|
+
// (`request.progress`), the deadline becomes an IDLE deadline: it moves to one default
|
|
132
|
+
// deadline after the latest progress, never earlier than the request's own deadline, and
|
|
133
|
+
// never past this ceiling (or the request's own deadline, when that is longer). A node that
|
|
134
|
+
// is truly silent still times out exactly as before; only a reply that is visibly streaming
|
|
135
|
+
// outlives 30s, and a trickle still cannot hold a request open forever.
|
|
136
|
+
const PROGRESS_CEILING_MS = 180_000;
|
|
129
137
|
|
|
130
138
|
/** A rejected `live-query.subscribe` used to drop its group permanently — the caller went
|
|
131
139
|
* blind for the life of the client with no way back. These bound a re-subscribe instead:
|
|
@@ -495,6 +503,10 @@ export class MessagePortKernelRpcClient {
|
|
|
495
503
|
void this.#answerUiRequest(event);
|
|
496
504
|
return;
|
|
497
505
|
}
|
|
506
|
+
if (event.type === "request.progress") {
|
|
507
|
+
this.#extendDeadline(event.requestId);
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
498
510
|
if (event.type === "kernel.event") {
|
|
499
511
|
const group = this.#eventGroupsBySubscription.get(event.subscriptionId);
|
|
500
512
|
if (group === undefined || group.eventType !== event.event.type) return;
|
|
@@ -562,6 +574,24 @@ export class MessagePortKernelRpcClient {
|
|
|
562
574
|
return pending;
|
|
563
575
|
}
|
|
564
576
|
|
|
577
|
+
/**
|
|
578
|
+
* Reply bytes for `requestId` are still arriving: push its deadline to one default deadline
|
|
579
|
+
* from now, bounded by its ceiling. It never shortens a deadline, so a request that declared
|
|
580
|
+
* a long `timeout_ms` keeps it.
|
|
581
|
+
* @param {string} requestId
|
|
582
|
+
*/
|
|
583
|
+
#extendDeadline(requestId) {
|
|
584
|
+
const pending = this.#pending.get(requestId);
|
|
585
|
+
if (pending === undefined) return;
|
|
586
|
+
const nowMs = this.#monotonicNow();
|
|
587
|
+
const ceilingAtMs = pending.startedAtMs + Math.max(pending.timeoutMs, PROGRESS_CEILING_MS);
|
|
588
|
+
const deadlineAtMs = Math.min(ceilingAtMs, nowMs + this.#requestTimeoutMs);
|
|
589
|
+
if (deadlineAtMs <= pending.deadlineAtMs) return;
|
|
590
|
+
globalThis.clearTimeout(pending.timeoutId);
|
|
591
|
+
pending.deadlineAtMs = deadlineAtMs;
|
|
592
|
+
pending.timeoutId = globalThis.setTimeout(pending.expire, deadlineAtMs - nowMs);
|
|
593
|
+
}
|
|
594
|
+
|
|
565
595
|
/** @param {string} sessionId */
|
|
566
596
|
#removeSessionSubscriptions(sessionId) {
|
|
567
597
|
for (const [key, group] of [...this.#eventGroupsByKey]) {
|
|
@@ -601,9 +631,12 @@ export class MessagePortKernelRpcClient {
|
|
|
601
631
|
: "capability" in request ? request.capability : request.type;
|
|
602
632
|
const timeoutMs = requestTimeoutMs(request, this.#requestTimeoutMs);
|
|
603
633
|
const startedAtMs = this.#monotonicNow();
|
|
604
|
-
|
|
634
|
+
// The user-visible error names the request's own deadline even when progress extended
|
|
635
|
+
// it (ADR-215): the text is unchanged, and it still means "this long with nothing new".
|
|
636
|
+
const expire = () => {
|
|
605
637
|
this.#takePending(id, false)?.reject(new KernelRpcTimeoutError(commandName, id, timeoutMs));
|
|
606
|
-
}
|
|
638
|
+
};
|
|
639
|
+
const timeoutId = globalThis.setTimeout(expire, timeoutMs);
|
|
607
640
|
// The earlier of the two timers. It resolves nothing and rejects nothing — it only
|
|
608
641
|
// reports that this request has been outstanding long enough to be worth telling the
|
|
609
642
|
// user about, at a tenth of its OWN declared timeout.
|
|
@@ -615,7 +648,7 @@ export class MessagePortKernelRpcClient {
|
|
|
615
648
|
// report-only and may not degrade the call it is measuring.
|
|
616
649
|
}
|
|
617
650
|
}, slowBarMs(timeoutMs));
|
|
618
|
-
this.#pending.set(id, { reject, resolve, sessionId, slowBarId, startedAtMs, timeoutId, timeoutMs });
|
|
651
|
+
this.#pending.set(id, { deadlineAtMs: startedAtMs + timeoutMs, expire, reject, resolve, sessionId, slowBarId, startedAtMs, timeoutId, timeoutMs });
|
|
619
652
|
try {
|
|
620
653
|
this.#transport.send(serializeRpcRequest(/** @type {RpcRequest} */ ({ ...request, id })));
|
|
621
654
|
} catch (error) {
|
package/src/protocol.js
CHANGED
|
@@ -140,6 +140,8 @@ export function deserializeRpcResponse(serialized) {
|
|
|
140
140
|
export function serializeRpcEvent(event) {
|
|
141
141
|
if (event.type === "ui.request")
|
|
142
142
|
return stringify({ name: event.name, payload: event.payload, requestId: event.requestId, type: event.type });
|
|
143
|
+
if (event.type === "request.progress")
|
|
144
|
+
return stringify({ requestId: event.requestId, type: event.type });
|
|
143
145
|
if (event.type === "live-query.changed")
|
|
144
146
|
return stringify({ diff: projectQueryDiff(event.diff), subscriptionId: event.subscriptionId, type: event.type });
|
|
145
147
|
if (event.type === "live-query.failed")
|
|
@@ -156,6 +158,12 @@ export function deserializeRpcEvent(serialized) {
|
|
|
156
158
|
const value = parseRecord(serialized);
|
|
157
159
|
if (value.type === "ui.request")
|
|
158
160
|
return { name: versionedNameField(value, "name"), payload: jsonField(value, "payload"), requestId: stringField(value, "requestId"), type: value.type };
|
|
161
|
+
// Reply bytes for one pending request are still arriving (ADR-215). It deliberately has no
|
|
162
|
+
// top-level `id`: a client reads any message carrying `id` as that request's RESPONSE. An
|
|
163
|
+
// older client throws below on the missing `subscriptionId` and drops it, keeping its
|
|
164
|
+
// absolute deadline.
|
|
165
|
+
if (value.type === "request.progress")
|
|
166
|
+
return { requestId: stringField(value, "requestId"), type: value.type };
|
|
159
167
|
const subscriptionId = stringField(value, "subscriptionId");
|
|
160
168
|
if (value.type === "live-query.changed")
|
|
161
169
|
return { diff: queryDiffField(value), subscriptionId, type: value.type };
|
|
@@ -1016,6 +1024,7 @@ function entityActionField(value) {
|
|
|
1016
1024
|
/**
|
|
1017
1025
|
* @typedef {| { readonly diff: QueryDiff<JsonValue>; readonly subscriptionId: string; readonly type: "live-query.changed" }
|
|
1018
1026
|
* | { readonly name: string; readonly payload: JsonValue; readonly requestId: string; readonly type: "ui.request" }
|
|
1027
|
+
* | { readonly requestId: string; readonly type: "request.progress" }
|
|
1019
1028
|
* | { readonly message: string; readonly subscriptionId: string; readonly type: "live-query.failed" }
|
|
1020
1029
|
* | { readonly event: ProtocolDomainEvent; readonly subscriptionId: string; readonly type: "kernel.event" }
|
|
1021
1030
|
* | { readonly state: SubscriptionState; readonly subscriptionId: string; readonly type: "subscription.state" }} RpcEvent
|