hikoutei 0.8.62 → 0.8.63
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/application/sync/service/serviceOptions.d.ts.map +1 -1
- package/dist/application/sync/service/serviceOptions.js +9 -2
- package/dist/application/sync/service/serviceOptions.js.map +1 -1
- package/dist/application/sync/service/syncAutoStart.d.ts +10 -0
- package/dist/application/sync/service/syncAutoStart.d.ts.map +1 -1
- package/dist/application/sync/service/syncAutoStart.js +39 -2
- package/dist/application/sync/service/syncAutoStart.js.map +1 -1
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.d.ts +1 -37
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.d.ts.map +1 -1
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.js +3 -57
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceOptions.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/service/serviceOptions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serviceOptions.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/service/serviceOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,9 +103,16 @@ function validateEffectLeaseHeadroom(options) {
|
|
|
103
103
|
readTimeoutMs > GOOGLE_SHEETS_API_DEFAULTS.MAX_READ_TIMEOUT_MS) {
|
|
104
104
|
throw new SyncServiceError(SYNC_SERVICE_ERROR_CODES.INVALID_OPTIONS, "sync service googleSheetsApi readTimeoutMs must be between 1 second and 60 seconds.");
|
|
105
105
|
}
|
|
106
|
-
|
|
106
|
+
const rateLimitIntervalMs = options.googleSheetsApi.rateLimitIntervalMs
|
|
107
|
+
?? GOOGLE_SHEETS_API_DEFAULTS.REQUEST_START_INTERVAL_MS;
|
|
108
|
+
if (!Number.isSafeInteger(rateLimitIntervalMs) || rateLimitIntervalMs < 0) {
|
|
109
|
+
throw new SyncServiceError(SYNC_SERVICE_ERROR_CODES.INVALID_OPTIONS, "sync service googleSheetsApi rateLimitIntervalMs must be a non-negative safe integer.");
|
|
110
|
+
}
|
|
111
|
+
if (effectLeaseDurationMs <= requestTimeoutMs +
|
|
112
|
+
rateLimitIntervalMs +
|
|
113
|
+
2 * Math.max(readTimeoutMs, rateLimitIntervalMs) +
|
|
107
114
|
EFFECT_LEASE_PROVIDER_HEADROOM_MS) {
|
|
108
|
-
throw new SyncServiceError(SYNC_SERVICE_ERROR_CODES.INVALID_OPTIONS, "sync service effectLeaseDurationMs must exceed Google Sheets API requestTimeoutMs plus two
|
|
115
|
+
throw new SyncServiceError(SYNC_SERVICE_ERROR_CODES.INVALID_OPTIONS, "sync service effectLeaseDurationMs must exceed Google Sheets API requestTimeoutMs plus the request-start interval and two paced request slots (the larger of readTimeoutMs and the request-start interval) by 30 seconds before supervisors start.");
|
|
109
116
|
}
|
|
110
117
|
}
|
|
111
118
|
function validateEntityConfig(entityName, descriptor, config, routes, spreadsheetId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceOptions.js","sourceRoot":"","sources":["../../../../src/application/sync/service/serviceOptions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serviceOptions.js","sourceRoot":"","sources":["../../../../src/application/sync/service/serviceOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,15 @@ export declare const SYNC_ENV_KEYS: {
|
|
|
35
35
|
readonly POLLING_INTERVAL_MS: "HIKOUTEI_SYNC_POLLING_INTERVAL_MS";
|
|
36
36
|
/** Optional metadata safety full-scan cadence in ms; defaults to 60 seconds. */
|
|
37
37
|
readonly FULL_SCAN_INTERVAL_MS: "HIKOUTEI_SYNC_FULL_SCAN_INTERVAL_MS";
|
|
38
|
+
/** Optional real-provider request-start pacing override. */
|
|
39
|
+
readonly RATE_LIMIT_INTERVAL_MS: "HIKOUTEI_SYNC_RATE_LIMIT_INTERVAL_MS";
|
|
38
40
|
};
|
|
41
|
+
/** Minimum safe real-provider pacing override in milliseconds. */
|
|
42
|
+
export declare const MIN_SYNC_RATE_LIMIT_INTERVAL_MS = 1000;
|
|
43
|
+
/** Maximum safe real-provider pacing override in milliseconds. */
|
|
44
|
+
export declare const MAX_SYNC_RATE_LIMIT_INTERVAL_MS = 9999;
|
|
45
|
+
/** Resolves the optional real-provider pacing override; fake transports ignore it. */
|
|
46
|
+
export declare function resolveSyncRateLimitIntervalMs(env: Readonly<Record<string, string | undefined>>): number | undefined;
|
|
39
47
|
/** Default polling cadence applied when the interval env vars are absent. */
|
|
40
48
|
export declare const DEFAULT_SYNC_POLLING_INTERVAL_MS = 60000;
|
|
41
49
|
/** Default safety full-scan cadence applied when the interval env vars are absent. */
|
|
@@ -125,4 +133,6 @@ export declare function buildSyncProjections(entities: readonly HikouteiEntity[]
|
|
|
125
133
|
* else (timeout, network, invalid options) maps to the generic startup code.
|
|
126
134
|
*/
|
|
127
135
|
export declare function classifySyncStartupFailure(error: unknown, spreadsheetId: string, clientEmail: string): HikouteiError;
|
|
136
|
+
/** Returns only the stable class/code summary safe for diagnostic sinks. */
|
|
137
|
+
export declare function stableStartupDiagnostic(failure: HikouteiError): string;
|
|
128
138
|
//# sourceMappingURL=syncAutoStart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncAutoStart.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/service/syncAutoStart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AAU7G,OAAO,KAAK,EAEV,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAMnC,uDAAuD;AACvD,eAAO,MAAM,aAAa;IACxB,sEAAsE;;IAEtE,0DAA0D;;IAE1D,yEAAyE;;IAEzE,gFAAgF;;
|
|
1
|
+
{"version":3,"file":"syncAutoStart.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/service/syncAutoStart.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,27 @@ export const SYNC_ENV_KEYS = {
|
|
|
41
41
|
POLLING_INTERVAL_MS: "HIKOUTEI_SYNC_POLLING_INTERVAL_MS",
|
|
42
42
|
/** Optional metadata safety full-scan cadence in ms; defaults to 60 seconds. */
|
|
43
43
|
FULL_SCAN_INTERVAL_MS: "HIKOUTEI_SYNC_FULL_SCAN_INTERVAL_MS",
|
|
44
|
+
/** Optional real-provider request-start pacing override. */
|
|
45
|
+
RATE_LIMIT_INTERVAL_MS: "HIKOUTEI_SYNC_RATE_LIMIT_INTERVAL_MS",
|
|
44
46
|
};
|
|
47
|
+
/** Minimum safe real-provider pacing override in milliseconds. */
|
|
48
|
+
export const MIN_SYNC_RATE_LIMIT_INTERVAL_MS = 1_000;
|
|
49
|
+
/** Maximum safe real-provider pacing override in milliseconds. */
|
|
50
|
+
export const MAX_SYNC_RATE_LIMIT_INTERVAL_MS = 9_999;
|
|
51
|
+
/** Resolves the optional real-provider pacing override; fake transports ignore it. */
|
|
52
|
+
export function resolveSyncRateLimitIntervalMs(env) {
|
|
53
|
+
const raw = env[SYNC_ENV_KEYS.RATE_LIMIT_INTERVAL_MS];
|
|
54
|
+
if (raw === undefined || raw.trim() === "")
|
|
55
|
+
return undefined;
|
|
56
|
+
if (!/^[0-9]+$/.test(raw)) {
|
|
57
|
+
throw new HikouteiError(HIKOUTEI_ERROR_CODES.SYNC_STARTUP_FAILED, `Sync start failed: ${SYNC_ENV_KEYS.RATE_LIMIT_INTERVAL_MS} must be a decimal integer between ${MIN_SYNC_RATE_LIMIT_INTERVAL_MS} and ${MAX_SYNC_RATE_LIMIT_INTERVAL_MS} ms.`);
|
|
58
|
+
}
|
|
59
|
+
const value = Number(raw);
|
|
60
|
+
if (value < MIN_SYNC_RATE_LIMIT_INTERVAL_MS || value > MAX_SYNC_RATE_LIMIT_INTERVAL_MS) {
|
|
61
|
+
throw new HikouteiError(HIKOUTEI_ERROR_CODES.SYNC_STARTUP_FAILED, `Sync start failed: ${SYNC_ENV_KEYS.RATE_LIMIT_INTERVAL_MS} must be a decimal integer between ${MIN_SYNC_RATE_LIMIT_INTERVAL_MS} and ${MAX_SYNC_RATE_LIMIT_INTERVAL_MS} ms.`);
|
|
62
|
+
}
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
45
65
|
/** Default polling cadence applied when the interval env vars are absent. */
|
|
46
66
|
export const DEFAULT_SYNC_POLLING_INTERVAL_MS = 60_000;
|
|
47
67
|
/** Default safety full-scan cadence applied when the interval env vars are absent. */
|
|
@@ -112,6 +132,9 @@ export async function createTypedSheetsWithSync(options) {
|
|
|
112
132
|
({ clientEmail } = await validateSyncCredentialsFile(env[SYNC_ENV_KEYS.CREDENTIALS_FILE]));
|
|
113
133
|
const pollingIntervalMs = parseIntervalEnv(env, SYNC_ENV_KEYS.POLLING_INTERVAL_MS, DEFAULT_SYNC_POLLING_INTERVAL_MS);
|
|
114
134
|
const pollingFullScanIntervalMs = parseIntervalEnv(env, SYNC_ENV_KEYS.FULL_SCAN_INTERVAL_MS, DEFAULT_SYNC_FULL_SCAN_INTERVAL_MS);
|
|
135
|
+
const rateLimitIntervalMs = options.transport === undefined
|
|
136
|
+
? resolveSyncRateLimitIntervalMs(env)
|
|
137
|
+
: undefined;
|
|
115
138
|
const projections = buildSyncProjections(options.entities, spreadsheetId);
|
|
116
139
|
const service = await createInternalSyncService({
|
|
117
140
|
dbName: options.dbName,
|
|
@@ -121,7 +144,7 @@ export async function createTypedSheetsWithSync(options) {
|
|
|
121
144
|
// stub-based suites wall-clock cheap. Production builds the real
|
|
122
145
|
// ADC-backed transport with its default pacing.
|
|
123
146
|
googleSheetsApi: options.transport === undefined
|
|
124
|
-
? {}
|
|
147
|
+
? (rateLimitIntervalMs === undefined ? {} : { rateLimitIntervalMs })
|
|
125
148
|
: { transport: options.transport, rateLimitIntervalMs: 0 },
|
|
126
149
|
pollingIntervalMs,
|
|
127
150
|
pollingFullScanIntervalMs,
|
|
@@ -259,9 +282,23 @@ function parseIntervalEnv(env, key, fallback) {
|
|
|
259
282
|
return value.data;
|
|
260
283
|
}
|
|
261
284
|
function raiseDiagnosed(diagnostic, failure) {
|
|
262
|
-
|
|
285
|
+
try {
|
|
286
|
+
diagnostic("error", stableStartupDiagnostic(failure));
|
|
287
|
+
}
|
|
288
|
+
catch {
|
|
289
|
+
// A diagnostic sink cannot replace the classified startup failure.
|
|
290
|
+
}
|
|
263
291
|
throw failure;
|
|
264
292
|
}
|
|
293
|
+
/** Returns only the stable class/code summary safe for diagnostic sinks. */
|
|
294
|
+
export function stableStartupDiagnostic(failure) {
|
|
295
|
+
const errorClass = failure.name === "HikouteiError" ? failure.name : "unknown";
|
|
296
|
+
const knownCodes = Object.values(HIKOUTEI_ERROR_CODES);
|
|
297
|
+
const code = typeof failure.code === "string" && knownCodes.includes(failure.code)
|
|
298
|
+
? failure.code
|
|
299
|
+
: "unknown";
|
|
300
|
+
return `Hikoutei sync autostart failed (class=${errorClass}, code=${code})`;
|
|
301
|
+
}
|
|
265
302
|
function defaultDiagnostic(level, message) {
|
|
266
303
|
if (level === "info") {
|
|
267
304
|
console.info(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncAutoStart.js","sourceRoot":"","sources":["../../../../src/application/sync/service/syncAutoStart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,6BAA6B,GAC9B,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,iFAAiF,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EACL,yCAAyC,GAC1C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAKtE,OAAO,EACL,yBAAyB,GAE1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,uDAAuD;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,sEAAsE;IACtE,eAAe,EAAE,+BAA+B;IAChD,0DAA0D;IAC1D,gBAAgB,EAAE,gCAAgC;IAClD,yEAAyE;IACzE,mBAAmB,EAAE,mCAAmC;IACxD,gFAAgF;IAChF,qBAAqB,EAAE,qCAAqC;
|
|
1
|
+
{"version":3,"file":"syncAutoStart.js","sourceRoot":"","sources":["../../../../src/application/sync/service/syncAutoStart.ts"],"names":[],"mappings":"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"}
|
package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.d.ts
CHANGED
|
@@ -29,22 +29,12 @@
|
|
|
29
29
|
* stable sorted order, so it cannot deadlock with single-sheet mutations.
|
|
30
30
|
* - Provisioning uses a dedicated lane so setup never races an append/write.
|
|
31
31
|
* - A failing or throwing mutation releases the lane, so it never deadlocks.
|
|
32
|
-
* - `runSerializedInner` runs an optional in-lane precondition (the effect
|
|
33
|
-
* lease renewal) after the lane is acquired and before the inner provider
|
|
34
|
-
* call, so queue time plus limiter waits cannot outlive the lease.
|
|
35
32
|
*/
|
|
36
|
-
import type { ApplySyncEffectsRequest, ApplySyncEffectsResult, EnsureSyncRowAnchorsRequest, EnsureSyncRowAnchorsResult, FastAppendRowsRequest, FastAppendRowsResult, ReadSyncEffectPostconditionsRequest, ReadSyncSnapshotRequest, ReadSyncTableRowsRequest, SyncEffectPostcondition, SyncProjectionEffect, SyncEffectPostconditionResult, SyncSheetsSnapshot, SyncObservedSnapshot, SyncSheetsProvider, SyncSheetsObservationBatchProvider, SyncSheetsTableReader, SyncTableRowsResult
|
|
33
|
+
import type { ApplySyncEffectsRequest, ApplySyncEffectsResult, EnsureSyncRowAnchorsRequest, EnsureSyncRowAnchorsResult, FastAppendRowsRequest, FastAppendRowsResult, ReadSyncEffectPostconditionsRequest, ReadSyncSnapshotRequest, ReadSyncTableRowsRequest, SyncEffectPostcondition, SyncProjectionEffect, SyncEffectPostconditionResult, SyncSheetsSnapshot, SyncObservedSnapshot, SyncSheetsProvider, SyncSheetsObservationBatchProvider, SyncSheetsTableReader, SyncTableRowsResult } from "../syncSheets.js";
|
|
37
34
|
import { AsyncMutex } from "./asyncMutex.js";
|
|
38
35
|
import { type CoordinatorLaneEvent } from "./laneTelemetry.js";
|
|
39
36
|
/** Provider boundary the coordinator wraps (effect + observation + table read). */
|
|
40
37
|
export type CoordinatedSheetsInner = SyncSheetsProvider & SyncSheetsTableReader;
|
|
41
|
-
/**
|
|
42
|
-
* Thrown when an in-lane precondition callback rejects before the remote
|
|
43
|
-
* call. Carries only the static redacted message above.
|
|
44
|
-
*/
|
|
45
|
-
export declare class CoordinatedLanePreconditionError extends Error {
|
|
46
|
-
constructor();
|
|
47
|
-
}
|
|
48
38
|
/** Options for constructing a per-spreadsheet coordinator. */
|
|
49
39
|
export interface CoordinatedSheetsProviderOptions<TInner extends CoordinatedSheetsInner> {
|
|
50
40
|
readonly inner: TInner;
|
|
@@ -83,21 +73,6 @@ export declare class CoordinatedSheetsProvider<TInner extends CoordinatedSheetsI
|
|
|
83
73
|
* competing provider request outside the coordinator.
|
|
84
74
|
*/
|
|
85
75
|
runSerializedControl<T>(physicalSheetId: string, operation: string, task: () => Promise<T>): Promise<T>;
|
|
86
|
-
/**
|
|
87
|
-
* Runs one internal remote task on the mutation lane with an optional
|
|
88
|
-
* in-lane precondition hook.
|
|
89
|
-
*
|
|
90
|
-
* The effect dispatcher uses this so the worker's lease-renewal callback
|
|
91
|
-
* runs AFTER the lane is acquired (covering queue wait time) but BEFORE the
|
|
92
|
-
* inner provider's remote call (covering shared limiter waits and the call
|
|
93
|
-
* itself). The `remote` closure receives the INNER provider and must call
|
|
94
|
-
* it directly, so the call never re-enters this coordinator's lane and
|
|
95
|
-
* cannot deadlock. When `beforeRemote` resolves false (or throws), a
|
|
96
|
-
* `CoordinatedLanePreconditionError` is raised before any remote request
|
|
97
|
-
* and the lane is released normally; lane telemetry still records the
|
|
98
|
-
* aborted dispatch with a delivery-uncertain outcome.
|
|
99
|
-
*/
|
|
100
|
-
runSerializedInner<T>(physicalSheetId: string, operation: string, remote: (inner: TInner) => Promise<T>, beforeRemote?: () => Promise<boolean>): Promise<T>;
|
|
101
76
|
fastAppendRows(request: FastAppendRowsRequest): Promise<FastAppendRowsResult>;
|
|
102
77
|
applyEffects(request: ApplySyncEffectsRequest): Promise<ApplySyncEffectsResult>;
|
|
103
78
|
readEffectPostcondition(effect: SyncProjectionEffect): Promise<SyncEffectPostcondition>;
|
|
@@ -125,15 +100,4 @@ export declare class CoordinatedSheetsProvider<TInner extends CoordinatedSheetsI
|
|
|
125
100
|
private emitFailure;
|
|
126
101
|
private emit;
|
|
127
102
|
}
|
|
128
|
-
/** The in-lane dispatch capability the effect dispatcher detects on a provider. */
|
|
129
|
-
export type CoordinatedSerializedInnerProvider = Pick<CoordinatedSheetsProvider<CoordinatedSheetsInner>, "runSerializedInner">;
|
|
130
|
-
/**
|
|
131
|
-
* Returns whether a provider exposes the coordinator's in-lane dispatch hook.
|
|
132
|
-
*
|
|
133
|
-
* The effect dispatcher uses this to route its `beforeRemoteDispatch` lease
|
|
134
|
-
* renewal through the acquired mutation lane; providers without the hook
|
|
135
|
-
* (bare fakes and test doubles) keep the direct call path and simply ignore
|
|
136
|
-
* the hook.
|
|
137
|
-
*/
|
|
138
|
-
export declare function hasCoordinatedSerializedInner(provider: SyncEffectWorkerProvider): provider is SyncEffectWorkerProvider & CoordinatedSerializedInnerProvider;
|
|
139
103
|
//# sourceMappingURL=CoordinatedSheetsProvider.d.ts.map
|
package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoordinatedSheetsProvider.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CoordinatedSheetsProvider.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.js
CHANGED
|
@@ -29,31 +29,11 @@
|
|
|
29
29
|
* stable sorted order, so it cannot deadlock with single-sheet mutations.
|
|
30
30
|
* - Provisioning uses a dedicated lane so setup never races an append/write.
|
|
31
31
|
* - A failing or throwing mutation releases the lane, so it never deadlocks.
|
|
32
|
-
* - `runSerializedInner` runs an optional in-lane precondition (the effect
|
|
33
|
-
* lease renewal) after the lane is acquired and before the inner provider
|
|
34
|
-
* call, so queue time plus limiter waits cannot outlive the lease.
|
|
35
32
|
*/
|
|
36
33
|
import { isSyncSheetsObservationBatchProvider, } from "../syncSheets.js";
|
|
37
34
|
import { AsyncMutex } from "./asyncMutex.js";
|
|
38
35
|
import { TRANSPORT_OUTCOME_KINDS, } from "./laneTelemetry.js";
|
|
39
36
|
import { classifyTransportOutcome } from "../transportOutcome.js";
|
|
40
|
-
/**
|
|
41
|
-
* Redacted, stable diagnostic for an aborted in-lane precondition.
|
|
42
|
-
*
|
|
43
|
-
* Static by design: it never embeds effect IDs, payloads, sheet names, or
|
|
44
|
-
* provider errors, so it is safe to persist on outbox rows and logs.
|
|
45
|
-
*/
|
|
46
|
-
const COORDINATED_LANE_PRECONDITION_MESSAGE = "Mutation lane precondition failed before the remote call; the request was not sent.";
|
|
47
|
-
/**
|
|
48
|
-
* Thrown when an in-lane precondition callback rejects before the remote
|
|
49
|
-
* call. Carries only the static redacted message above.
|
|
50
|
-
*/
|
|
51
|
-
export class CoordinatedLanePreconditionError extends Error {
|
|
52
|
-
constructor() {
|
|
53
|
-
super(COORDINATED_LANE_PRECONDITION_MESSAGE);
|
|
54
|
-
this.name = "CoordinatedLanePreconditionError";
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
37
|
/**
|
|
58
38
|
* Serializes provider mutations per lane while keeping value reads lock-free.
|
|
59
39
|
*
|
|
@@ -89,23 +69,6 @@ export class CoordinatedSheetsProvider {
|
|
|
89
69
|
runSerializedControl(physicalSheetId, operation, task) {
|
|
90
70
|
return this.runMutation(physicalSheetId, operation, task);
|
|
91
71
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Runs one internal remote task on the mutation lane with an optional
|
|
94
|
-
* in-lane precondition hook.
|
|
95
|
-
*
|
|
96
|
-
* The effect dispatcher uses this so the worker's lease-renewal callback
|
|
97
|
-
* runs AFTER the lane is acquired (covering queue wait time) but BEFORE the
|
|
98
|
-
* inner provider's remote call (covering shared limiter waits and the call
|
|
99
|
-
* itself). The `remote` closure receives the INNER provider and must call
|
|
100
|
-
* it directly, so the call never re-enters this coordinator's lane and
|
|
101
|
-
* cannot deadlock. When `beforeRemote` resolves false (or throws), a
|
|
102
|
-
* `CoordinatedLanePreconditionError` is raised before any remote request
|
|
103
|
-
* and the lane is released normally; lane telemetry still records the
|
|
104
|
-
* aborted dispatch with a delivery-uncertain outcome.
|
|
105
|
-
*/
|
|
106
|
-
runSerializedInner(physicalSheetId, operation, remote, beforeRemote) {
|
|
107
|
-
return this.runMutation(physicalSheetId, operation, () => remote(this.inner), beforeRemote);
|
|
108
|
-
}
|
|
109
72
|
async fastAppendRows(request) {
|
|
110
73
|
return this.runMutation(request.physicalSheetId, "fastAppendRows", () => this.inner.fastAppendRows(request));
|
|
111
74
|
}
|
|
@@ -179,11 +142,11 @@ export class CoordinatedSheetsProvider {
|
|
|
179
142
|
}
|
|
180
143
|
return lane;
|
|
181
144
|
}
|
|
182
|
-
async runMutation(physicalSheetId, operation, task
|
|
145
|
+
async runMutation(physicalSheetId, operation, task) {
|
|
183
146
|
const key = this.resolveKey(physicalSheetId);
|
|
184
|
-
return this.runInLanes([key], operation, task
|
|
147
|
+
return this.runInLanes([key], operation, task);
|
|
185
148
|
}
|
|
186
|
-
async runInLanes(keys, operation, task
|
|
149
|
+
async runInLanes(keys, operation, task) {
|
|
187
150
|
// Acquire lanes in stable sorted order so concurrent batch mutations cannot
|
|
188
151
|
// deadlock with each other regardless of input order. Each release token is
|
|
189
152
|
// held until the task settles so the lane stays locked for the whole call.
|
|
@@ -200,12 +163,6 @@ export class CoordinatedSheetsProvider {
|
|
|
200
163
|
const queueWaitMs = this.now() - queueStartedAt;
|
|
201
164
|
const remoteStartedAt = this.now();
|
|
202
165
|
try {
|
|
203
|
-
// The in-lane precondition runs after the queue wait but before any
|
|
204
|
-
// remote request; a false result aborts the dispatch with a redacted
|
|
205
|
-
// classified error instead of sending a write with an expired lease.
|
|
206
|
-
if (beforeRemote !== undefined && !(await beforeRemote())) {
|
|
207
|
-
throw new CoordinatedLanePreconditionError();
|
|
208
|
-
}
|
|
209
166
|
const result = await task();
|
|
210
167
|
this.emitSuccess(operation, ordered.join(","), queueWaitMs, remoteStartedAt);
|
|
211
168
|
return result;
|
|
@@ -258,17 +215,6 @@ export class CoordinatedSheetsProvider {
|
|
|
258
215
|
}
|
|
259
216
|
}
|
|
260
217
|
const DEFAULT_LANE_KEY = "default";
|
|
261
|
-
/**
|
|
262
|
-
* Returns whether a provider exposes the coordinator's in-lane dispatch hook.
|
|
263
|
-
*
|
|
264
|
-
* The effect dispatcher uses this to route its `beforeRemoteDispatch` lease
|
|
265
|
-
* renewal through the acquired mutation lane; providers without the hook
|
|
266
|
-
* (bare fakes and test doubles) keep the direct call path and simply ignore
|
|
267
|
-
* the hook.
|
|
268
|
-
*/
|
|
269
|
-
export function hasCoordinatedSerializedInner(provider) {
|
|
270
|
-
return typeof provider.runSerializedInner === "function";
|
|
271
|
-
}
|
|
272
218
|
/** Returns the distinct, sorted lane keys for one batch mutation. */
|
|
273
219
|
function distinctLaneKeys(keys) {
|
|
274
220
|
return [...new Set(keys)].sort();
|
package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoordinatedSheetsProvider.js","sourceRoot":"","sources":["../../../../../src/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CoordinatedSheetsProvider.js","sourceRoot":"","sources":["../../../../../src/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hikoutei",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.63",
|
|
4
4
|
"description": "Typed repository and safe write layer for Google Sheets-backed MVPs. SQLite-authoritative entity lifecycle with asynchronous Google Sheets projection.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|