instar 1.3.60 → 1.3.61
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/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/InitiativeTracker.d.ts +10 -0
- package/dist/core/InitiativeTracker.d.ts.map +1 -1
- package/dist/core/InitiativeTracker.js +18 -0
- package/dist/core/InitiativeTracker.js.map +1 -1
- package/dist/core/types.d.ts +22 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/CiFailurePoller.d.ts +69 -0
- package/dist/monitoring/CiFailurePoller.d.ts.map +1 -0
- package/dist/monitoring/CiFailurePoller.js +167 -0
- package/dist/monitoring/CiFailurePoller.js.map +1 -0
- package/dist/monitoring/FailureAnalyzer.d.ts.map +1 -1
- package/dist/monitoring/FailureAnalyzer.js +10 -1
- package/dist/monitoring/FailureAnalyzer.js.map +1 -1
- package/dist/monitoring/FailureAttributionEngine.d.ts.map +1 -1
- package/dist/monitoring/FailureAttributionEngine.js +2 -1
- package/dist/monitoring/FailureAttributionEngine.js.map +1 -1
- package/dist/monitoring/FailureLedger.d.ts +14 -1
- package/dist/monitoring/FailureLedger.d.ts.map +1 -1
- package/dist/monitoring/FailureLedger.js +43 -4
- package/dist/monitoring/FailureLedger.js.map +1 -1
- package/dist/server/AgentServer.d.ts +1 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +52 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +3 -3
- package/upgrades/1.3.61.md +32 -0
- package/upgrades/side-effects/failure-learning-ingestion-sources.md +59 -0
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgrCH;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA8C;IAC3E,cAAc,EAAE,UAAU;IAC1B,gBAAgB,EAAE,eAAe;IACjC,mBAAmB,EAAE,UAAU;IAC/B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgrCH;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA8C;IAC3E,cAAc,EAAE,UAAU;IAC1B,gBAAgB,EAAE,eAAe;IACjC,mBAAmB,EAAE,UAAU;IAC/B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;CAC/B,CAAC;AA6pEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAClD,mDAAmD;AACnD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,sCAAsC;AACtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,kEAAkE;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { FailureLedger, FailureCategory } from './FailureLedger.js';
|
|
2
|
+
/** What the poller needs to know about a mapped initiative (a subset of Initiative). */
|
|
3
|
+
export interface CiInitiativeRef {
|
|
4
|
+
id: string;
|
|
5
|
+
projectId?: string;
|
|
6
|
+
specPath?: string;
|
|
7
|
+
origin?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CiFailurePollerOptions {
|
|
10
|
+
ledger: FailureLedger;
|
|
11
|
+
/** Exact-OID reverse lookup (InitiativeTracker.findByMergeCommit). */
|
|
12
|
+
resolveByMergeCommit: (oid: string) => CiInitiativeRef | undefined;
|
|
13
|
+
/** Resolve the `owner/name` repo (validated by the poller). Return null if none. */
|
|
14
|
+
resolveRepo: () => string | null;
|
|
15
|
+
/** Injectable gh runner (args array). Default: execFileSync('gh', args). */
|
|
16
|
+
runGh?: (args: string[]) => string;
|
|
17
|
+
/** Only poll when this returns true (fenced-lease holder). Default: always. */
|
|
18
|
+
isLeaseHolder?: () => boolean;
|
|
19
|
+
/** Poll interval (ms). Default 6h. */
|
|
20
|
+
intervalMs?: number;
|
|
21
|
+
/** Max failed runs filed per tick (spec §5). Default 50. */
|
|
22
|
+
maxRunsPerTick?: number;
|
|
23
|
+
/** gh run list --limit value (the query window). Default 50. */
|
|
24
|
+
ghLimit?: number;
|
|
25
|
+
onError?: (err: unknown) => void;
|
|
26
|
+
}
|
|
27
|
+
interface GhRun {
|
|
28
|
+
databaseId?: number;
|
|
29
|
+
conclusion?: string;
|
|
30
|
+
status?: string;
|
|
31
|
+
headBranch?: string;
|
|
32
|
+
headSha?: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
createdAt?: string;
|
|
35
|
+
}
|
|
36
|
+
/** Deterministic CI job-name → FailureCategory (fixed allow-list, never raw name). */
|
|
37
|
+
export declare function ciCategoryFromName(name: string | undefined): FailureCategory;
|
|
38
|
+
/**
|
|
39
|
+
* Keep only genuine current failures: group runs by head SHA, take the LATEST
|
|
40
|
+
* by createdAt per SHA, and return those whose latest conclusion is 'failure'.
|
|
41
|
+
* A SHA whose latest run succeeded (a re-run recovery) is dropped (flaky guard).
|
|
42
|
+
*/
|
|
43
|
+
export declare function currentFailures(runs: GhRun[]): GhRun[];
|
|
44
|
+
export declare class CiFailurePoller {
|
|
45
|
+
private readonly ledger;
|
|
46
|
+
private readonly resolveByMergeCommit;
|
|
47
|
+
private readonly resolveRepo;
|
|
48
|
+
private readonly runGh;
|
|
49
|
+
private readonly isLeaseHolder;
|
|
50
|
+
private readonly intervalMs;
|
|
51
|
+
private readonly maxRunsPerTick;
|
|
52
|
+
private readonly ghLimit;
|
|
53
|
+
private readonly onError;
|
|
54
|
+
private timer;
|
|
55
|
+
private running;
|
|
56
|
+
constructor(opts: CiFailurePollerOptions);
|
|
57
|
+
start(): void;
|
|
58
|
+
stop(): void;
|
|
59
|
+
/** One poll. Public for tests. Fail-open throughout. Returns # records filed. */
|
|
60
|
+
tick(): number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Best-effort secret scrub before a value is stored as detail.full (spec §5).
|
|
64
|
+
* Redacts common token shapes; detail.full never crosses HTTP, but it is written
|
|
65
|
+
* to logs + sqlite, so this keeps obvious secrets out of that internal zone.
|
|
66
|
+
*/
|
|
67
|
+
export declare function scrubSecrets(text: string): string;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=CiFailurePoller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CiFailurePoller.d.ts","sourceRoot":"","sources":["../../src/monitoring/CiFailurePoller.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzE,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAC;IACtB,sEAAsE;IACtE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IACnE,oFAAoF;IACpF,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IACnC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAID,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAK5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAStD;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+C;IACpF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,sBAAsB;IAcxC,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,IAAI;IAOZ,iFAAiF;IACjF,IAAI,IAAI,MAAM;CAoDf;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiFailurePoller — Ingestion-sources spec §3.1.
|
|
3
|
+
*
|
|
4
|
+
* Periodically lists recent CI runs via `gh` and files the failed ones into the
|
|
5
|
+
* FailureLedger. Read-only against GitHub; never mutates a repo. Fail-open: any
|
|
6
|
+
* error (gh missing/unauthed/rate-limited/non-JSON) logs and skips the tick.
|
|
7
|
+
*
|
|
8
|
+
* Safety (spec §3.1/§4.1):
|
|
9
|
+
* - `gh` is invoked arg-array only (never a shell string); `repo` parsed from
|
|
10
|
+
* the git remote is validated against a strict owner/name regex before use.
|
|
11
|
+
* - Attribution is exact-OID (headSha → InitiativeTracker.findByMergeCommit),
|
|
12
|
+
* never a branch-name substring match. Unmapped → inferred / noFeatureLink.
|
|
13
|
+
* - Loop self-exclusion (§4.3): a run mapped to a `failure-learning-loop`-origin
|
|
14
|
+
* initiative is skipped (don't ingest the loop's own fix-PR failures).
|
|
15
|
+
* - Flaky guard (§3.1): per head SHA, only the LATEST run is considered; if a
|
|
16
|
+
* later run for that SHA succeeded, the failure is treated as recovered and
|
|
17
|
+
* skipped (not filed as a process failure).
|
|
18
|
+
* - Per-tick write cap (§5) bounds the ledger writes per poll.
|
|
19
|
+
* - Lease-gated (§5): runs only on the fenced-lease holder so a fleet polls
|
|
20
|
+
* GitHub once, not once per machine.
|
|
21
|
+
*
|
|
22
|
+
* filedBy is the constant `source:ci` (§5) so CI failures share one analyzer
|
|
23
|
+
* "session" identity → they can never alone satisfy the diversity gate.
|
|
24
|
+
*/
|
|
25
|
+
import { execFileSync } from 'node:child_process';
|
|
26
|
+
const REPO_RE = /^[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+$/;
|
|
27
|
+
/** Deterministic CI job-name → FailureCategory (fixed allow-list, never raw name). */
|
|
28
|
+
export function ciCategoryFromName(name) {
|
|
29
|
+
const n = (name || '').toLowerCase();
|
|
30
|
+
if (/\b(test|spec|vitest|jest|e2e|unit|integration)\b/.test(n))
|
|
31
|
+
return 'test-failure';
|
|
32
|
+
if (/\b(build|compile|tsc|lint|type.?check|bundle)\b/.test(n))
|
|
33
|
+
return 'build-failure';
|
|
34
|
+
return 'unknown';
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Keep only genuine current failures: group runs by head SHA, take the LATEST
|
|
38
|
+
* by createdAt per SHA, and return those whose latest conclusion is 'failure'.
|
|
39
|
+
* A SHA whose latest run succeeded (a re-run recovery) is dropped (flaky guard).
|
|
40
|
+
*/
|
|
41
|
+
export function currentFailures(runs) {
|
|
42
|
+
const latestBySha = new Map();
|
|
43
|
+
for (const r of runs) {
|
|
44
|
+
const sha = r.headSha;
|
|
45
|
+
if (!sha)
|
|
46
|
+
continue;
|
|
47
|
+
const prev = latestBySha.get(sha);
|
|
48
|
+
if (!prev || String(r.createdAt || '') > String(prev.createdAt || ''))
|
|
49
|
+
latestBySha.set(sha, r);
|
|
50
|
+
}
|
|
51
|
+
return [...latestBySha.values()].filter((r) => r.conclusion === 'failure');
|
|
52
|
+
}
|
|
53
|
+
export class CiFailurePoller {
|
|
54
|
+
ledger;
|
|
55
|
+
resolveByMergeCommit;
|
|
56
|
+
resolveRepo;
|
|
57
|
+
runGh;
|
|
58
|
+
isLeaseHolder;
|
|
59
|
+
intervalMs;
|
|
60
|
+
maxRunsPerTick;
|
|
61
|
+
ghLimit;
|
|
62
|
+
onError;
|
|
63
|
+
timer = null;
|
|
64
|
+
running = false;
|
|
65
|
+
constructor(opts) {
|
|
66
|
+
this.ledger = opts.ledger;
|
|
67
|
+
this.resolveByMergeCommit = opts.resolveByMergeCommit;
|
|
68
|
+
this.resolveRepo = opts.resolveRepo;
|
|
69
|
+
this.runGh =
|
|
70
|
+
opts.runGh ??
|
|
71
|
+
((args) => execFileSync('gh', args, { encoding: 'utf-8', timeout: 15000, stdio: ['pipe', 'pipe', 'pipe'] }));
|
|
72
|
+
this.isLeaseHolder = opts.isLeaseHolder ?? (() => true);
|
|
73
|
+
this.intervalMs = opts.intervalMs && opts.intervalMs > 0 ? opts.intervalMs : 6 * 60 * 60 * 1000;
|
|
74
|
+
this.maxRunsPerTick = opts.maxRunsPerTick && opts.maxRunsPerTick > 0 ? opts.maxRunsPerTick : 50;
|
|
75
|
+
this.ghLimit = opts.ghLimit && opts.ghLimit > 0 ? opts.ghLimit : 50;
|
|
76
|
+
this.onError = opts.onError ?? ((err) => console.warn('[ci-failure-poller]', err));
|
|
77
|
+
}
|
|
78
|
+
start() {
|
|
79
|
+
if (this.timer)
|
|
80
|
+
return;
|
|
81
|
+
queueMicrotask(() => this.tick());
|
|
82
|
+
this.timer = setInterval(() => this.tick(), this.intervalMs);
|
|
83
|
+
if (typeof this.timer.unref === 'function')
|
|
84
|
+
this.timer.unref();
|
|
85
|
+
}
|
|
86
|
+
stop() {
|
|
87
|
+
if (this.timer) {
|
|
88
|
+
clearInterval(this.timer);
|
|
89
|
+
this.timer = null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** One poll. Public for tests. Fail-open throughout. Returns # records filed. */
|
|
93
|
+
tick() {
|
|
94
|
+
if (this.running)
|
|
95
|
+
return 0;
|
|
96
|
+
this.running = true;
|
|
97
|
+
let filed = 0;
|
|
98
|
+
try {
|
|
99
|
+
if (!this.isLeaseHolder())
|
|
100
|
+
return 0;
|
|
101
|
+
const repo = this.resolveRepo();
|
|
102
|
+
if (!repo || !REPO_RE.test(repo))
|
|
103
|
+
return 0; // no repo / untrusted remote → skip
|
|
104
|
+
const raw = this.runGh([
|
|
105
|
+
'run', 'list', '--repo', repo, '--limit', String(this.ghLimit),
|
|
106
|
+
'--json', 'databaseId,conclusion,status,headBranch,headSha,name,createdAt',
|
|
107
|
+
]);
|
|
108
|
+
const runs = JSON.parse(raw);
|
|
109
|
+
if (!Array.isArray(runs))
|
|
110
|
+
return 0;
|
|
111
|
+
const failures = currentFailures(runs).slice(0, this.maxRunsPerTick);
|
|
112
|
+
for (const run of failures) {
|
|
113
|
+
try {
|
|
114
|
+
const headSha = run.headSha;
|
|
115
|
+
const mapped = this.resolveByMergeCommit(headSha);
|
|
116
|
+
if (mapped && mapped.origin === 'failure-learning-loop')
|
|
117
|
+
continue; // loop self-exclusion (§4.3)
|
|
118
|
+
const category = ciCategoryFromName(run.name);
|
|
119
|
+
const conclusion = String(run.conclusion);
|
|
120
|
+
const jobName = String(run.name || 'CI');
|
|
121
|
+
const rec = this.ledger.open({
|
|
122
|
+
source: 'ci',
|
|
123
|
+
severity: 'medium',
|
|
124
|
+
category,
|
|
125
|
+
summary: `CI ${jobName} ${conclusion}`,
|
|
126
|
+
detail: {
|
|
127
|
+
redacted: `${jobName}: ${conclusion}`,
|
|
128
|
+
full: scrubSecrets(`run ${run.databaseId ?? '?'} on ${run.headBranch ?? '?'} (${headSha}) — ${conclusion}`),
|
|
129
|
+
},
|
|
130
|
+
causeCommitOid: headSha,
|
|
131
|
+
initiativeId: mapped?.id,
|
|
132
|
+
projectId: mapped?.projectId,
|
|
133
|
+
specPath: mapped?.specPath,
|
|
134
|
+
filedBy: 'source:ci',
|
|
135
|
+
attribution: mapped ? 'automatic' : 'inferred',
|
|
136
|
+
attributionConfidence: mapped ? 0.9 : 0.2,
|
|
137
|
+
});
|
|
138
|
+
if (rec)
|
|
139
|
+
filed += 1;
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
this.onError(err); // per-run fail-open; keep going
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
this.onError(err); // whole-tick fail-open
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
this.running = false;
|
|
151
|
+
}
|
|
152
|
+
return filed;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Best-effort secret scrub before a value is stored as detail.full (spec §5).
|
|
157
|
+
* Redacts common token shapes; detail.full never crosses HTTP, but it is written
|
|
158
|
+
* to logs + sqlite, so this keeps obvious secrets out of that internal zone.
|
|
159
|
+
*/
|
|
160
|
+
export function scrubSecrets(text) {
|
|
161
|
+
return String(text)
|
|
162
|
+
.replace(/gh[pousr]_[A-Za-z0-9]{20,}/g, 'gh***_REDACTED')
|
|
163
|
+
.replace(/\b(sk|pk|rk)-[A-Za-z0-9]{16,}/g, '$1-REDACTED')
|
|
164
|
+
.replace(/\b[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{20,}\b/g, 'JWT_REDACTED')
|
|
165
|
+
.replace(/((?:token|secret|password|api[_-]?key)["'=:\s]+)[A-Za-z0-9._-]{12,}/gi, '$1REDACTED');
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=CiFailurePoller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CiFailurePoller.js","sourceRoot":"","sources":["../../src/monitoring/CiFailurePoller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FailureAnalyzer.d.ts","sourceRoot":"","sources":["../../src/monitoring/FailureAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAkC,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvG,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,aAI3B,CAAC;
|
|
1
|
+
{"version":3,"file":"FailureAnalyzer.d.ts","sourceRoot":"","sources":["../../src/monitoring/FailureAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAkC,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvG,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,aAI3B,CAAC;AAkBF,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,aAAa,EAAE,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAiB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAA7C,MAAM,EAAE,aAAa,EAAmB,KAAK,GAAE,aAA6B;IAEzG;;;;OAIG;IACH,OAAO,IAAI,aAAa;CAoDzB"}
|
|
@@ -11,6 +11,11 @@ const RECOMMENDATION_BY_CATEGORY = {
|
|
|
11
11
|
logic: 'Recurring logic failures — strengthen the both-sides-of-the-boundary test requirement in the spec review.',
|
|
12
12
|
migration: 'Recurring migration failures — add a migration-parity check (existing-agent path) to the review checklist.',
|
|
13
13
|
'test-gap': 'Recurring test-gap failures — require the 3-tier test set (incl. the production storage path) before merge.',
|
|
14
|
+
// Ingestion-sources spec §7: required because this is a total Record<FailureCategory,…>
|
|
15
|
+
// — widening the enum without these entries fails tsc. (A totality test locks this.)
|
|
16
|
+
'build-failure': 'Recurring build failures — check the build config / dependency or lint rule that keeps breaking, and add a pre-merge build gate for it.',
|
|
17
|
+
'test-failure': 'Recurring test failures — require the 3-tier test set before merge and stabilize the flaky path before it lands.',
|
|
18
|
+
regression: 'Recurring regressions — a shipped feature keeps breaking; add a regression guard (a test pinning the behavior) for this path.',
|
|
14
19
|
unknown: 'Recurring uncategorized failures — improve the failure-categorization step so these become actionable.',
|
|
15
20
|
};
|
|
16
21
|
export class FailureAnalyzer {
|
|
@@ -31,9 +36,13 @@ export class FailureAnalyzer {
|
|
|
31
36
|
: undefined;
|
|
32
37
|
// Only attributed records feed a process-change recommendation (§4.3): a
|
|
33
38
|
// guess (`inferred`) is excluded until confirmed.
|
|
39
|
+
// Ingestion-sources spec §6.1 (implements parent §4.4 M6, specified-but-unbuilt):
|
|
40
|
+
// `resolved` records (incl. those a revert closes) are excluded from active-rate
|
|
41
|
+
// clustering — a fixed/reverted failure must not keep driving a recommendation.
|
|
42
|
+
// `reopened` stays IN (it is active again); only `resolved` is excluded.
|
|
34
43
|
const records = this.ledger
|
|
35
44
|
.list({ sinceMs, limit: 1000 })
|
|
36
|
-
.filter((r) => r.attribution === 'automatic' || r.attribution === 'one-tap');
|
|
45
|
+
.filter((r) => (r.attribution === 'automatic' || r.attribution === 'one-tap') && r.status !== 'resolved');
|
|
37
46
|
const byCategory = new Map();
|
|
38
47
|
for (const r of records) {
|
|
39
48
|
const arr = byCategory.get(r.category) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FailureAnalyzer.js","sourceRoot":"","sources":["../../src/monitoring/FailureAnalyzer.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,UAAU,EAAE,CAAC;IACb,mBAAmB,EAAE,CAAC;IACtB,uBAAuB,EAAE,CAAC;CAC3B,CAAC;AAEF,oFAAoF;AACpF,MAAM,0BAA0B,GAAoC;IAClE,WAAW,EAAE,oIAAoI;IACjJ,cAAc,EAAE,wGAAwG;IACxH,MAAM,EAAE,sJAAsJ;IAC9J,KAAK,EAAE,2GAA2G;IAClH,SAAS,EAAE,4GAA4G;IACvH,UAAU,EAAE,6GAA6G;IACzH,OAAO,EAAE,wGAAwG;CAClH,CAAC;AAQF,MAAM,OAAO,eAAe;IACG;IAAwC;IAArE,YAA6B,MAAqB,EAAmB,QAAuB,aAAa;QAA5E,WAAM,GAAN,MAAM,CAAe;QAAmB,UAAK,GAAL,KAAK,CAA+B;IAAG,CAAC;IAE7G;;;;OAIG;IACH,OAAO;QACL,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;YAChD,CAAC,CAAC,SAAS,CAAC;QACd,yEAAyE;QACzE,kDAAkD;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;aACxB,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"FailureAnalyzer.js","sourceRoot":"","sources":["../../src/monitoring/FailureAnalyzer.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,UAAU,EAAE,CAAC;IACb,mBAAmB,EAAE,CAAC;IACtB,uBAAuB,EAAE,CAAC;CAC3B,CAAC;AAEF,oFAAoF;AACpF,MAAM,0BAA0B,GAAoC;IAClE,WAAW,EAAE,oIAAoI;IACjJ,cAAc,EAAE,wGAAwG;IACxH,MAAM,EAAE,sJAAsJ;IAC9J,KAAK,EAAE,2GAA2G;IAClH,SAAS,EAAE,4GAA4G;IACvH,UAAU,EAAE,6GAA6G;IACzH,wFAAwF;IACxF,qFAAqF;IACrF,eAAe,EAAE,yIAAyI;IAC1J,cAAc,EAAE,kHAAkH;IAClI,UAAU,EAAE,+HAA+H;IAC3I,OAAO,EAAE,wGAAwG;CAClH,CAAC;AAQF,MAAM,OAAO,eAAe;IACG;IAAwC;IAArE,YAA6B,MAAqB,EAAmB,QAAuB,aAAa;QAA5E,WAAM,GAAN,MAAM,CAAe;QAAmB,UAAK,GAAL,KAAK,CAA+B;IAAG,CAAC;IAE7G;;;;OAIG;IACH,OAAO;QACL,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;YAChD,CAAC,CAAC,SAAS,CAAC;QACd,yEAAyE;QACzE,kDAAkD;QAClD,kFAAkF;QAClF,iFAAiF;QACjF,gFAAgF;QAChF,yEAAyE;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;aACxB,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAE5G,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAS,CAAC,8CAA8C;YACpF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACxF,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;gBACvC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB;gBAClD,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,cAAc,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACxC,WAAW,EAAE,YAAY,QAAQ,EAAE;gBACnC,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,eAAe,QAAQ,oBAAoB,gBAAgB,eAAe,oBAAoB,gBAAgB;gBACxI,cAAc,EAAE,0BAA0B,CAAC,QAAQ,CAAC;gBACpD,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,gBAAgB;gBAChB,oBAAoB;gBACpB,cAAc,EAAE,QAAQ;gBACxB,YAAY,EAAE,OAAO,CAAC,MAAM;aAC7B,CAAC,CAAC;YACH,IAAI,OAAO;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,OAAO;YACL,kBAAkB,EAAE,UAAU;YAC9B,kBAAkB,EAAE,UAAU,CAAC,IAAI;YACnC,sBAAsB,EAAE,cAAc;SACvC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FailureAttributionEngine.d.ts","sourceRoot":"","sources":["../../src/monitoring/FailureAttributionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE3E,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;IACrD,mEAAmE;IACnE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,eAAe,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,gGAAgG;IAChG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,eAAe;IAElD,8DAA8D;IAC9D,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;IAS3D,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB;IAoD9F;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3E;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE,GACzC;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAmBjC,6EAA6E;IAC7E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe;
|
|
1
|
+
{"version":3,"file":"FailureAttributionEngine.d.ts","sourceRoot":"","sources":["../../src/monitoring/FailureAttributionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE3E,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;IACrD,mEAAmE;IACnE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,eAAe,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,gGAAgG;IAChG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,eAAe;IAElD,8DAA8D;IAC9D,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;IAS3D,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB;IAoD9F;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3E;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE,GACzC;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAmBjC,6EAA6E;IAC7E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe;CAOlE"}
|
|
@@ -98,7 +98,8 @@ export class FailureAttributionEngine {
|
|
|
98
98
|
/** Pick a category enum value defensively — never trust free text (§4.4). */
|
|
99
99
|
static coerceCategory(value) {
|
|
100
100
|
const allowed = [
|
|
101
|
-
'concurrency', 'config-parse', 'wiring', 'logic', 'migration', 'test-gap',
|
|
101
|
+
'concurrency', 'config-parse', 'wiring', 'logic', 'migration', 'test-gap',
|
|
102
|
+
'build-failure', 'test-failure', 'regression', 'unknown',
|
|
102
103
|
];
|
|
103
104
|
return allowed.includes(value) ? value : 'unknown';
|
|
104
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FailureAttributionEngine.js","sourceRoot":"","sources":["../../src/monitoring/FailureAttributionEngine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FailureAttributionEngine.js","sourceRoot":"","sources":["../../src/monitoring/FailureAttributionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type FailureSource = 'bugfix-commit' | 'agent-diagnosed' | 'ci' | 'revert' | 'regression' | 'degradation';
|
|
2
2
|
export type FailureSeverity = 'low' | 'medium' | 'high';
|
|
3
|
-
export type FailureCategory = 'concurrency' | 'config-parse' | 'wiring' | 'logic' | 'migration' | 'test-gap' | 'unknown';
|
|
3
|
+
export type FailureCategory = 'concurrency' | 'config-parse' | 'wiring' | 'logic' | 'migration' | 'test-gap' | 'build-failure' | 'test-failure' | 'regression' | 'unknown';
|
|
4
4
|
export type AttributionMode = 'automatic' | 'one-tap' | 'inferred';
|
|
5
5
|
export type FailureStatus = 'open' | 'attributed' | 'analyzed' | 'resolved' | 'reopened';
|
|
6
6
|
/** Internal-only severity-split detail (spec §4.8). `full` never leaves via HTTP. */
|
|
@@ -151,11 +151,19 @@ export interface FailureLedgerOptions {
|
|
|
151
151
|
machineId?: string;
|
|
152
152
|
/** Sink for fail-open write errors (defaults to console.error). */
|
|
153
153
|
onError?: (where: string, err: unknown) => void;
|
|
154
|
+
/**
|
|
155
|
+
* Ingestion-sources spec §5: cap on `failure_occurrences` rows kept per
|
|
156
|
+
* dedupeKey. The occurrence table is a bounded FORENSIC log — the analyzer
|
|
157
|
+
* computes diversity from deduped `failure_records`, never from this table —
|
|
158
|
+
* so pruning old rows cannot affect any analysis decision. Default 200.
|
|
159
|
+
*/
|
|
160
|
+
maxOccurrencesPerKey?: number;
|
|
154
161
|
}
|
|
155
162
|
export declare class FailureLedger {
|
|
156
163
|
private db;
|
|
157
164
|
private readonly machineId;
|
|
158
165
|
private readonly onError;
|
|
166
|
+
private readonly maxOccurrencesPerKey;
|
|
159
167
|
constructor(opts: FailureLedgerOptions);
|
|
160
168
|
/** Deterministic dedupe key (spec §4.2 M5). */
|
|
161
169
|
static dedupeKey(source: FailureSource, causeCommitOid: string | undefined, category: FailureCategory): string;
|
|
@@ -176,6 +184,11 @@ export declare class FailureLedger {
|
|
|
176
184
|
update(id: string, patch: Partial<Pick<FailureRecord, 'status' | 'category' | 'fixCommitOid' | 'learningId' | 'attribution' | 'attributionConfidence' | 'provenance' | 'buildSkill' | 'initiativeId' | 'projectId' | 'specPath' | 'toolchainRef'>>, ifMatch: number): UpdateResult;
|
|
177
185
|
/** Distinct sessions + cause-commits for the diversity gate (spec §4.4). */
|
|
178
186
|
distinctCounts(dedupeKey: string): DistinctCounts;
|
|
187
|
+
/**
|
|
188
|
+
* Raw forensic-log row count (Ingestion-sources spec §5). Observability +
|
|
189
|
+
* test hook for the retention cap — total rows, or rows for one dedupeKey.
|
|
190
|
+
*/
|
|
191
|
+
countOccurrences(dedupeKey?: string): number;
|
|
179
192
|
/**
|
|
180
193
|
* Analyzer query path (spec §4.4): indexed group-bys directly in SQL, never a
|
|
181
194
|
* full cache-rebuild + JS filter. Toolchain-blame counts are restricted to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FailureLedger.d.ts","sourceRoot":"","sources":["../../src/monitoring/FailureLedger.ts"],"names":[],"mappings":"AAsCA,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,iBAAiB,GACjB,IAAI,GACJ,QAAQ,GACR,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,cAAc,GACd,QAAQ,GACR,OAAO,GACP,WAAW,GACX,UAAU,
|
|
1
|
+
{"version":3,"file":"FailureLedger.d.ts","sourceRoot":"","sources":["../../src/monitoring/FailureLedger.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,8 @@ import fs from 'node:fs';
|
|
|
32
32
|
import os from 'node:os';
|
|
33
33
|
import path from 'node:path';
|
|
34
34
|
import { NativeModuleHealer } from '../memory/NativeModuleHealer.js';
|
|
35
|
+
/** Default forensic-log retention per dedupeKey (spec §5). */
|
|
36
|
+
const DEFAULT_MAX_OCCURRENCES_PER_KEY = 200;
|
|
35
37
|
// ── Schema ────────────────────────────────────────────────────────────
|
|
36
38
|
const SCHEMA = [
|
|
37
39
|
`CREATE TABLE IF NOT EXISTS failure_records (
|
|
@@ -117,11 +119,16 @@ export class FailureLedger {
|
|
|
117
119
|
db;
|
|
118
120
|
machineId;
|
|
119
121
|
onError;
|
|
122
|
+
maxOccurrencesPerKey;
|
|
120
123
|
constructor(opts) {
|
|
121
124
|
this.machineId = (opts.machineId || os.hostname() || 'local')
|
|
122
125
|
.replace(/[^a-zA-Z0-9]+/g, '-')
|
|
123
126
|
.replace(/^-+|-+$/g, '')
|
|
124
127
|
.slice(0, 24) || 'local';
|
|
128
|
+
this.maxOccurrencesPerKey =
|
|
129
|
+
opts.maxOccurrencesPerKey && opts.maxOccurrencesPerKey > 0
|
|
130
|
+
? opts.maxOccurrencesPerKey
|
|
131
|
+
: DEFAULT_MAX_OCCURRENCES_PER_KEY;
|
|
125
132
|
this.onError =
|
|
126
133
|
opts.onError ?? ((where, err) => console.error(`[FailureLedger] ${where}:`, err));
|
|
127
134
|
if (opts.dbPath !== ':memory:') {
|
|
@@ -165,6 +172,17 @@ export class FailureLedger {
|
|
|
165
172
|
.prepare(`INSERT INTO failure_occurrences (dedupe_key, filed_by, cause_commit, detected_at)
|
|
166
173
|
VALUES (?, ?, ?, ?)`)
|
|
167
174
|
.run(dedupeKey, input.filedBy, input.causeCommitOid ?? null, detectedAt);
|
|
175
|
+
// Ingestion-sources spec §5: bounded forensic log — prune occurrence rows
|
|
176
|
+
// for this dedupeKey beyond the most-recent N. Safe because the analyzer
|
|
177
|
+
// computes diversity from deduped `failure_records`, never this table.
|
|
178
|
+
this.db
|
|
179
|
+
.prepare(`DELETE FROM failure_occurrences
|
|
180
|
+
WHERE dedupe_key = @dedupeKey
|
|
181
|
+
AND id NOT IN (
|
|
182
|
+
SELECT id FROM failure_occurrences
|
|
183
|
+
WHERE dedupe_key = @dedupeKey
|
|
184
|
+
ORDER BY id DESC LIMIT @keep)`)
|
|
185
|
+
.run({ dedupeKey, keep: this.maxOccurrencesPerKey });
|
|
168
186
|
const existing = this.db
|
|
169
187
|
.prepare(`SELECT id FROM failure_records WHERE dedupe_key = ?`)
|
|
170
188
|
.get(dedupeKey);
|
|
@@ -177,7 +195,13 @@ export class FailureLedger {
|
|
|
177
195
|
return existing.id;
|
|
178
196
|
}
|
|
179
197
|
const id = this.nextId();
|
|
180
|
-
|
|
198
|
+
// Ingestion-sources spec §5: ON CONFLICT upsert so a cross-process race
|
|
199
|
+
// (another instance inserting the same dedupeKey between our SELECT and
|
|
200
|
+
// INSERT) increments instead of dropping the record (the prior plain
|
|
201
|
+
// INSERT hit the UNIQUE constraint → fail-open catch → lost occurrence).
|
|
202
|
+
// RETURNING id yields the SURVIVING row's id (new on insert, existing on
|
|
203
|
+
// conflict), so we never return a phantom id.
|
|
204
|
+
const row = this.db
|
|
181
205
|
.prepare(`INSERT INTO failure_records
|
|
182
206
|
(id, dedupe_key, occurrence_count, detected_at, filed_by, source, severity,
|
|
183
207
|
summary, detail_redacted, detail_full, category, initiative_id, project_id,
|
|
@@ -187,8 +211,13 @@ export class FailureLedger {
|
|
|
187
211
|
(@id, @dedupeKey, 1, @detectedAt, @filedBy, @source, @severity,
|
|
188
212
|
@summary, @detailRedacted, @detailFull, @category, @initiativeId, @projectId,
|
|
189
213
|
@specPath, @causeCommitOid, @prNumber, @toolchainRef, @buildSkill, @provenance,
|
|
190
|
-
@attribution, @attributionConfidence, 'open', @createdAt, @updatedAt, 1)
|
|
191
|
-
|
|
214
|
+
@attribution, @attributionConfidence, 'open', @createdAt, @updatedAt, 1)
|
|
215
|
+
ON CONFLICT(dedupe_key) DO UPDATE SET
|
|
216
|
+
occurrence_count = occurrence_count + 1,
|
|
217
|
+
updated_at = excluded.updated_at,
|
|
218
|
+
version = version + 1
|
|
219
|
+
RETURNING id`)
|
|
220
|
+
.get({
|
|
192
221
|
id,
|
|
193
222
|
dedupeKey,
|
|
194
223
|
detectedAt,
|
|
@@ -212,7 +241,7 @@ export class FailureLedger {
|
|
|
212
241
|
createdAt: now,
|
|
213
242
|
updatedAt: now,
|
|
214
243
|
});
|
|
215
|
-
return id;
|
|
244
|
+
return row.id;
|
|
216
245
|
});
|
|
217
246
|
const id = txn();
|
|
218
247
|
return this.get(id);
|
|
@@ -321,6 +350,16 @@ export class FailureLedger {
|
|
|
321
350
|
.get(dedupeKey);
|
|
322
351
|
return { sessions: row?.sessions ?? 0, causeCommits: row?.commits ?? 0 };
|
|
323
352
|
}
|
|
353
|
+
/**
|
|
354
|
+
* Raw forensic-log row count (Ingestion-sources spec §5). Observability +
|
|
355
|
+
* test hook for the retention cap — total rows, or rows for one dedupeKey.
|
|
356
|
+
*/
|
|
357
|
+
countOccurrences(dedupeKey) {
|
|
358
|
+
const row = dedupeKey
|
|
359
|
+
? this.db.prepare(`SELECT COUNT(*) c FROM failure_occurrences WHERE dedupe_key = ?`).get(dedupeKey)
|
|
360
|
+
: this.db.prepare(`SELECT COUNT(*) c FROM failure_occurrences`).get();
|
|
361
|
+
return (row?.c) ?? 0;
|
|
362
|
+
}
|
|
324
363
|
/**
|
|
325
364
|
* Analyzer query path (spec §4.4): indexed group-bys directly in SQL, never a
|
|
326
365
|
* full cache-rebuild + JS filter. Toolchain-blame counts are restricted to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FailureLedger.js","sourceRoot":"","sources":["../../src/monitoring/FailureLedger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FailureLedger.js","sourceRoot":"","sources":["../../src/monitoring/FailureLedger.ts"],"names":[],"mappings":"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"}
|