@telora/daemon 0.21.144 → 0.21.146
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/build-info.json +2 -2
- package/dist/completion/settle-injection-sweep.d.ts +9 -7
- package/dist/completion/settle-injection-sweep.d.ts.map +1 -1
- package/dist/completion/settle-injection-sweep.js +17 -15
- package/dist/completion/settle-injection-sweep.js.map +1 -1
- package/dist/completion/state-cascade.js +1 -1
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/directive/close-loop-dispatcher.d.ts +35 -12
- package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
- package/dist/directive/close-loop-dispatcher.js +31 -11
- package/dist/directive/close-loop-dispatcher.js.map +1 -1
- package/package.json +1 -1
package/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commitSha": "
|
|
3
|
-
"builtAt": "2026-08-
|
|
2
|
+
"commitSha": "b3169e14d",
|
|
3
|
+
"builtAt": "2026-08-21T18:35:12.166Z",
|
|
4
4
|
"expectedMigrations": [
|
|
5
5
|
"20250829113330_create_org_nodes_table.sql",
|
|
6
6
|
"20250829113402_fix_function_security_search_path.sql",
|
|
@@ -16,11 +16,15 @@
|
|
|
16
16
|
* buildWritebackVerify, reused verbatim -- the FRT writeback is unrecoverable if
|
|
17
17
|
* reimplemented) when the DERIVED phase reaches winding_down, and writes NO focus
|
|
18
18
|
* stage: completion stays human-owned (the machine never writes focus.stage =
|
|
19
|
-
* 'done'). Idempotent + best-effort: planInjectionSweep
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* 'done'). Idempotent + best-effort: planInjectionSweep plans only injections in
|
|
20
|
+
* an API-verifiable status (proposed / in_progress / realized) and skips anything
|
|
21
|
+
* else -- already 'verified', 'rejected_alternative', or an unresolvable/missing
|
|
22
|
+
* status -- so a re-run once the tree is settled (or a response-shape change) is
|
|
23
|
+
* an empty-plan no-op rather than a stream of refused verify writes; every I/O
|
|
24
|
+
* failure holds (retries next settle) rather than throwing.
|
|
22
25
|
*/
|
|
23
26
|
import type { FocusDeliveryInfo } from '../types/index.js';
|
|
27
|
+
import type { SweepFailure } from '../directive/close-loop-dispatcher.js';
|
|
24
28
|
/** The per-injection snapshot the sweep reads (status + owning tree id). */
|
|
25
29
|
interface InjectionNodeSnapshot {
|
|
26
30
|
id: string;
|
|
@@ -37,10 +41,8 @@ export interface SettleSweepDeps {
|
|
|
37
41
|
export interface SettleSweepOutcome {
|
|
38
42
|
planSize: number;
|
|
39
43
|
verified: number;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
error: Error;
|
|
43
|
-
};
|
|
44
|
+
/** Per-entry verify failures; empty when every planned injection retired. */
|
|
45
|
+
failures: SweepFailure[];
|
|
44
46
|
}
|
|
45
47
|
/**
|
|
46
48
|
* Retire the focus's anchored injections whose anchoring delivery closed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settle-injection-sweep.d.ts","sourceRoot":"","sources":["../../src/completion/settle-injection-sweep.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"settle-injection-sweep.d.ts","sourceRoot":"","sources":["../../src/completion/settle-injection-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAM3D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAO3F,4EAA4E;AAC5E,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC9E,uEAAuE;IACvE,WAAW,EAAE,CACX,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3C,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAYD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/C,UAAU,EAAE,iBAAiB,EAAE,EAC/B,IAAI,GAAE,eAA6B,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAwD7B"}
|
|
@@ -16,9 +16,12 @@
|
|
|
16
16
|
* buildWritebackVerify, reused verbatim -- the FRT writeback is unrecoverable if
|
|
17
17
|
* reimplemented) when the DERIVED phase reaches winding_down, and writes NO focus
|
|
18
18
|
* stage: completion stays human-owned (the machine never writes focus.stage =
|
|
19
|
-
* 'done'). Idempotent + best-effort: planInjectionSweep
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* 'done'). Idempotent + best-effort: planInjectionSweep plans only injections in
|
|
20
|
+
* an API-verifiable status (proposed / in_progress / realized) and skips anything
|
|
21
|
+
* else -- already 'verified', 'rejected_alternative', or an unresolvable/missing
|
|
22
|
+
* status -- so a re-run once the tree is settled (or a response-shape change) is
|
|
23
|
+
* an empty-plan no-op rather than a stream of refused verify writes; every I/O
|
|
24
|
+
* failure holds (retries next settle) rather than throwing.
|
|
22
25
|
*/
|
|
23
26
|
import { getAnchoringDeliveries, planInjectionSweep, executeSweep, } from '../directive/close-loop-dispatcher.js';
|
|
24
27
|
import { buildWritebackVerify } from '../queries/verification.js';
|
|
@@ -40,7 +43,7 @@ const defaultDeps = {
|
|
|
40
43
|
export async function sweepAnchoredInjectionsOnSettle(focus, deliveries, deps = defaultDeps) {
|
|
41
44
|
const anchored = getAnchoringDeliveries(deliveries);
|
|
42
45
|
if (anchored.length === 0)
|
|
43
|
-
return { planSize: 0, verified: 0 };
|
|
46
|
+
return { planSize: 0, verified: 0, failures: [] };
|
|
44
47
|
let snapshot;
|
|
45
48
|
try {
|
|
46
49
|
snapshot = await deps.fetchInjectionSnapshot(focus.focus_id);
|
|
@@ -48,7 +51,7 @@ export async function sweepAnchoredInjectionsOnSettle(focus, deliveries, deps =
|
|
|
48
51
|
catch (err) {
|
|
49
52
|
log.warn(`[settle-sweep] failed to fetch injections for focus ${focus.focus_id.slice(0, 8)}: ` +
|
|
50
53
|
`${err.message} -- holding; next settle retries`);
|
|
51
|
-
return { planSize: 0, verified: 0 };
|
|
54
|
+
return { planSize: 0, verified: 0, failures: [] };
|
|
52
55
|
}
|
|
53
56
|
const statusById = new Map();
|
|
54
57
|
const treeIdByInjection = new Map();
|
|
@@ -61,28 +64,27 @@ export async function sweepAnchoredInjectionsOnSettle(focus, deliveries, deps =
|
|
|
61
64
|
}
|
|
62
65
|
const plan = planInjectionSweep(anchored, statusById);
|
|
63
66
|
if (plan.length === 0)
|
|
64
|
-
return { planSize: 0, verified: 0 }; //
|
|
67
|
+
return { planSize: 0, verified: 0, failures: [] }; // nothing verifiable -- no-op
|
|
65
68
|
let outcome;
|
|
66
69
|
try {
|
|
67
70
|
outcome = await executeSweep(plan, deps.buildVerify(treeIdByInjection));
|
|
68
71
|
}
|
|
69
72
|
catch (err) {
|
|
70
73
|
log.warn(`[settle-sweep] sweep threw for focus ${focus.focus_id.slice(0, 8)}: ${err.message}`);
|
|
71
|
-
return { planSize: plan.length, verified: 0 };
|
|
74
|
+
return { planSize: plan.length, verified: 0, failures: [] };
|
|
72
75
|
}
|
|
73
76
|
if (outcome.verified.length > 0) {
|
|
74
77
|
log.info(`[settle-sweep] Focus "${focus.focus_name}" reached winding_down -- retired ` +
|
|
75
78
|
`${outcome.verified.length}/${plan.length} anchored injection(s) at focus scope ` +
|
|
76
79
|
`(no stage write; completion stays human-owned)`);
|
|
77
80
|
}
|
|
78
|
-
if (!outcome.ok
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
`${outcome.verified.length}/${plan.length} retired
|
|
81
|
+
if (!outcome.ok) {
|
|
82
|
+
const first = outcome.failures[0];
|
|
83
|
+
log.warn(`[settle-sweep] Focus "${focus.focus_name}" sweep: ` +
|
|
84
|
+
`${outcome.verified.length}/${plan.length} retired, ${outcome.failures.length} failed ` +
|
|
85
|
+
`(first: ${first ? `${first.injectionId.slice(0, 8)} -- ${first.error.message}` : 'n/a'}); ` +
|
|
86
|
+
`next settle retries the rest`);
|
|
82
87
|
}
|
|
83
|
-
|
|
84
|
-
if (outcome.failedAt)
|
|
85
|
-
result.failedAt = outcome.failedAt;
|
|
86
|
-
return result;
|
|
88
|
+
return { planSize: plan.length, verified: outcome.verified.length, failures: outcome.failures };
|
|
87
89
|
}
|
|
88
90
|
//# sourceMappingURL=settle-injection-sweep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settle-injection-sweep.js","sourceRoot":"","sources":["../../src/completion/settle-injection-sweep.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"settle-injection-sweep.js","sourceRoot":"","sources":["../../src/completion/settle-injection-sweep.ts"],"names":[],"mappings":"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"}
|
|
@@ -215,7 +215,7 @@ export async function runCascadeChecks(config) {
|
|
|
215
215
|
if (phase === 'winding_down') {
|
|
216
216
|
if (!settledSweptFocuses.has(focus.focus_id)) {
|
|
217
217
|
const sweep = await sweepAnchoredInjectionsOnSettle({ focus_id: focus.focus_id, focus_name: focus.focus_name }, deliveries);
|
|
218
|
-
if (
|
|
218
|
+
if (sweep.failures.length === 0)
|
|
219
219
|
settledSweptFocuses.add(focus.focus_id);
|
|
220
220
|
}
|
|
221
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-cascade.js","sourceRoot":"","sources":["../../src/completion/state-cascade.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state-cascade.js","sourceRoot":"","sources":["../../src/completion/state-cascade.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,19 @@ import type { FocusDeliveryInfo } from '../types/index.js';
|
|
|
24
24
|
* reality_tree_nodes row.
|
|
25
25
|
*/
|
|
26
26
|
export declare function getAnchoringDeliveries(deliveries: FocusDeliveryInfo[]): FocusDeliveryInfo[];
|
|
27
|
+
/**
|
|
28
|
+
* Injection statuses the API will accept for a verify call -- and therefore the
|
|
29
|
+
* ONLY statuses the sweep plans. The API refuses any other value ("Cannot verify
|
|
30
|
+
* injection in status 'X'. Must be proposed, in_progress, or realized.").
|
|
31
|
+
*
|
|
32
|
+
* The check is a POSITIVE inclusion, not "not verified". This is deliberate and
|
|
33
|
+
* load-bearing: a status the sweep cannot resolve -- 'verified', the terminal
|
|
34
|
+
* 'rejected_alternative', or a missing/renamed field that reads as null/undefined
|
|
35
|
+
* -- must SKIP, so the sweep degrades to an empty-plan no-op rather than an
|
|
36
|
+
* infinite loop of refused verify writes. An unresolvable status defaulting to
|
|
37
|
+
* "verify it" is the exact defect this focus exists to fix.
|
|
38
|
+
*/
|
|
39
|
+
export declare const VERIFIABLE_INJECTION_STATUSES: ReadonlySet<string>;
|
|
27
40
|
/**
|
|
28
41
|
* One entry in the planned sweep: an injection that should be verified and
|
|
29
42
|
* the evidence text to persist with the verify call.
|
|
@@ -38,7 +51,12 @@ export interface InjectionSweepEntry {
|
|
|
38
51
|
* the evidence text to attach.
|
|
39
52
|
*
|
|
40
53
|
* An injection is swept when ALL of:
|
|
41
|
-
* - its current `injectionStatus` is
|
|
54
|
+
* - its current `injectionStatus` is one the API will accept for a verify
|
|
55
|
+
* call (`VERIFIABLE_INJECTION_STATUSES`: proposed / in_progress / realized).
|
|
56
|
+
* A status the sweep cannot resolve -- already 'verified', terminal
|
|
57
|
+
* 'rejected_alternative', or a missing/renamed field reading as null -- is
|
|
58
|
+
* SKIPPED, so a settled tree (or a response-shape change) is an empty-plan
|
|
59
|
+
* no-op rather than a stream of refused verify writes.
|
|
42
60
|
* - at least one delivery anchoring it has executionStatus in the
|
|
43
61
|
* "closed successfully" set ('done', forward-compat 'verified').
|
|
44
62
|
*
|
|
@@ -51,28 +69,33 @@ export interface InjectionSweepEntry {
|
|
|
51
69
|
* injection.
|
|
52
70
|
*/
|
|
53
71
|
export declare function planInjectionSweep(anchored: FocusDeliveryInfo[], statusByInjectionId: ReadonlyMap<string, string | null>): InjectionSweepEntry[];
|
|
72
|
+
/** One entry's failure: which injection, and why the verify rejected. */
|
|
73
|
+
export interface SweepFailure {
|
|
74
|
+
injectionId: string;
|
|
75
|
+
error: Error;
|
|
76
|
+
}
|
|
54
77
|
/**
|
|
55
78
|
* Outcome of running the planned sweep against a `verify` callable. Pure
|
|
56
79
|
* with respect to side effects -- the `verify` argument owns the actual
|
|
57
80
|
* I/O so tests can pass a stub.
|
|
58
81
|
*
|
|
59
|
-
* `ok === true` means every entry verified; `ok === false` means
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
82
|
+
* `ok === true` means every entry verified; `ok === false` means at least one
|
|
83
|
+
* entry in `failures` rejected. Failures do NOT short-circuit the sweep: every
|
|
84
|
+
* planned entry is attempted so a single bad injection cannot block its
|
|
85
|
+
* siblings from retiring. The caller MUST NOT treat the sweep as complete while
|
|
86
|
+
* `failures` is non-empty -- those injections stay unretired and the next poll
|
|
87
|
+
* cycle should retry them.
|
|
63
88
|
*/
|
|
64
89
|
export interface SweepRunOutcome {
|
|
65
90
|
ok: boolean;
|
|
66
91
|
verified: string[];
|
|
67
|
-
|
|
68
|
-
injectionId: string;
|
|
69
|
-
error: Error;
|
|
70
|
-
};
|
|
92
|
+
failures: SweepFailure[];
|
|
71
93
|
}
|
|
72
94
|
/**
|
|
73
|
-
* Execute a planned sweep in order.
|
|
74
|
-
*
|
|
75
|
-
*
|
|
95
|
+
* Execute a planned sweep in order. Fault-isolated: a verify rejection is
|
|
96
|
+
* recorded and the sweep CONTINUES to the next entry, so one unretireable
|
|
97
|
+
* injection never blocks its siblings. The caller holds the focus and retries
|
|
98
|
+
* any recorded failures on the next settle cycle.
|
|
76
99
|
*/
|
|
77
100
|
export declare function executeSweep(entries: readonly InjectionSweepEntry[], verify: (injectionId: string, evidence: string) => Promise<void>): Promise<SweepRunOutcome>;
|
|
78
101
|
//# sourceMappingURL=close-loop-dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-loop-dispatcher.d.ts","sourceRoot":"","sources":["../../src/directive/close-loop-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAM3D;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAI3F;AA2BD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"close-loop-dispatcher.d.ts","sourceRoot":"","sources":["../../src/directive/close-loop-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAM3D;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAI3F;AA2BD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAI5D,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACtD,mBAAmB,EAAE,CA6BvB;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/D,OAAO,CAAC,eAAe,CAAC,CAY1B"}
|
|
@@ -51,13 +51,35 @@ const CLOSED_SUCCESSFULLY_STATUSES = new Set([
|
|
|
51
51
|
// future migration adds it the sweep keeps working.
|
|
52
52
|
'verified',
|
|
53
53
|
]);
|
|
54
|
+
/**
|
|
55
|
+
* Injection statuses the API will accept for a verify call -- and therefore the
|
|
56
|
+
* ONLY statuses the sweep plans. The API refuses any other value ("Cannot verify
|
|
57
|
+
* injection in status 'X'. Must be proposed, in_progress, or realized.").
|
|
58
|
+
*
|
|
59
|
+
* The check is a POSITIVE inclusion, not "not verified". This is deliberate and
|
|
60
|
+
* load-bearing: a status the sweep cannot resolve -- 'verified', the terminal
|
|
61
|
+
* 'rejected_alternative', or a missing/renamed field that reads as null/undefined
|
|
62
|
+
* -- must SKIP, so the sweep degrades to an empty-plan no-op rather than an
|
|
63
|
+
* infinite loop of refused verify writes. An unresolvable status defaulting to
|
|
64
|
+
* "verify it" is the exact defect this focus exists to fix.
|
|
65
|
+
*/
|
|
66
|
+
export const VERIFIABLE_INJECTION_STATUSES = new Set([
|
|
67
|
+
'proposed',
|
|
68
|
+
'in_progress',
|
|
69
|
+
'realized',
|
|
70
|
+
]);
|
|
54
71
|
/**
|
|
55
72
|
* Pure planner. Given the focus's anchored deliveries and a snapshot of each
|
|
56
73
|
* injection's current status, return the list of injections to verify and
|
|
57
74
|
* the evidence text to attach.
|
|
58
75
|
*
|
|
59
76
|
* An injection is swept when ALL of:
|
|
60
|
-
* - its current `injectionStatus` is
|
|
77
|
+
* - its current `injectionStatus` is one the API will accept for a verify
|
|
78
|
+
* call (`VERIFIABLE_INJECTION_STATUSES`: proposed / in_progress / realized).
|
|
79
|
+
* A status the sweep cannot resolve -- already 'verified', terminal
|
|
80
|
+
* 'rejected_alternative', or a missing/renamed field reading as null -- is
|
|
81
|
+
* SKIPPED, so a settled tree (or a response-shape change) is an empty-plan
|
|
82
|
+
* no-op rather than a stream of refused verify writes.
|
|
61
83
|
* - at least one delivery anchoring it has executionStatus in the
|
|
62
84
|
* "closed successfully" set ('done', forward-compat 'verified').
|
|
63
85
|
*
|
|
@@ -86,7 +108,7 @@ export function planInjectionSweep(anchored, statusByInjectionId) {
|
|
|
86
108
|
const entries = [];
|
|
87
109
|
for (const [injectionId, deliveries] of deliveriesByInjection) {
|
|
88
110
|
const status = statusByInjectionId.get(injectionId) ?? null;
|
|
89
|
-
if (status ===
|
|
111
|
+
if (status === null || !VERIFIABLE_INJECTION_STATUSES.has(status))
|
|
90
112
|
continue;
|
|
91
113
|
const closed = deliveries.find((d) => typeof d.executionStatus === 'string' &&
|
|
92
114
|
CLOSED_SUCCESSFULLY_STATUSES.has(d.executionStatus));
|
|
@@ -100,25 +122,23 @@ export function planInjectionSweep(anchored, statusByInjectionId) {
|
|
|
100
122
|
return entries;
|
|
101
123
|
}
|
|
102
124
|
/**
|
|
103
|
-
* Execute a planned sweep in order.
|
|
104
|
-
*
|
|
105
|
-
*
|
|
125
|
+
* Execute a planned sweep in order. Fault-isolated: a verify rejection is
|
|
126
|
+
* recorded and the sweep CONTINUES to the next entry, so one unretireable
|
|
127
|
+
* injection never blocks its siblings. The caller holds the focus and retries
|
|
128
|
+
* any recorded failures on the next settle cycle.
|
|
106
129
|
*/
|
|
107
130
|
export async function executeSweep(entries, verify) {
|
|
108
131
|
const verified = [];
|
|
132
|
+
const failures = [];
|
|
109
133
|
for (const entry of entries) {
|
|
110
134
|
try {
|
|
111
135
|
await verify(entry.injectionId, entry.evidence);
|
|
112
136
|
verified.push(entry.injectionId);
|
|
113
137
|
}
|
|
114
138
|
catch (err) {
|
|
115
|
-
|
|
116
|
-
ok: false,
|
|
117
|
-
verified,
|
|
118
|
-
failedAt: { injectionId: entry.injectionId, error: err },
|
|
119
|
-
};
|
|
139
|
+
failures.push({ injectionId: entry.injectionId, error: err });
|
|
120
140
|
}
|
|
121
141
|
}
|
|
122
|
-
return { ok:
|
|
142
|
+
return { ok: failures.length === 0, verified, failures };
|
|
123
143
|
}
|
|
124
144
|
//# sourceMappingURL=close-loop-dispatcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-loop-dispatcher.js","sourceRoot":"","sources":["../../src/directive/close-loop-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAA+B;IACpE,OAAO,UAAU,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CACrE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,8BAA8B;AAC9B,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,8DAA8D;AAC9D,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,4BAA4B,GAAwB,IAAI,GAAG,CAAC;IAChE,MAAM;IACN,yEAAyE;IACzE,oDAAoD;IACpD,UAAU;CACX,CAAC,CAAC;AAWH
|
|
1
|
+
{"version":3,"file":"close-loop-dispatcher.js","sourceRoot":"","sources":["../../src/directive/close-loop-dispatcher.ts"],"names":[],"mappings":"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"}
|