instar 1.3.501 → 1.3.502
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +537 -9
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +41 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/BackupManager.d.ts.map +1 -1
- package/dist/core/BackupManager.js +7 -0
- package/dist/core/BackupManager.js.map +1 -1
- package/dist/core/DeliverMessageHandler.d.ts +13 -1
- package/dist/core/DeliverMessageHandler.d.ts.map +1 -1
- package/dist/core/DeliverMessageHandler.js +7 -0
- package/dist/core/DeliverMessageHandler.js.map +1 -1
- package/dist/core/MachinePoolRegistry.d.ts +3 -0
- package/dist/core/MachinePoolRegistry.d.ts.map +1 -1
- package/dist/core/MachinePoolRegistry.js +1 -0
- package/dist/core/MachinePoolRegistry.js.map +1 -1
- package/dist/core/OwnerSuspectBreaker.d.ts +37 -0
- package/dist/core/OwnerSuspectBreaker.d.ts.map +1 -1
- package/dist/core/OwnerSuspectBreaker.js +58 -0
- package/dist/core/OwnerSuspectBreaker.js.map +1 -1
- package/dist/core/PendingInboundStore.d.ts +310 -0
- package/dist/core/PendingInboundStore.d.ts.map +1 -0
- package/dist/core/PendingInboundStore.js +715 -0
- package/dist/core/PendingInboundStore.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +13 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/QueueDrainLoop.d.ts +247 -0
- package/dist/core/QueueDrainLoop.d.ts.map +1 -0
- package/dist/core/QueueDrainLoop.js +0 -0
- package/dist/core/QueueDrainLoop.js.map +1 -0
- package/dist/core/SessionRouter.d.ts +36 -2
- package/dist/core/SessionRouter.d.ts.map +1 -1
- package/dist/core/SessionRouter.js +34 -9
- package/dist/core/SessionRouter.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +10 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/inboundQueueBootSweep.d.ts +61 -0
- package/dist/core/inboundQueueBootSweep.d.ts.map +1 -0
- package/dist/core/inboundQueueBootSweep.js +207 -0
- package/dist/core/inboundQueueBootSweep.js.map +1 -0
- package/dist/core/inboundQueueConfig.d.ts +78 -0
- package/dist/core/inboundQueueConfig.d.ts.map +1 -0
- package/dist/core/inboundQueueConfig.js +135 -0
- package/dist/core/inboundQueueConfig.js.map +1 -0
- package/dist/core/types.d.ts +23 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/messaging/TelegramAdapter.d.ts +4 -0
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +12 -0
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/monitoring/guardManifest.d.ts.map +1 -1
- package/dist/monitoring/guardManifest.js +27 -0
- package/dist/monitoring/guardManifest.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +6 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +2 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +4 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +25 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lint-guard-manifest.js +2 -0
- package/src/data/builtin-manifest.json +65 -65
- package/src/scaffold/templates.ts +6 -0
- package/upgrades/1.3.502.md +75 -0
- package/upgrades/side-effects/1.3.492.md +20 -0
- package/upgrades/side-effects/durable-inbound-message-queue.md +213 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QueueDrainLoop — the policy engine over PendingInboundStore (Durable Inbound
|
|
3
|
+
* Message Queue spec §2–§4, §6). Owns:
|
|
4
|
+
*
|
|
5
|
+
* - the live ENQUEUE side (the router's `queueMessage` dep target): lease-
|
|
6
|
+
* gated, dry-run-aware, negative-cached, mirror-maintained custody taking;
|
|
7
|
+
* - the DRAIN side: head-only selection, hold verdicts, claims, dispatch via
|
|
8
|
+
* the injected `dispatchInbound` seam with the §3.4 receipt handover
|
|
9
|
+
* contract, disposition mapping, per-entry error isolation, backoff,
|
|
10
|
+
* maxAttempts forced re-place;
|
|
11
|
+
* - the backstop tick (Eternal Sentinel, declared §3.2) + event triggers;
|
|
12
|
+
* - operator halt (§3.6): stop transitions custody + PIS cleanup; pause
|
|
13
|
+
* freezes queued rows only (cumulative cap);
|
|
14
|
+
* - clock discipline (§6): sleep-shift on wake, nap clamp.
|
|
15
|
+
*
|
|
16
|
+
* Everything is injected — no timers or I/O of its own beyond the store — so
|
|
17
|
+
* the policy is deterministic and unit-testable. The server wires the real
|
|
18
|
+
* dispatch tail, breaker, registry, and reporting.
|
|
19
|
+
*
|
|
20
|
+
* P19 declaration — Eternal Sentinel (spec §3.2): the backstop tick never
|
|
21
|
+
* gives up, by design. Conditions: (1) declared here; (2) critical-healer role
|
|
22
|
+
* — it is the only thing that drains custody; (3) rate floor = drainTickMs
|
|
23
|
+
* with constant per-tick cost (bounded scans over ≤hardMaxTotal rows);
|
|
24
|
+
* (4) observable — tick failures are episode-latched: one log per episode,
|
|
25
|
+
* one degradation signal after 10 min sustained, recovery logged once.
|
|
26
|
+
*/
|
|
27
|
+
import type { PendingInboundStore, SenderEnvelope, EnqueueOutcome } from './PendingInboundStore.js';
|
|
28
|
+
import type { InboundQueueConfig, HoldForStabilityConfig } from './inboundQueueConfig.js';
|
|
29
|
+
export interface DrainMessage {
|
|
30
|
+
sessionKey: string;
|
|
31
|
+
messageId: string;
|
|
32
|
+
payload: string;
|
|
33
|
+
senderEnvelope: SenderEnvelope | null;
|
|
34
|
+
topicMetadata: unknown;
|
|
35
|
+
enqueueSeq: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The ownership-handover contract handed to the dispatch tail. The tail MUST
|
|
39
|
+
* call `commitReceipt()` at the handover point (before the PIS record on the
|
|
40
|
+
* spawn path / before a direct inject) and honor a false return by ABORTING
|
|
41
|
+
* the inject (the §3.6 transactional stop fence fired). After the receipt, it
|
|
42
|
+
* MUST consult `stopRecheck()` immediately before the inject (the round-7
|
|
43
|
+
* receipt→inject gap close) — true means stopped: skip the inject.
|
|
44
|
+
*/
|
|
45
|
+
export interface DrainHandover {
|
|
46
|
+
commitReceipt(): boolean;
|
|
47
|
+
stopRecheck(): boolean;
|
|
48
|
+
}
|
|
49
|
+
export type DrainDispatchResult =
|
|
50
|
+
/** forwarded | duplicate | remote spawned | remote owner-dead-replaced. */
|
|
51
|
+
{
|
|
52
|
+
kind: 'remote-delivered';
|
|
53
|
+
}
|
|
54
|
+
/** Local tail completed through the receipt; `injectError` carries a caught
|
|
55
|
+
* inject failure AFTER the receipt (→ delivered_unconfirmed, §3.4). */
|
|
56
|
+
| {
|
|
57
|
+
kind: 'local-delivered';
|
|
58
|
+
injectError?: string;
|
|
59
|
+
}
|
|
60
|
+
/** commitReceipt() returned false — a stop transitioned the row mid-flight. */
|
|
61
|
+
| {
|
|
62
|
+
kind: 'handover-refused';
|
|
63
|
+
}
|
|
64
|
+
/** stopRecheck() fired after the receipt — inject skipped (orphaned receipt
|
|
65
|
+
* is the named-safe shape; the row already reads operator-stop). */
|
|
66
|
+
| {
|
|
67
|
+
kind: 'stopped-before-inject';
|
|
68
|
+
}
|
|
69
|
+
/** queued | placement-blocked | spawn-in-progress skip → release+backoff. */
|
|
70
|
+
| {
|
|
71
|
+
kind: 'un-routable';
|
|
72
|
+
reason: string;
|
|
73
|
+
}
|
|
74
|
+
/** Typed NACK from a peer that re-validated the sender (§3.4 remote). */
|
|
75
|
+
| {
|
|
76
|
+
kind: 'sender-rejected';
|
|
77
|
+
} | {
|
|
78
|
+
kind: 'failed';
|
|
79
|
+
error: unknown;
|
|
80
|
+
};
|
|
81
|
+
export type HoldVerdict = 'hold' | 'failover' | 'deliver';
|
|
82
|
+
export interface LossItem {
|
|
83
|
+
sessionKey: string;
|
|
84
|
+
messageId: string;
|
|
85
|
+
enqueuedAt: string;
|
|
86
|
+
reason: string;
|
|
87
|
+
senderDisplay?: string | null;
|
|
88
|
+
}
|
|
89
|
+
export interface QueueDrainLoopDeps {
|
|
90
|
+
store: PendingInboundStore;
|
|
91
|
+
qcfg: InboundQueueConfig;
|
|
92
|
+
hcfg: HoldForStabilityConfig;
|
|
93
|
+
selfMachineId: string;
|
|
94
|
+
holdsLease(): boolean;
|
|
95
|
+
/** Handoff-in-progress flips the enqueue gate to refused (§3.5 ordered handoff). */
|
|
96
|
+
handoffInProgress?(): boolean;
|
|
97
|
+
/** Per-topic operator-stop state (§3.6) — stop-scoped, never pause. */
|
|
98
|
+
isStopped(sessionKey: string): boolean;
|
|
99
|
+
/** The §3.1 dispatch seam (via:'drain'). Bounded by dispatchDeadlineMs here. */
|
|
100
|
+
dispatchInbound(msg: DrainMessage, handover: DrainHandover): Promise<DrainDispatchResult>;
|
|
101
|
+
/** maxAttempts escape hatch — ONE forced re-place bypassing hold/deliver
|
|
102
|
+
* verdicts (§3.3). Resolves true when the re-place succeeded. */
|
|
103
|
+
forceReplace(msg: DrainMessage): Promise<boolean>;
|
|
104
|
+
/** §4 hold verdict — required; the server injects always-'failover' when the
|
|
105
|
+
* policy is off (§4.2). Pure in-memory (breaker + capacity registry). */
|
|
106
|
+
holdVerdict(sessionKey: string): HoldVerdict;
|
|
107
|
+
/** Stop cleanup (§3.6/§3.4): delete the PIS record for a stopped session. */
|
|
108
|
+
clearPisRecord(sessionKey: string): void;
|
|
109
|
+
/** Loss reporting — the dep aggregates into ONE attention item per episode
|
|
110
|
+
* (§1 copy rules). Never receives payload bytes. */
|
|
111
|
+
reportLoss(items: LossItem[], reason: string): void;
|
|
112
|
+
/** "Possibly not injected — resend if unanswered" (§3.4/§5 windows 4+6). */
|
|
113
|
+
reportPossiblyNotInjected(items: LossItem[]): void;
|
|
114
|
+
log(line: string): void;
|
|
115
|
+
reportDegradation(reason: string): void;
|
|
116
|
+
now(): number;
|
|
117
|
+
/** Monotonic ms (within-boot deadlines, §6). */
|
|
118
|
+
mono(): number;
|
|
119
|
+
bootSessionId: string;
|
|
120
|
+
}
|
|
121
|
+
export interface DrainPassSummary {
|
|
122
|
+
trigger: string;
|
|
123
|
+
dispatched: number;
|
|
124
|
+
delivered: number;
|
|
125
|
+
unroutable: number;
|
|
126
|
+
failed: number;
|
|
127
|
+
skippedHeld: number;
|
|
128
|
+
skippedStopped: number;
|
|
129
|
+
staleCustodyExpired: number;
|
|
130
|
+
deadlineHit: boolean;
|
|
131
|
+
}
|
|
132
|
+
export declare class QueueDrainLoop {
|
|
133
|
+
private readonly d;
|
|
134
|
+
/** In-memory session-count mirror (§2.3) — same-code-path updates at every
|
|
135
|
+
* transition site, boot-rebuilt, read-through on zero. */
|
|
136
|
+
private mirror;
|
|
137
|
+
/** Held-set cache (§3.2) — seqs currently excluded from selection. The
|
|
138
|
+
* first_held_at COLUMN is authoritative; this is a boot-rebuilt cache. */
|
|
139
|
+
private heldSeqs;
|
|
140
|
+
/** Refusal negative cache keyed on the canonical id (§1). */
|
|
141
|
+
private refusalCache;
|
|
142
|
+
/** Single-flight + rerun (§3.2). */
|
|
143
|
+
private passInFlight;
|
|
144
|
+
private rerunRequested;
|
|
145
|
+
private lastPassEndedMono;
|
|
146
|
+
/** Eternal-Sentinel episode latch (§3.2). */
|
|
147
|
+
private tickFailureSinceMono;
|
|
148
|
+
private tickFailureLogged;
|
|
149
|
+
private tickDegradationSent;
|
|
150
|
+
private holdRecheckLastMono;
|
|
151
|
+
private tickCount;
|
|
152
|
+
/** Current tenure id — refreshed by observeLeaseClaim at lease acquisition. */
|
|
153
|
+
private tenure;
|
|
154
|
+
constructor(deps: QueueDrainLoopDeps);
|
|
155
|
+
private rebuildCaches;
|
|
156
|
+
/** Call at every lease ACQUISITION (not renewal) with the ref-tip holder
|
|
157
|
+
* observed at claim time. */
|
|
158
|
+
onLeaseAcquired(tipHolderAtClaim: string | null): void;
|
|
159
|
+
currentTenure(): string | null;
|
|
160
|
+
/**
|
|
161
|
+
* Take custody. Returns the tri-state outcome; the router maps
|
|
162
|
+
* `queued`/`already-queued` → acked:true, `refused` → today's fall-through.
|
|
163
|
+
* NEVER throws — a storage failure maps to `refused` (fail-safe direction).
|
|
164
|
+
* This is the caller's LAST fallible step before its outcome return
|
|
165
|
+
* (no-throw-after-commit invariant).
|
|
166
|
+
*/
|
|
167
|
+
enqueueLive(msg: {
|
|
168
|
+
sessionKey: string;
|
|
169
|
+
messageId: string;
|
|
170
|
+
payload: string;
|
|
171
|
+
senderEnvelope?: SenderEnvelope | null;
|
|
172
|
+
topicMetadata?: unknown;
|
|
173
|
+
}, reason: string): EnqueueOutcome;
|
|
174
|
+
private pruneRefusalCache;
|
|
175
|
+
/** Mirror with read-through-on-zero (the round-2 honest-consistency contract). */
|
|
176
|
+
hasQueued(sessionKey: string): boolean;
|
|
177
|
+
/** §2.2 route-throw custody check — point read, never the mirror. Throws
|
|
178
|
+
* propagate so the caller can fail OPEN to fall-through. */
|
|
179
|
+
hasCommittedRow(sessionKey: string, messageId: string): boolean;
|
|
180
|
+
private mirrorAdd;
|
|
181
|
+
private mirrorRemove;
|
|
182
|
+
/** One tick — the server schedules this every drainTickMs. Never throws. */
|
|
183
|
+
tick(): Promise<void>;
|
|
184
|
+
private reconcileMirror;
|
|
185
|
+
/** TTL + stale-custody/nap clamps (§3.5/§6). */
|
|
186
|
+
private expireWithClamps;
|
|
187
|
+
private recheckHolds;
|
|
188
|
+
/** Ownership transition for a session with entries (emitPlacement seam).
|
|
189
|
+
* Returns the pass promise so callers MAY await (tests do; the server
|
|
190
|
+
* fire-and-forgets). */
|
|
191
|
+
onOwnershipTransition(sessionKey: string): Promise<DrainPassSummary | null>;
|
|
192
|
+
/** Breaker close — held rows for the recovered owner deliver instantly. */
|
|
193
|
+
onBreakerClose(): Promise<DrainPassSummary | null>;
|
|
194
|
+
onMachineOnline(): Promise<DrainPassSummary | null>;
|
|
195
|
+
runDrainPass(trigger: string): Promise<DrainPassSummary | null>;
|
|
196
|
+
private lossItem;
|
|
197
|
+
private dispatchOne;
|
|
198
|
+
private toMsg;
|
|
199
|
+
private releaseWithBackoff;
|
|
200
|
+
/**
|
|
201
|
+
* Emergency stop for a topic: transition that session's non-terminal rows
|
|
202
|
+
* terminal `expired` reason `operator-stop`, delete the PIS record, ONE
|
|
203
|
+
* loss report ("dropped on your stop command — resend anything still
|
|
204
|
+
* wanted"). The claimed→expired transition is the transactional fence that
|
|
205
|
+
* makes any in-flight conditional receipt write fail atomically.
|
|
206
|
+
*/
|
|
207
|
+
onOperatorStop(sessionKey: string): void;
|
|
208
|
+
/** Pause: freeze QUEUED rows only (round-9 pin) — in-flight dispatches
|
|
209
|
+
* complete normally; the pass/batch consult stops new dispatches. Durable. */
|
|
210
|
+
onPause(): void;
|
|
211
|
+
/** Resume: fold frozen spans, shift deadlines, expire past-cumulative-cap
|
|
212
|
+
* rows as pause-expired (loss-reported), re-enter via the trigger seam. */
|
|
213
|
+
onResume(): Promise<DrainPassSummary | null>;
|
|
214
|
+
/**
|
|
215
|
+
* Sleep/wake (§6): shift backoff deadlines by the nap span (monotonic
|
|
216
|
+
* deadlines are only reconstructable within one boot session — the shift
|
|
217
|
+
* applies the sleep-shift pattern), then clamp: entries older than
|
|
218
|
+
* `maxNapDeliveryAgeMs` of wall age expire (`nap-stale`, loss-reported) —
|
|
219
|
+
* a 10-minute-old instruction should not fire into a conversation the user
|
|
220
|
+
* has moved past. Low wake-confidence → the conservative branch: clamp
|
|
221
|
+
* WITHOUT deadline-shift (deadlines fire sooner, the clamp still bounds
|
|
222
|
+
* staleness — the fail-safe direction).
|
|
223
|
+
*/
|
|
224
|
+
onWake(napMs: number, confidence: 'high' | 'low'): Promise<DrainPassSummary | null>;
|
|
225
|
+
private shiftDeadline;
|
|
226
|
+
/** Bounded top-K per-session depth list (§5.1 heartbeat field; K byte-small
|
|
227
|
+
* by construction — sessionKey is a topic id string). */
|
|
228
|
+
topKSessionDepths(k: number): Array<{
|
|
229
|
+
sessionKey: string;
|
|
230
|
+
depth: number;
|
|
231
|
+
}>;
|
|
232
|
+
/** Receive-side durable receipt, canonical-id keyed (loss window 6 arm). */
|
|
233
|
+
recordRemoteReceipt(sessionKey: string, messageId: string): boolean;
|
|
234
|
+
/** Flip the injected marker after the local inject completed. */
|
|
235
|
+
markRemoteInjected(sessionKey: string, messageId: string): void;
|
|
236
|
+
/** Peer-side CAUGHT inject failure after receipt-commit (round-9): report at
|
|
237
|
+
* error time + counter; marker stays unflipped (prune backstop re-covers). */
|
|
238
|
+
reportPeerInjectError(sessionKey: string, messageId: string, error: string): void;
|
|
239
|
+
snapshot(): {
|
|
240
|
+
counts: ReturnType<PendingInboundStore['counts']>;
|
|
241
|
+
counters: Record<string, number>;
|
|
242
|
+
heldSeqs: number;
|
|
243
|
+
paused: boolean;
|
|
244
|
+
tenure: string | null;
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=QueueDrainLoop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueDrainLoop.d.ts","sourceRoot":"","sources":["../../src/core/QueueDrainLoop.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueDrainLoop.js","sourceRoot":"","sources":["../../src/core/QueueDrainLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,14 +27,36 @@ export interface OwnershipView {
|
|
|
27
27
|
}
|
|
28
28
|
export interface DeliverAck {
|
|
29
29
|
messageId: string;
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* `sender-rejected` (Durable Inbound Message Queue §3.4 remote path): a
|
|
32
|
+
* typed, NON-retryable NACK — the receive side re-validated a carried
|
|
33
|
+
* senderEnvelope.userId against ITS OWN users registry and refused. It does
|
|
34
|
+
* NOT mark the owner suspect (the peer is healthy; it answered), is never
|
|
35
|
+
* retried or re-placed (a re-placed owner's registry would reject
|
|
36
|
+
* identically), and maps in the queue drain to terminal
|
|
37
|
+
* `sender-deauthorized`. Old peers never emit it (version skew named).
|
|
38
|
+
*/
|
|
39
|
+
accepted: 'queued' | 'duplicate' | 'stale-ownership' | 'sender-rejected';
|
|
40
|
+
}
|
|
41
|
+
/** Sender identity captured at ingress (Durable Inbound Message Queue §2.2) —
|
|
42
|
+
* persisted with queued custody so a later delivery still knows its real
|
|
43
|
+
* sender; carried on the mesh envelope for drained forwards. */
|
|
44
|
+
export interface InboundSenderEnvelope {
|
|
45
|
+
userId?: string | number;
|
|
46
|
+
username?: string;
|
|
47
|
+
firstName?: string;
|
|
31
48
|
}
|
|
32
49
|
export interface InboundMessage {
|
|
33
50
|
sessionKey: string;
|
|
34
51
|
messageId: string;
|
|
35
52
|
payload: unknown;
|
|
36
53
|
topicMetadata?: TopicPlacement;
|
|
54
|
+
senderEnvelope?: InboundSenderEnvelope | null;
|
|
37
55
|
}
|
|
56
|
+
/** Tri-state custody outcome from the queueMessage dep (§2.2): the router
|
|
57
|
+
* sets `acked` true ONLY for `queued`/`already-queued` — `refused` keeps
|
|
58
|
+
* today's un-acked fall-through. */
|
|
59
|
+
export type QueueMessageResult = 'queued' | 'already-queued' | 'refused';
|
|
38
60
|
export type RouteAction = 'handled-locally' | 'forwarded' | 'spawned' | 'queued' | 'duplicate' | 'owner-dead-replaced' | 'placement-blocked';
|
|
39
61
|
export interface RouteOutcome {
|
|
40
62
|
action: RouteAction;
|
|
@@ -87,6 +109,7 @@ export interface SessionRouterDeps {
|
|
|
87
109
|
messageId: string;
|
|
88
110
|
payload: unknown;
|
|
89
111
|
ownershipEpoch: number;
|
|
112
|
+
senderEnvelope?: InboundSenderEnvelope | null;
|
|
90
113
|
}) => Promise<DeliverAck>;
|
|
91
114
|
/** Router == owner: process the message on this machine. */
|
|
92
115
|
handleLocally: (msg: InboundMessage) => Promise<void>;
|
|
@@ -102,7 +125,10 @@ export interface SessionRouterDeps {
|
|
|
102
125
|
* the FSM only permits a claim whose machineId equals the placed owner.)
|
|
103
126
|
*/
|
|
104
127
|
confirmClaim?: (sessionKey: string, machineId: string) => void;
|
|
105
|
-
|
|
128
|
+
/** Tri-state custody taking (Durable Inbound Message Queue §2.2). The
|
|
129
|
+
* production dep is QueueDrainLoop.enqueueLive (never throws; a storage
|
|
130
|
+
* failure maps to 'refused' → today's fall-through). */
|
|
131
|
+
queueMessage: (msg: InboundMessage, reason: string) => QueueMessageResult;
|
|
106
132
|
raiseAttention: (title: string, body: string) => void;
|
|
107
133
|
markOwnerSuspect?: (machineId: string) => void;
|
|
108
134
|
/**
|
|
@@ -122,6 +148,14 @@ export declare class SessionRouter {
|
|
|
122
148
|
constructor(deps: SessionRouterDeps, cfg?: SessionRouterConfig);
|
|
123
149
|
/** Dispatch an inbound message; serialized per-session (in-order, one-in-flight). */
|
|
124
150
|
route(msg: InboundMessage): Promise<RouteOutcome>;
|
|
151
|
+
/**
|
|
152
|
+
* The queue drain's maxAttempts escape hatch (Durable Inbound Message Queue
|
|
153
|
+
* §3.3): ONE forced re-place that bypasses hold/deliver verdicts — a direct
|
|
154
|
+
* placeAndClaim('failover'), serialized on the session's chain like every
|
|
155
|
+
* dispatch. Returns true when the message ended up durably handled
|
|
156
|
+
* (acked outcome that isn't another queued/blocked verdict).
|
|
157
|
+
*/
|
|
158
|
+
forceReplace(msg: InboundMessage): Promise<boolean>;
|
|
125
159
|
private backoff;
|
|
126
160
|
private dispatchOne;
|
|
127
161
|
private forwardToOwner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRouter.d.ts","sourceRoot":"","sources":["../../src/core/SessionRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SessionRouter.d.ts","sourceRoot":"","sources":["../../src/core/SessionRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,25 @@ export class SessionRouter {
|
|
|
75
75
|
});
|
|
76
76
|
return next;
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* The queue drain's maxAttempts escape hatch (Durable Inbound Message Queue
|
|
80
|
+
* §3.3): ONE forced re-place that bypasses hold/deliver verdicts — a direct
|
|
81
|
+
* placeAndClaim('failover'), serialized on the session's chain like every
|
|
82
|
+
* dispatch. Returns true when the message ended up durably handled
|
|
83
|
+
* (acked outcome that isn't another queued/blocked verdict).
|
|
84
|
+
*/
|
|
85
|
+
async forceReplace(msg) {
|
|
86
|
+
const prior = this.chains.get(msg.sessionKey) ?? Promise.resolve();
|
|
87
|
+
const next = prior.catch(() => undefined).then(() => this.placeAndClaim(msg, 'failover', true));
|
|
88
|
+
const tail = next.then(() => undefined, () => undefined);
|
|
89
|
+
this.chains.set(msg.sessionKey, tail);
|
|
90
|
+
void tail.then(() => {
|
|
91
|
+
if (this.chains.get(msg.sessionKey) === tail)
|
|
92
|
+
this.chains.delete(msg.sessionKey);
|
|
93
|
+
});
|
|
94
|
+
const outcome = await next;
|
|
95
|
+
return outcome.acked && outcome.action !== 'queued' && outcome.action !== 'placement-blocked';
|
|
96
|
+
}
|
|
78
97
|
backoff(attempt) {
|
|
79
98
|
return Math.min(this.cfg.deliverMessageRetryBackoffStartMs * 2 ** attempt, this.cfg.deliverMessageRetryBackoffMaxMs);
|
|
80
99
|
}
|
|
@@ -93,8 +112,8 @@ export class SessionRouter {
|
|
|
93
112
|
return this.placeAndClaim(msg, 'failover', true);
|
|
94
113
|
}
|
|
95
114
|
if (own.status === 'placing' || own.status === 'transferring') {
|
|
96
|
-
this.deps.queueMessage(msg, 'ownership-contention');
|
|
97
|
-
return { action: 'queued', detail: own.status, acked:
|
|
115
|
+
const q = this.deps.queueMessage(msg, 'ownership-contention');
|
|
116
|
+
return { action: 'queued', detail: own.status, acked: q === 'queued' || q === 'already-queued' };
|
|
98
117
|
}
|
|
99
118
|
// Unowned → place + claim.
|
|
100
119
|
return this.placeAndClaim(msg, 'new', false);
|
|
@@ -102,7 +121,7 @@ export class SessionRouter {
|
|
|
102
121
|
async forwardToOwner(msg, owner, epoch, reResolveDepth) {
|
|
103
122
|
for (let attempt = 0; attempt <= this.cfg.deliverMessageMaxRetries; attempt++) {
|
|
104
123
|
try {
|
|
105
|
-
const ack = await this.deps.deliverMessage(owner, { sessionKey: msg.sessionKey, messageId: msg.messageId, payload: msg.payload, ownershipEpoch: epoch });
|
|
124
|
+
const ack = await this.deps.deliverMessage(owner, { sessionKey: msg.sessionKey, messageId: msg.messageId, payload: msg.payload, ownershipEpoch: epoch, senderEnvelope: msg.senderEnvelope ?? null });
|
|
106
125
|
// ANY ack (queued/duplicate/stale) proves the peer answered — close its
|
|
107
126
|
// suspect window before interpreting the ack.
|
|
108
127
|
this.deps.onOwnerResponsive?.(owner);
|
|
@@ -110,6 +129,12 @@ export class SessionRouter {
|
|
|
110
129
|
return { action: 'duplicate', owner, acked: true };
|
|
111
130
|
if (ack.accepted === 'queued')
|
|
112
131
|
return { action: 'forwarded', owner, acked: true };
|
|
132
|
+
// sender-rejected: typed authz NACK (§3.4 remote) — the peer answered
|
|
133
|
+
// (healthy, never suspect) and durably REFUSED the sender. Terminal for
|
|
134
|
+
// this message: acked so the offset advances; never retried/re-placed.
|
|
135
|
+
if (ack.accepted === 'sender-rejected') {
|
|
136
|
+
return { action: 'forwarded', owner, detail: 'sender-rejected', acked: true };
|
|
137
|
+
}
|
|
113
138
|
// stale-ownership → re-resolve (bounded) and route to the current owner.
|
|
114
139
|
if (reResolveDepth >= this.cfg.maxReResolveDepth) {
|
|
115
140
|
return this.placeAndClaim(msg, 'failover', true);
|
|
@@ -153,13 +178,13 @@ export class SessionRouter {
|
|
|
153
178
|
});
|
|
154
179
|
if (decision.outcome === 'placement-blocked') {
|
|
155
180
|
this.deps.raiseAttention('Session placement blocked', `${msg.sessionKey}: ${decision.escalationReason ?? decision.reason}`);
|
|
156
|
-
this.deps.queueMessage(msg, `placement-blocked:${decision.escalationReason ?? decision.reason}`);
|
|
157
|
-
return { action: 'placement-blocked', detail: decision.escalationReason ?? decision.reason, acked:
|
|
181
|
+
const q = this.deps.queueMessage(msg, `placement-blocked:${decision.escalationReason ?? decision.reason}`);
|
|
182
|
+
return { action: 'placement-blocked', detail: decision.escalationReason ?? decision.reason, acked: q === 'queued' || q === 'already-queued' };
|
|
158
183
|
}
|
|
159
184
|
if (decision.outcome === 'queued' || !decision.chosenMachine) {
|
|
160
185
|
this.deps.raiseAttention('No machine available for session', `${msg.sessionKey}: ${decision.escalationReason ?? decision.reason}`);
|
|
161
|
-
this.deps.queueMessage(msg, decision.escalationReason ?? 'no-capable-machine');
|
|
162
|
-
return { action: 'queued', detail: decision.escalationReason ?? decision.reason, acked:
|
|
186
|
+
const q = this.deps.queueMessage(msg, decision.escalationReason ?? 'no-capable-machine');
|
|
187
|
+
return { action: 'queued', detail: decision.escalationReason ?? decision.reason, acked: q === 'queued' || q === 'already-queued' };
|
|
163
188
|
}
|
|
164
189
|
// Synchronous CAS-claim (the dispatch BLOCKS on this — Invariant #2).
|
|
165
190
|
const pre = this.deps.resolveOwnership(msg.sessionKey);
|
|
@@ -174,8 +199,8 @@ export class SessionRouter {
|
|
|
174
199
|
if (own2.status === 'active' && own2.owner && this.deps.isMachineAlive(own2.owner)) {
|
|
175
200
|
return this.forwardToOwner(msg, own2.owner, own2.epoch, 0);
|
|
176
201
|
}
|
|
177
|
-
this.deps.queueMessage(msg, 'ownership-contention');
|
|
178
|
-
return { action: 'queued', detail: 'ownership-contention', acked:
|
|
202
|
+
const q = this.deps.queueMessage(msg, 'ownership-contention');
|
|
203
|
+
return { action: 'queued', detail: 'ownership-contention', acked: q === 'queued' || q === 'already-queued' };
|
|
179
204
|
}
|
|
180
205
|
// CAS won → spawn on the winner (or handle locally if that's us).
|
|
181
206
|
const action = fromDead ? 'owner-dead-replaced' : 'spawned';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRouter.js","sourceRoot":"","sources":["../../src/core/SessionRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"SessionRouter.js","sourceRoot":"","sources":["../../src/core/SessionRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAmE/C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,sBAAsB,GACtB,cAAc,GACd,iBAAiB,GACjB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAmE/C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,sBAAsB,GACtB,cAAc,GACd,iBAAiB,GACjB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAoHnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
|
|
@@ -146,6 +146,16 @@ export const DARK_GATE_EXCLUSIONS = [
|
|
|
146
146
|
category: 'optional-integration',
|
|
147
147
|
reason: 'multi-machine pooling; opt-in per deployment',
|
|
148
148
|
},
|
|
149
|
+
{
|
|
150
|
+
configPath: 'multiMachine.sessionPool.inboundQueue.enabled',
|
|
151
|
+
category: 'optional-integration',
|
|
152
|
+
reason: 'durable inbound custody queue; staged rollout per spec frontmatter (dark→dry-run→dev-live→fleet)',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
configPath: 'multiMachine.sessionPool.holdForStability.enabled',
|
|
156
|
+
category: 'optional-integration',
|
|
157
|
+
reason: 'hold-for-stability policy; trails inboundQueue one rollout stage behind (operator discipline)',
|
|
158
|
+
},
|
|
149
159
|
// ── deliberate-fleet-default — off for everyone by design (incl. dev) ──
|
|
150
160
|
{
|
|
151
161
|
configPath: 'monitoring.bootHealthBeacon.enabled',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
|