instar 1.3.59 → 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.
Files changed (33) hide show
  1. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  2. package/dist/config/ConfigDefaults.js +10 -0
  3. package/dist/config/ConfigDefaults.js.map +1 -1
  4. package/dist/core/InitiativeTracker.d.ts +10 -0
  5. package/dist/core/InitiativeTracker.d.ts.map +1 -1
  6. package/dist/core/InitiativeTracker.js +18 -0
  7. package/dist/core/InitiativeTracker.js.map +1 -1
  8. package/dist/core/types.d.ts +22 -0
  9. package/dist/core/types.d.ts.map +1 -1
  10. package/dist/core/types.js.map +1 -1
  11. package/dist/monitoring/CiFailurePoller.d.ts +69 -0
  12. package/dist/monitoring/CiFailurePoller.d.ts.map +1 -0
  13. package/dist/monitoring/CiFailurePoller.js +167 -0
  14. package/dist/monitoring/CiFailurePoller.js.map +1 -0
  15. package/dist/monitoring/FailureAnalyzer.d.ts.map +1 -1
  16. package/dist/monitoring/FailureAnalyzer.js +10 -1
  17. package/dist/monitoring/FailureAnalyzer.js.map +1 -1
  18. package/dist/monitoring/FailureAttributionEngine.d.ts.map +1 -1
  19. package/dist/monitoring/FailureAttributionEngine.js +2 -1
  20. package/dist/monitoring/FailureAttributionEngine.js.map +1 -1
  21. package/dist/monitoring/FailureLedger.d.ts +14 -1
  22. package/dist/monitoring/FailureLedger.d.ts.map +1 -1
  23. package/dist/monitoring/FailureLedger.js +43 -4
  24. package/dist/monitoring/FailureLedger.js.map +1 -1
  25. package/dist/server/AgentServer.d.ts +1 -0
  26. package/dist/server/AgentServer.d.ts.map +1 -1
  27. package/dist/server/AgentServer.js +52 -0
  28. package/dist/server/AgentServer.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/data/builtin-manifest.json +3 -3
  31. package/upgrades/1.3.61.md +32 -0
  32. package/upgrades/side-effects/failure-learning-ingestion-sources.md +59 -0
  33. /package/upgrades/{1.3.59.md → 1.3.60.md} +0 -0
@@ -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;AAuoEF,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"}
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;AAaF,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;CAgDzB"}
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":"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"}
1
+ {"version":3,"file":"FailureAnalyzer.js","sourceRoot":"","sources":["../../src/monitoring/FailureAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -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;CAMlE"}
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', 'unknown',
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":"AA0DA,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAC3D,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAErD,MAAM,OAAO,wBAAwB;IACN;IAA7B,YAA6B,IAAqB;QAArB,SAAI,GAAJ,IAAI,CAAiB;IAAG,CAAC;IAEtD,8DAA8D;IAC9D,MAAM,CAAC,aAAa,CAAC,aAAqB;QACxC,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC;YAAE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC;YAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8FAA8F;IACtF,MAAM,CAAC,IAAI,CAAC,CAAS;QAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,KAAmD;QACvE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE7E,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC3B,4EAA4E;YAC5E,OAAO;gBACL,WAAW,EAAE,UAAU;gBACvB,qBAAqB,EAAE,CAAC;gBACxB,cAAc,EAAE,KAAK,CAAC,SAAS;gBAC/B,aAAa,EAAE,IAAI;gBACnB,IAAI,EAAE,2EAA2E;aAClF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,WAAW,EAAE,UAAU;gBACvB,qBAAqB,EAAE,GAAG;gBAC1B,cAAc,EAAE,KAAK,CAAC,SAAS;gBAC/B,IAAI,EAAE,qCAAqC,QAAQ,CAAC,YAAY,uBAAuB;aACxF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1G,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,+EAA+E;YAC/E,OAAO;gBACL,WAAW,EAAE,UAAU;gBACvB,qBAAqB,EAAE,GAAG;gBAC1B,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,SAAS,EAAE,UAAU,CAAC,eAAe;gBACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,cAAc,EAAE,KAAK,CAAC,SAAS;gBAC/B,IAAI,EAAE,kBAAkB,UAAU,CAAC,EAAE,qFAAqF;aAC3H,CAAC;QACJ,CAAC;QAED,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,qBAAqB,EAAE,GAAG;YAC1B,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,SAAS,EAAE,UAAU,CAAC,eAAe;YACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,cAAc,EAAE,KAAK,CAAC,SAAS;YAC/B,IAAI,EAAE,uCAAuC,UAAU,CAAC,EAAE,eAAe;SAC1E,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAwD;QAG7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,KAAK,CAAC,YAAY,kBAAkB,EAAE,CAAC;QACpF,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE;gBACP,WAAW,EAAE,SAAS;gBACtB,qBAAqB,EAAE,GAAG;gBAC1B,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,SAAS,EAAE,UAAU,CAAC,eAAe;gBACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,qDAAqD;gBAC3F,IAAI,EAAE,oEAAoE;aAC3E;SACF,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,CAAC,cAAc,CAAC,KAAyB;QAC7C,MAAM,OAAO,GAAsB;YACjC,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS;SACrF,CAAC;QACF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAwB,CAAC,CAAC,CAAC,CAAE,KAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,CAAC;CACF"}
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,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnE,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,YAAY,GACZ,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAE1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,WAAW,EAAE,eAAe,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;IACzE,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,UAAU,GACV,oBAAoB,GACpB,sBAAsB,GACtB,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,uBAAuB,GAAG,KAAK,CAAC;AAExG,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,sFAAsF;IACtF,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,WAAW,EAAE,eAAe,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uGAAuG;AACvG,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACnC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACnC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD;AAsFD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;gBAEpD,IAAI,EAAE,oBAAoB;IAoBtC,+CAA+C;IAC/C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM;IAI9G,OAAO,CAAC,MAAM;IAcd;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI;IAgFnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAKrC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAOvD,IAAI,CAAC,MAAM,GAAE,UAAe,GAAG,aAAa,EAAE;IAoB9C;;;OAGG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,uBAAuB,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC,CAAC,EAC/N,OAAO,EAAE,MAAM,GACd,YAAY;IAqCf,4EAA4E;IAC5E,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAWjD;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG;QACxC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,aAAa,EAAE,MAAM,CAAC;KACvB;IA2BD;;;;;;OAMG;IACH,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,GAAG,IAAI;IA4C9D,OAAO,CAAC,cAAc;IAQtB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAK5C,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAK/D,YAAY,CAAC,MAAM,GAAE,iBAAsB,GAAG,aAAa,EAAE;IAgB7D,aAAa,CACX,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,WAAW,CAAC,CAAC,EAC5L,OAAO,EAAE,MAAM,GACd,mBAAmB;IA4BtB,OAAO,CAAC,YAAY;IA2BpB,sFAAsF;IACtF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,oBAAoB;IAK7D,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,WAAW;CA8BpB"}
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
- this.db
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
- .run({
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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"}
@@ -69,6 +69,7 @@ export declare class AgentServer {
69
69
  private mentorReplyJsonlPath;
70
70
  private failureLedger;
71
71
  private failureAttributionEngine;
72
+ private ciFailurePoller;
72
73
  private burnDetector;
73
74
  private burnThrottleRunbook;
74
75
  private burnVerifier;