instar 1.3.499 → 1.3.501
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 +407 -6
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +10 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +69 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/ReapGuard.d.ts +24 -0
- package/dist/core/ReapGuard.d.ts.map +1 -1
- package/dist/core/ReapGuard.js +62 -0
- package/dist/core/ReapGuard.js.map +1 -1
- package/dist/core/SessionManager.d.ts +32 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +74 -2
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/WorkEvidence.d.ts +45 -0
- package/dist/core/WorkEvidence.d.ts.map +1 -0
- package/dist/core/WorkEvidence.js +88 -0
- package/dist/core/WorkEvidence.js.map +1 -0
- package/dist/core/componentCategories.d.ts.map +1 -1
- package/dist/core/componentCategories.js +3 -0
- package/dist/core/componentCategories.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +5 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/types.d.ts +50 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/messaging/NotificationBatcher.d.ts +12 -0
- package/dist/messaging/NotificationBatcher.d.ts.map +1 -1
- package/dist/messaging/NotificationBatcher.js +36 -0
- package/dist/messaging/NotificationBatcher.js.map +1 -1
- package/dist/messaging/pending-relay-store.d.ts +67 -8
- package/dist/messaging/pending-relay-store.d.ts.map +1 -1
- package/dist/messaging/pending-relay-store.js +151 -14
- package/dist/messaging/pending-relay-store.js.map +1 -1
- package/dist/messaging/reap-notice-delivery-id.d.ts +37 -0
- package/dist/messaging/reap-notice-delivery-id.d.ts.map +1 -0
- package/dist/messaging/reap-notice-delivery-id.js +52 -0
- package/dist/messaging/reap-notice-delivery-id.js.map +1 -0
- package/dist/monitoring/QuotaManager.d.ts +6 -0
- package/dist/monitoring/QuotaManager.d.ts.map +1 -1
- package/dist/monitoring/QuotaManager.js +11 -0
- package/dist/monitoring/QuotaManager.js.map +1 -1
- package/dist/monitoring/ReapLog.d.ts +39 -4
- package/dist/monitoring/ReapLog.d.ts.map +1 -1
- package/dist/monitoring/ReapLog.js +54 -4
- package/dist/monitoring/ReapLog.js.map +1 -1
- package/dist/monitoring/ReapNoticeDrain.d.ts +113 -0
- package/dist/monitoring/ReapNoticeDrain.d.ts.map +1 -0
- package/dist/monitoring/ReapNoticeDrain.js +231 -0
- package/dist/monitoring/ReapNoticeDrain.js.map +1 -0
- package/dist/monitoring/ReapNotifier.d.ts +89 -18
- package/dist/monitoring/ReapNotifier.d.ts.map +1 -1
- package/dist/monitoring/ReapNotifier.js +329 -22
- package/dist/monitoring/ReapNotifier.js.map +1 -1
- package/dist/monitoring/ResumeQueue.d.ts +223 -0
- package/dist/monitoring/ResumeQueue.d.ts.map +1 -0
- package/dist/monitoring/ResumeQueue.js +600 -0
- package/dist/monitoring/ResumeQueue.js.map +1 -0
- package/dist/monitoring/ResumeQueueDrainer.d.ts +151 -0
- package/dist/monitoring/ResumeQueueDrainer.d.ts.map +1 -0
- package/dist/monitoring/ResumeQueueDrainer.js +420 -0
- package/dist/monitoring/ResumeQueueDrainer.js.map +1 -0
- package/dist/monitoring/SessionMigrator.d.ts +10 -0
- package/dist/monitoring/SessionMigrator.d.ts.map +1 -1
- package/dist/monitoring/SessionMigrator.js +43 -1
- package/dist/monitoring/SessionMigrator.js.map +1 -1
- package/dist/monitoring/SessionReaper.d.ts +1 -0
- package/dist/monitoring/SessionReaper.d.ts.map +1 -1
- package/dist/monitoring/SessionReaper.js +5 -0
- package/dist/monitoring/SessionReaper.js.map +1 -1
- package/dist/monitoring/delivery-failure-sentinel.d.ts.map +1 -1
- package/dist/monitoring/delivery-failure-sentinel.js +7 -3
- package/dist/monitoring/delivery-failure-sentinel.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +4 -3
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +5 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +3 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +8 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +94 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/skills/spec-converge/SKILL.md +23 -0
- package/src/data/builtin-manifest.json +65 -65
- package/src/data/state-coherence-registry.json +14 -1
- package/src/scaffold/templates.ts +4 -3
- package/upgrades/1.3.500.md +43 -0
- package/upgrades/1.3.501.md +51 -0
- package/upgrades/side-effects/conformance-gate-autoinvoke.md +58 -0
- package/upgrades/side-effects/reap-notify-resume-queue.md +89 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationBatcher.d.ts","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAgB7F,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAkC;gBAE7C,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAI3C,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAI3C,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAON,OAAO,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CzD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3B,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCxD,YAAY,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAOnD,QAAQ,IAAI,YAAY;IAWxB;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAYzC,SAAS,IAAI,OAAO;IAIpB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM;IA4BrE,YAAY,IAAI,OAAO;IAkBvB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAiBV,UAAU;YAaV,UAAU;CAiBzB"}
|
|
1
|
+
{"version":3,"file":"NotificationBatcher.d.ts","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAgB7F,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAkC;gBAE7C,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAI3C,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAI3C,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAON,OAAO,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CzD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3B,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCxD,YAAY,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAOnD,QAAQ,IAAI,YAAY;IAWxB;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAYzC,SAAS,IAAI,OAAO;IAIpB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM;IA4BrE;;;;;OAKG;IACH,eAAe,CAAC,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI;IAmB1D;;;OAGG;IACH,oBAAoB,CAAC,KAAK,GAAE,MAAmB,GAAG,MAAM;IAOxD,YAAY,IAAI,OAAO;IAkBvB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAiBV,UAAU;YAaV,UAAU;CAiBzB"}
|
|
@@ -187,6 +187,42 @@ export class NotificationBatcher {
|
|
|
187
187
|
}
|
|
188
188
|
return lines.join('\n').trimEnd();
|
|
189
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Epoch ms when the CURRENT quiet-hours window ends, or null when quiet
|
|
192
|
+
* hours are disabled / not currently active. The single quiet-hours
|
|
193
|
+
* definition shared with the reap-notice release-hold computation
|
|
194
|
+
* (reap-notify spec R1.5) — one clock, not two.
|
|
195
|
+
*/
|
|
196
|
+
quietHoursEndAt(nowMs = Date.now()) {
|
|
197
|
+
if (!this.config.quietHours?.enabled)
|
|
198
|
+
return null;
|
|
199
|
+
const now = new Date(nowMs);
|
|
200
|
+
const currentMinutes = now.getHours() * 60 + now.getMinutes();
|
|
201
|
+
const [startH, startM] = this.config.quietHours.start.split(':').map(Number);
|
|
202
|
+
const [endH, endM] = this.config.quietHours.end.split(':').map(Number);
|
|
203
|
+
const startMinutes = startH * 60 + startM;
|
|
204
|
+
const endMinutes = endH * 60 + endM;
|
|
205
|
+
const inWindow = startMinutes > endMinutes
|
|
206
|
+
? currentMinutes >= startMinutes || currentMinutes < endMinutes
|
|
207
|
+
: currentMinutes >= startMinutes && currentMinutes < endMinutes;
|
|
208
|
+
if (!inWindow)
|
|
209
|
+
return null;
|
|
210
|
+
const end = new Date(nowMs);
|
|
211
|
+
end.setHours(endH, endM, 0, 0);
|
|
212
|
+
if (end.getTime() <= nowMs)
|
|
213
|
+
end.setDate(end.getDate() + 1);
|
|
214
|
+
return end.getTime();
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Epoch ms of the next SUMMARY-window flush (≤ one interval out). Used as
|
|
218
|
+
* the SUMMARY-tier release hold for durable reap notices (R1.5).
|
|
219
|
+
*/
|
|
220
|
+
nextSummaryReleaseAt(nowMs = Date.now()) {
|
|
221
|
+
const intervalMs = this.config.summaryIntervalMinutes * 60_000;
|
|
222
|
+
const last = this.lastSummaryFlush?.getTime() ?? nowMs;
|
|
223
|
+
const next = last + intervalMs;
|
|
224
|
+
return next > nowMs ? next : nowMs + intervalMs;
|
|
225
|
+
}
|
|
190
226
|
isQuietHours() {
|
|
191
227
|
if (!this.config.quietHours?.enabled)
|
|
192
228
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationBatcher.js","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NotificationBatcher.js","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
* not opinion-ate on what counts as a legal state transition; it just
|
|
27
27
|
* persists what its caller writes.
|
|
28
28
|
*/
|
|
29
|
+
import type { Database as BetterSqliteDatabase } from 'better-sqlite3';
|
|
29
30
|
export type DeliveryState = 'queued' | 'claimed' | 'delivered-recovered' | 'delivered-tone-gated' | 'delivered-ambiguous' | 'escalated' | 'dead-letter';
|
|
30
31
|
export interface PendingRelayRow {
|
|
31
32
|
delivery_id: string;
|
|
@@ -56,12 +57,19 @@ export interface EnqueueInput {
|
|
|
56
57
|
text_hash: string;
|
|
57
58
|
text: Buffer | string;
|
|
58
59
|
format?: string | null;
|
|
59
|
-
http_code
|
|
60
|
+
http_code?: number | null;
|
|
60
61
|
error_body?: string | null;
|
|
61
|
-
attempted_port
|
|
62
|
+
attempted_port?: number | null;
|
|
62
63
|
attempted_at?: string;
|
|
63
64
|
truncated?: boolean;
|
|
64
65
|
message_metadata?: string | null;
|
|
66
|
+
/**
|
|
67
|
+
* Release hold (reap-notify spec R1.3): a row enqueued with a future
|
|
68
|
+
* `next_attempt_at` is not claimable until that instant. The hold rides
|
|
69
|
+
* the EXISTING column — the claim queries already honor it, so a
|
|
70
|
+
* rolled-back binary keeps honoring holds. No schema change.
|
|
71
|
+
*/
|
|
72
|
+
next_attempt_at?: string | null;
|
|
65
73
|
}
|
|
66
74
|
/**
|
|
67
75
|
* Resolve the SQLite path. `stateDir` is the agent's `.instar/` directory.
|
|
@@ -119,31 +127,82 @@ export declare class PendingRelayStore {
|
|
|
119
127
|
* or before `nowIso`. Sorted by `attempted_at` ascending so the
|
|
120
128
|
* sentinel can drain oldest-first within per-topic rate caps.
|
|
121
129
|
*
|
|
130
|
+
* Origin scoping (reap-notify spec R1.3): rows whose delivery_id carries
|
|
131
|
+
* the `reap-notify:` prefix belong to ReapNoticeDrain and are EXCLUDED
|
|
132
|
+
* here — the single-owner contract lives in the queries, not in drain
|
|
133
|
+
* etiquette. The complement is `selectClaimableReapNotices`. Both filters
|
|
134
|
+
* are index-compatible range predicates on the PK.
|
|
135
|
+
*
|
|
122
136
|
* The query is bounded at `limit` to prevent a runaway tick scan.
|
|
123
137
|
* The sentinel handles its own batching above this layer.
|
|
124
138
|
*/
|
|
125
139
|
selectClaimable(nowIso: string, limit?: number): PendingRelayRow[];
|
|
140
|
+
/**
|
|
141
|
+
* ReapNoticeDrain selector (reap-notify spec R1.3) — the complement of
|
|
142
|
+
* `selectClaimable`: due rows INSIDE the `reap-notify:` PK range only.
|
|
143
|
+
* Range predicate (`>= lower AND < upper`) so SQLite serves it from the
|
|
144
|
+
* PK index — the 30s always-on drain must not be a latent table scan.
|
|
145
|
+
* Idle cost on an empty store is one indexed probe.
|
|
146
|
+
*/
|
|
147
|
+
selectClaimableReapNotices(nowIso: string, limit?: number): PendingRelayRow[];
|
|
148
|
+
/**
|
|
149
|
+
* Compare-and-swap claim (reap-notify spec R1.3): atomically move a row
|
|
150
|
+
* to `claimed`/`claimed_by` ONLY if it still looks exactly like the row
|
|
151
|
+
* the caller selected (same state + same claimed_by). Two drains racing
|
|
152
|
+
* the same row can never both succeed — the loser's UPDATE matches zero
|
|
153
|
+
* rows. Returns true when this caller won the claim.
|
|
154
|
+
*/
|
|
155
|
+
claimCas(deliveryId: string, newClaimedBy: string, expected: {
|
|
156
|
+
state: DeliveryState;
|
|
157
|
+
claimed_by: string | null;
|
|
158
|
+
}): boolean;
|
|
126
159
|
/**
|
|
127
160
|
* List the rows a restore-purge at `cutoffIso` WOULD delete — so the
|
|
128
161
|
* caller can make the loss traceable (per-row log + degradation report)
|
|
129
162
|
* before purging. A restore-purge deletes queued-undelivered outbound
|
|
130
163
|
* messages; until 2026-06-05 it was the delivery stack's only silent
|
|
131
164
|
* deletion path.
|
|
165
|
+
*
|
|
166
|
+
* Predicate matches `purgeStaleClaimable` exactly (the loud-loss logging
|
|
167
|
+
* must cover exactly what the purge deletes). `farFutureClamp` marks rows
|
|
168
|
+
* purged by the 7-day corruption clamp rather than ordinary staleness.
|
|
132
169
|
*/
|
|
133
|
-
listStaleClaimable(cutoffIso: string): Array<{
|
|
170
|
+
listStaleClaimable(cutoffIso: string, nowIso?: string): Array<{
|
|
134
171
|
delivery_id: string;
|
|
135
172
|
topic_id: number;
|
|
136
173
|
attempted_at: string;
|
|
137
174
|
text: string;
|
|
175
|
+
farFutureClamp: boolean;
|
|
138
176
|
}>;
|
|
139
177
|
/**
|
|
140
|
-
* Layer 3 restore-purge — drops queued/claimed rows
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
178
|
+
* Layer 3 restore-purge — drops queued/claimed rows that are genuinely
|
|
179
|
+
* stale. Called once at sentinel startup (DFS spec §3h, semantics updated
|
|
180
|
+
* by reap-notify spec R1.6).
|
|
181
|
+
*
|
|
182
|
+
* Staleness cutoff is `max(attempted_at, next_attempt_at)`: a row HELD
|
|
183
|
+
* for future release (its `next_attempt_at` is still ahead of the cutoff)
|
|
184
|
+
* is NOT stale — purging it was the mechanism behind the documented
|
|
185
|
+
* 2026-06-05 silent-deletion incident (a quiet-hours-held notice crossing
|
|
186
|
+
* a routine restart was eaten at boot). In SQL: a row is purged only when
|
|
187
|
+
* `attempted_at < cutoff` AND its `next_attempt_at` is null, also past,
|
|
188
|
+
* or beyond the 7-day corruption clamp (`farFutureClampIso`) — no
|
|
189
|
+
* legitimate writer holds that long; without the clamp a malformed row
|
|
190
|
+
* would live forever.
|
|
191
|
+
*
|
|
192
|
+
* Returns the number of rows deleted so the caller can emit a one-line
|
|
193
|
+
* restore log.
|
|
194
|
+
*/
|
|
195
|
+
purgeStaleClaimable(cutoffIso: string, nowIso?: string): number;
|
|
196
|
+
/**
|
|
197
|
+
* Bounded cleanup for the reap-notify lane (P19 — the always-on drain must
|
|
198
|
+
* not grow the store unboundedly when DFS's retention pass is off): deletes
|
|
199
|
+
* TERMINAL-state rows inside the reap-notify PK range older than `beforeIso`.
|
|
200
|
+
* Queued/claimed rows are never touched.
|
|
144
201
|
*/
|
|
145
|
-
|
|
202
|
+
purgeTerminalReapNotices(beforeIso: string): number;
|
|
146
203
|
pathOnDisk(): string;
|
|
204
|
+
/** Direct DB handle for contract tests only. */
|
|
205
|
+
rawDb(): BetterSqliteDatabase;
|
|
147
206
|
close(): void;
|
|
148
207
|
}
|
|
149
208
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-relay-store.d.ts","sourceRoot":"","sources":["../../src/messaging/pending-relay-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"pending-relay-store.d.ts","sourceRoot":"","sources":["../../src/messaging/pending-relay-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,14 @@ import fs from 'node:fs';
|
|
|
32
32
|
import path from 'node:path';
|
|
33
33
|
import { execFileSync } from 'node:child_process';
|
|
34
34
|
import { DegradationReporter } from '../monitoring/DegradationReporter.js';
|
|
35
|
+
import { REAP_NOTIFY_DELIVERY_PREFIX, REAP_NOTIFY_DELIVERY_PREFIX_UPPER, } from './reap-notice-delivery-id.js';
|
|
36
|
+
/**
|
|
37
|
+
* Anomaly clamp for the restore-purge hold exemption (reap-notify spec R1.6):
|
|
38
|
+
* a `next_attempt_at` more than this far in the future is treated as corrupt
|
|
39
|
+
* at restore-purge time (purged + logged) — no legitimate writer holds that
|
|
40
|
+
* long, and without the clamp a malformed row would live forever.
|
|
41
|
+
*/
|
|
42
|
+
const FAR_FUTURE_HOLD_CLAMP_MS = 7 * 24 * 60 * 60 * 1000;
|
|
35
43
|
// ── Schema ────────────────────────────────────────────────────────────
|
|
36
44
|
const SCHEMA = [
|
|
37
45
|
`CREATE TABLE IF NOT EXISTS entries (
|
|
@@ -164,7 +172,7 @@ export class PendingRelayStore {
|
|
|
164
172
|
) VALUES (
|
|
165
173
|
@delivery_id, @topic_id, @text_hash, @text, @format,
|
|
166
174
|
@http_code, @error_body, @attempted_port,
|
|
167
|
-
@attempted_at, 1,
|
|
175
|
+
@attempted_at, 1, @next_attempt_at,
|
|
168
176
|
'queued', NULL, @status_history, @truncated, @message_metadata
|
|
169
177
|
)`);
|
|
170
178
|
const result = stmt.run({
|
|
@@ -173,10 +181,11 @@ export class PendingRelayStore {
|
|
|
173
181
|
text_hash: input.text_hash,
|
|
174
182
|
text,
|
|
175
183
|
format: input.format ?? null,
|
|
176
|
-
http_code: input.http_code,
|
|
184
|
+
http_code: input.http_code ?? null,
|
|
177
185
|
error_body: input.error_body ?? null,
|
|
178
|
-
attempted_port: input.attempted_port,
|
|
186
|
+
attempted_port: input.attempted_port ?? null,
|
|
179
187
|
attempted_at: attemptedAt,
|
|
188
|
+
next_attempt_at: input.next_attempt_at ?? null,
|
|
180
189
|
status_history: initialHistory,
|
|
181
190
|
truncated: input.truncated ? 1 : 0,
|
|
182
191
|
message_metadata: input.message_metadata ?? null,
|
|
@@ -255,6 +264,12 @@ export class PendingRelayStore {
|
|
|
255
264
|
* or before `nowIso`. Sorted by `attempted_at` ascending so the
|
|
256
265
|
* sentinel can drain oldest-first within per-topic rate caps.
|
|
257
266
|
*
|
|
267
|
+
* Origin scoping (reap-notify spec R1.3): rows whose delivery_id carries
|
|
268
|
+
* the `reap-notify:` prefix belong to ReapNoticeDrain and are EXCLUDED
|
|
269
|
+
* here — the single-owner contract lives in the queries, not in drain
|
|
270
|
+
* etiquette. The complement is `selectClaimableReapNotices`. Both filters
|
|
271
|
+
* are index-compatible range predicates on the PK.
|
|
272
|
+
*
|
|
258
273
|
* The query is bounded at `limit` to prevent a runaway tick scan.
|
|
259
274
|
* The sentinel handles its own batching above this layer.
|
|
260
275
|
*/
|
|
@@ -262,9 +277,82 @@ export class PendingRelayStore {
|
|
|
262
277
|
const stmt = this.db.prepare(`SELECT * FROM entries
|
|
263
278
|
WHERE state IN ('queued', 'claimed')
|
|
264
279
|
AND (next_attempt_at IS NULL OR next_attempt_at <= @now)
|
|
280
|
+
AND NOT (delivery_id >= @prefixLower AND delivery_id < @prefixUpper)
|
|
265
281
|
ORDER BY attempted_at ASC
|
|
266
282
|
LIMIT @limit`);
|
|
267
|
-
return stmt.all({
|
|
283
|
+
return stmt.all({
|
|
284
|
+
now: nowIso,
|
|
285
|
+
limit,
|
|
286
|
+
prefixLower: REAP_NOTIFY_DELIVERY_PREFIX,
|
|
287
|
+
prefixUpper: REAP_NOTIFY_DELIVERY_PREFIX_UPPER,
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* ReapNoticeDrain selector (reap-notify spec R1.3) — the complement of
|
|
292
|
+
* `selectClaimable`: due rows INSIDE the `reap-notify:` PK range only.
|
|
293
|
+
* Range predicate (`>= lower AND < upper`) so SQLite serves it from the
|
|
294
|
+
* PK index — the 30s always-on drain must not be a latent table scan.
|
|
295
|
+
* Idle cost on an empty store is one indexed probe.
|
|
296
|
+
*/
|
|
297
|
+
selectClaimableReapNotices(nowIso, limit = 100) {
|
|
298
|
+
const stmt = this.db.prepare(`SELECT * FROM entries
|
|
299
|
+
WHERE delivery_id >= @prefixLower AND delivery_id < @prefixUpper
|
|
300
|
+
AND state IN ('queued', 'claimed')
|
|
301
|
+
AND (next_attempt_at IS NULL OR next_attempt_at <= @now)
|
|
302
|
+
ORDER BY attempted_at ASC
|
|
303
|
+
LIMIT @limit`);
|
|
304
|
+
return stmt.all({
|
|
305
|
+
now: nowIso,
|
|
306
|
+
limit,
|
|
307
|
+
prefixLower: REAP_NOTIFY_DELIVERY_PREFIX,
|
|
308
|
+
prefixUpper: REAP_NOTIFY_DELIVERY_PREFIX_UPPER,
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Compare-and-swap claim (reap-notify spec R1.3): atomically move a row
|
|
313
|
+
* to `claimed`/`claimed_by` ONLY if it still looks exactly like the row
|
|
314
|
+
* the caller selected (same state + same claimed_by). Two drains racing
|
|
315
|
+
* the same row can never both succeed — the loser's UPDATE matches zero
|
|
316
|
+
* rows. Returns true when this caller won the claim.
|
|
317
|
+
*/
|
|
318
|
+
claimCas(deliveryId, newClaimedBy, expected) {
|
|
319
|
+
const tx = this.db.transaction(() => {
|
|
320
|
+
const result = this.db
|
|
321
|
+
.prepare(`UPDATE entries
|
|
322
|
+
SET state = 'claimed', claimed_by = @newClaimedBy
|
|
323
|
+
WHERE delivery_id = @delivery_id
|
|
324
|
+
AND state = @expectedState
|
|
325
|
+
AND claimed_by IS @expectedClaimedBy`)
|
|
326
|
+
.run({
|
|
327
|
+
delivery_id: deliveryId,
|
|
328
|
+
newClaimedBy,
|
|
329
|
+
expectedState: expected.state,
|
|
330
|
+
expectedClaimedBy: expected.claimed_by,
|
|
331
|
+
});
|
|
332
|
+
if (result.changes !== 1)
|
|
333
|
+
return false;
|
|
334
|
+
// Append the status-history row in the same transaction (parity with
|
|
335
|
+
// `transition()` so a crash mid-claim cannot tear the history).
|
|
336
|
+
const current = this.db
|
|
337
|
+
.prepare('SELECT status_history FROM entries WHERE delivery_id = ?')
|
|
338
|
+
.get(deliveryId);
|
|
339
|
+
if (current) {
|
|
340
|
+
let history;
|
|
341
|
+
try {
|
|
342
|
+
const parsed = JSON.parse(current.status_history);
|
|
343
|
+
history = Array.isArray(parsed) ? parsed : [];
|
|
344
|
+
}
|
|
345
|
+
catch {
|
|
346
|
+
history = [];
|
|
347
|
+
}
|
|
348
|
+
history.push({ state: 'claimed', at: new Date().toISOString() });
|
|
349
|
+
this.db
|
|
350
|
+
.prepare('UPDATE entries SET status_history = @h WHERE delivery_id = @id')
|
|
351
|
+
.run({ h: JSON.stringify(history), id: deliveryId });
|
|
352
|
+
}
|
|
353
|
+
return true;
|
|
354
|
+
});
|
|
355
|
+
return tx();
|
|
268
356
|
}
|
|
269
357
|
/**
|
|
270
358
|
* List the rows a restore-purge at `cutoffIso` WOULD delete — so the
|
|
@@ -272,37 +360,80 @@ export class PendingRelayStore {
|
|
|
272
360
|
* before purging. A restore-purge deletes queued-undelivered outbound
|
|
273
361
|
* messages; until 2026-06-05 it was the delivery stack's only silent
|
|
274
362
|
* deletion path.
|
|
363
|
+
*
|
|
364
|
+
* Predicate matches `purgeStaleClaimable` exactly (the loud-loss logging
|
|
365
|
+
* must cover exactly what the purge deletes). `farFutureClamp` marks rows
|
|
366
|
+
* purged by the 7-day corruption clamp rather than ordinary staleness.
|
|
275
367
|
*/
|
|
276
|
-
listStaleClaimable(cutoffIso) {
|
|
277
|
-
const
|
|
368
|
+
listStaleClaimable(cutoffIso, nowIso = new Date().toISOString()) {
|
|
369
|
+
const farFuture = farFutureClampIso(nowIso);
|
|
370
|
+
const stmt = this.db.prepare(`SELECT delivery_id, topic_id, attempted_at, next_attempt_at, text
|
|
278
371
|
FROM entries
|
|
279
372
|
WHERE state IN ('queued', 'claimed')
|
|
280
373
|
AND attempted_at < @cutoff
|
|
374
|
+
AND (next_attempt_at IS NULL OR next_attempt_at < @cutoff OR next_attempt_at > @farFuture)
|
|
281
375
|
ORDER BY attempted_at ASC`);
|
|
282
|
-
const rows = stmt.all({ cutoff: cutoffIso });
|
|
376
|
+
const rows = stmt.all({ cutoff: cutoffIso, farFuture });
|
|
283
377
|
return rows.map((r) => ({
|
|
284
378
|
delivery_id: r.delivery_id,
|
|
285
379
|
topic_id: r.topic_id,
|
|
286
380
|
attempted_at: r.attempted_at,
|
|
287
381
|
text: Buffer.isBuffer(r.text) ? r.text.toString('utf-8') : String(r.text ?? ''),
|
|
382
|
+
farFutureClamp: r.next_attempt_at !== null && r.next_attempt_at > farFuture,
|
|
288
383
|
}));
|
|
289
384
|
}
|
|
290
385
|
/**
|
|
291
|
-
* Layer 3 restore-purge — drops queued/claimed rows
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
386
|
+
* Layer 3 restore-purge — drops queued/claimed rows that are genuinely
|
|
387
|
+
* stale. Called once at sentinel startup (DFS spec §3h, semantics updated
|
|
388
|
+
* by reap-notify spec R1.6).
|
|
389
|
+
*
|
|
390
|
+
* Staleness cutoff is `max(attempted_at, next_attempt_at)`: a row HELD
|
|
391
|
+
* for future release (its `next_attempt_at` is still ahead of the cutoff)
|
|
392
|
+
* is NOT stale — purging it was the mechanism behind the documented
|
|
393
|
+
* 2026-06-05 silent-deletion incident (a quiet-hours-held notice crossing
|
|
394
|
+
* a routine restart was eaten at boot). In SQL: a row is purged only when
|
|
395
|
+
* `attempted_at < cutoff` AND its `next_attempt_at` is null, also past,
|
|
396
|
+
* or beyond the 7-day corruption clamp (`farFutureClampIso`) — no
|
|
397
|
+
* legitimate writer holds that long; without the clamp a malformed row
|
|
398
|
+
* would live forever.
|
|
399
|
+
*
|
|
400
|
+
* Returns the number of rows deleted so the caller can emit a one-line
|
|
401
|
+
* restore log.
|
|
295
402
|
*/
|
|
296
|
-
purgeStaleClaimable(cutoffIso) {
|
|
403
|
+
purgeStaleClaimable(cutoffIso, nowIso = new Date().toISOString()) {
|
|
404
|
+
const farFuture = farFutureClampIso(nowIso);
|
|
297
405
|
const stmt = this.db.prepare(`DELETE FROM entries
|
|
298
406
|
WHERE state IN ('queued', 'claimed')
|
|
299
|
-
AND attempted_at < @cutoff
|
|
300
|
-
|
|
407
|
+
AND attempted_at < @cutoff
|
|
408
|
+
AND (next_attempt_at IS NULL OR next_attempt_at < @cutoff OR next_attempt_at > @farFuture)`);
|
|
409
|
+
const result = stmt.run({ cutoff: cutoffIso, farFuture });
|
|
410
|
+
return result.changes ?? 0;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Bounded cleanup for the reap-notify lane (P19 — the always-on drain must
|
|
414
|
+
* not grow the store unboundedly when DFS's retention pass is off): deletes
|
|
415
|
+
* TERMINAL-state rows inside the reap-notify PK range older than `beforeIso`.
|
|
416
|
+
* Queued/claimed rows are never touched.
|
|
417
|
+
*/
|
|
418
|
+
purgeTerminalReapNotices(beforeIso) {
|
|
419
|
+
const stmt = this.db.prepare(`DELETE FROM entries
|
|
420
|
+
WHERE delivery_id >= @prefixLower AND delivery_id < @prefixUpper
|
|
421
|
+
AND state NOT IN ('queued', 'claimed')
|
|
422
|
+
AND attempted_at < @before`);
|
|
423
|
+
const result = stmt.run({
|
|
424
|
+
before: beforeIso,
|
|
425
|
+
prefixLower: REAP_NOTIFY_DELIVERY_PREFIX,
|
|
426
|
+
prefixUpper: REAP_NOTIFY_DELIVERY_PREFIX_UPPER,
|
|
427
|
+
});
|
|
301
428
|
return result.changes ?? 0;
|
|
302
429
|
}
|
|
303
430
|
pathOnDisk() {
|
|
304
431
|
return this.path;
|
|
305
432
|
}
|
|
433
|
+
/** Direct DB handle for contract tests only. */
|
|
434
|
+
rawDb() {
|
|
435
|
+
return this.db;
|
|
436
|
+
}
|
|
306
437
|
close() {
|
|
307
438
|
try {
|
|
308
439
|
this.db.close();
|
|
@@ -312,6 +443,12 @@ export class PendingRelayStore {
|
|
|
312
443
|
}
|
|
313
444
|
}
|
|
314
445
|
}
|
|
446
|
+
/** ISO instant `FAR_FUTURE_HOLD_CLAMP_MS` past `nowIso` (R1.6 anomaly clamp). */
|
|
447
|
+
function farFutureClampIso(nowIso) {
|
|
448
|
+
const now = Date.parse(nowIso);
|
|
449
|
+
const base = Number.isNaN(now) ? Date.now() : now;
|
|
450
|
+
return new Date(base + FAR_FUTURE_HOLD_CLAMP_MS).toISOString();
|
|
451
|
+
}
|
|
315
452
|
// ── Boot self-check ───────────────────────────────────────────────────
|
|
316
453
|
/**
|
|
317
454
|
* Verify the SQLite runtime substrate is usable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-relay-store.js","sourceRoot":"","sources":["../../src/messaging/pending-relay-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pending-relay-store.js","sourceRoot":"","sources":["../../src/messaging/pending-relay-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reap-notice delivery-id prefix — the ONE place the `reap-notify:` origin
|
|
3
|
+
* tag on PendingRelayStore `delivery_id` primary keys is built and parsed.
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/reap-notify-per-topic-and-midwork-resume-queue.md R1.3.
|
|
6
|
+
*
|
|
7
|
+
* The origin tag rides the delivery_id PK as a prefix (`reap-notify:<noticeId>`)
|
|
8
|
+
* — zero DDL, PK-dedupe for free. Both drains scope their claim QUERIES on it:
|
|
9
|
+
* ReapNoticeDrain claims rows inside the prefix range, DeliveryFailureSentinel
|
|
10
|
+
* claims rows outside it. The range bounds below are written so SQLite can
|
|
11
|
+
* serve the filter from the PK index (`delivery_id >= lower AND delivery_id <
|
|
12
|
+
* upper`), never a bare LIKE.
|
|
13
|
+
*
|
|
14
|
+
* The tag is a routing label inside the trusted local process boundary, not an
|
|
15
|
+
* auth boundary — anything that can write this store can already read the bot
|
|
16
|
+
* token.
|
|
17
|
+
*
|
|
18
|
+
* No caller hand-assembles the string: ReapNotifier builds ids here, both
|
|
19
|
+
* drains take the range bounds from here, and the contract tests assert every
|
|
20
|
+
* store path preserves prefix semantics.
|
|
21
|
+
*/
|
|
22
|
+
export declare const REAP_NOTIFY_DELIVERY_PREFIX = "reap-notify:";
|
|
23
|
+
/**
|
|
24
|
+
* Exclusive upper bound of the prefix's PK range. ';' is ':' + 1 in ASCII, so
|
|
25
|
+
* `delivery_id >= 'reap-notify:' AND delivery_id < 'reap-notify;'` matches
|
|
26
|
+
* exactly the ids carrying the prefix — an index-compatible range predicate.
|
|
27
|
+
*/
|
|
28
|
+
export declare const REAP_NOTIFY_DELIVERY_PREFIX_UPPER = "reap-notify;";
|
|
29
|
+
/** Build a reap-notice delivery id. Throws on an id that would break the
|
|
30
|
+
* prefix contract (empty, or containing characters outside the clamp). */
|
|
31
|
+
export declare function buildReapNotifyDeliveryId(noticeId: string): string;
|
|
32
|
+
/** True when a delivery id carries the reap-notify origin prefix. */
|
|
33
|
+
export declare function isReapNotifyDeliveryId(deliveryId: string): boolean;
|
|
34
|
+
/** Extract the noticeId from a reap-notice delivery id; null when the id is
|
|
35
|
+
* not in the prefix range (or the embedded id violates the clamp). */
|
|
36
|
+
export declare function parseReapNotifyDeliveryId(deliveryId: string): string | null;
|
|
37
|
+
//# sourceMappingURL=reap-notice-delivery-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reap-notice-delivery-id.d.ts","sourceRoot":"","sources":["../../src/messaging/reap-notice-delivery-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,iBAAiB,CAAC;AAMhE;2EAC2E;AAC3E,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAIlE;AAED;uEACuE;AACvE,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reap-notice delivery-id prefix — the ONE place the `reap-notify:` origin
|
|
3
|
+
* tag on PendingRelayStore `delivery_id` primary keys is built and parsed.
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/reap-notify-per-topic-and-midwork-resume-queue.md R1.3.
|
|
6
|
+
*
|
|
7
|
+
* The origin tag rides the delivery_id PK as a prefix (`reap-notify:<noticeId>`)
|
|
8
|
+
* — zero DDL, PK-dedupe for free. Both drains scope their claim QUERIES on it:
|
|
9
|
+
* ReapNoticeDrain claims rows inside the prefix range, DeliveryFailureSentinel
|
|
10
|
+
* claims rows outside it. The range bounds below are written so SQLite can
|
|
11
|
+
* serve the filter from the PK index (`delivery_id >= lower AND delivery_id <
|
|
12
|
+
* upper`), never a bare LIKE.
|
|
13
|
+
*
|
|
14
|
+
* The tag is a routing label inside the trusted local process boundary, not an
|
|
15
|
+
* auth boundary — anything that can write this store can already read the bot
|
|
16
|
+
* token.
|
|
17
|
+
*
|
|
18
|
+
* No caller hand-assembles the string: ReapNotifier builds ids here, both
|
|
19
|
+
* drains take the range bounds from here, and the contract tests assert every
|
|
20
|
+
* store path preserves prefix semantics.
|
|
21
|
+
*/
|
|
22
|
+
export const REAP_NOTIFY_DELIVERY_PREFIX = 'reap-notify:';
|
|
23
|
+
/**
|
|
24
|
+
* Exclusive upper bound of the prefix's PK range. ';' is ':' + 1 in ASCII, so
|
|
25
|
+
* `delivery_id >= 'reap-notify:' AND delivery_id < 'reap-notify;'` matches
|
|
26
|
+
* exactly the ids carrying the prefix — an index-compatible range predicate.
|
|
27
|
+
*/
|
|
28
|
+
export const REAP_NOTIFY_DELIVERY_PREFIX_UPPER = 'reap-notify;';
|
|
29
|
+
/** Charset clamp for notice ids embedded in the PK — keeps ids unambiguous
|
|
30
|
+
* and the range predicate airtight (no separator collisions). */
|
|
31
|
+
const NOTICE_ID_RE = /^[A-Za-z0-9._-]+$/;
|
|
32
|
+
/** Build a reap-notice delivery id. Throws on an id that would break the
|
|
33
|
+
* prefix contract (empty, or containing characters outside the clamp). */
|
|
34
|
+
export function buildReapNotifyDeliveryId(noticeId) {
|
|
35
|
+
if (!NOTICE_ID_RE.test(noticeId)) {
|
|
36
|
+
throw new Error(`reap-notice-delivery-id: invalid noticeId ${JSON.stringify(noticeId)} — must match ${NOTICE_ID_RE}`);
|
|
37
|
+
}
|
|
38
|
+
return `${REAP_NOTIFY_DELIVERY_PREFIX}${noticeId}`;
|
|
39
|
+
}
|
|
40
|
+
/** True when a delivery id carries the reap-notify origin prefix. */
|
|
41
|
+
export function isReapNotifyDeliveryId(deliveryId) {
|
|
42
|
+
return (deliveryId >= REAP_NOTIFY_DELIVERY_PREFIX && deliveryId < REAP_NOTIFY_DELIVERY_PREFIX_UPPER);
|
|
43
|
+
}
|
|
44
|
+
/** Extract the noticeId from a reap-notice delivery id; null when the id is
|
|
45
|
+
* not in the prefix range (or the embedded id violates the clamp). */
|
|
46
|
+
export function parseReapNotifyDeliveryId(deliveryId) {
|
|
47
|
+
if (!isReapNotifyDeliveryId(deliveryId))
|
|
48
|
+
return null;
|
|
49
|
+
const noticeId = deliveryId.slice(REAP_NOTIFY_DELIVERY_PREFIX.length);
|
|
50
|
+
return NOTICE_ID_RE.test(noticeId) ? noticeId : null;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=reap-notice-delivery-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reap-notice-delivery-id.js","sourceRoot":"","sources":["../../src/messaging/reap-notice-delivery-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,cAAc,CAAC;AAEhE;kEACkE;AAClE,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC;2EAC2E;AAC3E,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,YAAY,EAAE,CACrG,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,2BAA2B,GAAG,QAAQ,EAAE,CAAC;AACrD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO,CACL,UAAU,IAAI,2BAA2B,IAAI,UAAU,GAAG,iCAAiC,CAC5F,CAAC;AACJ,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,yBAAyB,CAAC,UAAkB;IAC1D,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACtE,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC"}
|
|
@@ -133,6 +133,12 @@ export declare class QuotaManager extends EventEmitter {
|
|
|
133
133
|
* when quota is healthy. Migration is a quota-saving measure — if
|
|
134
134
|
* quota is fine, migration concerns are irrelevant.
|
|
135
135
|
*/
|
|
136
|
+
/** True while a quota migration is mid-flight (reap-notify R2.4: the
|
|
137
|
+
* resume-queue drainer never spawns during a migration — stricter than
|
|
138
|
+
* canSpawnSession, which permits spawns mid-migration absent pressure).
|
|
139
|
+
* Deliberately NO catch here: a probe error propagates to the drainer's
|
|
140
|
+
* gate, which resolves a throwing dep to the SAFE side (blocked). */
|
|
141
|
+
isMigrationInFlight(): boolean;
|
|
136
142
|
canSpawnSession(priority?: string): {
|
|
137
143
|
allowed: boolean;
|
|
138
144
|
reason: string;
|