@telora/daemon 0.23.12 → 0.23.14

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 (73) hide show
  1. package/build-info.json +2 -2
  2. package/dist/composition/attribution-base-git.d.ts.map +1 -1
  3. package/dist/composition/attribution-base-git.js +3 -1
  4. package/dist/composition/attribution-base-git.js.map +1 -1
  5. package/dist/composition/verification-context.d.ts.map +1 -1
  6. package/dist/composition/verification-context.js +21 -4
  7. package/dist/composition/verification-context.js.map +1 -1
  8. package/dist/queries/verification/verification.js +1 -1
  9. package/dist/testing/fixtures/verification-deps.d.ts +2 -1
  10. package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
  11. package/dist/testing/fixtures/verification-deps.js +4 -1
  12. package/dist/testing/fixtures/verification-deps.js.map +1 -1
  13. package/dist/testing/fixtures/vitest-failure-log.d.ts +10 -0
  14. package/dist/testing/fixtures/vitest-failure-log.d.ts.map +1 -0
  15. package/dist/testing/fixtures/vitest-failure-log.js +27 -0
  16. package/dist/testing/fixtures/vitest-failure-log.js.map +1 -0
  17. package/dist/verify/attribution/verification-attribution.d.ts.map +1 -1
  18. package/dist/verify/attribution/verification-attribution.js +2 -1
  19. package/dist/verify/attribution/verification-attribution.js.map +1 -1
  20. package/dist/verify/attribution/verification-baseline-files.d.ts +29 -0
  21. package/dist/verify/attribution/verification-baseline-files.d.ts.map +1 -0
  22. package/dist/verify/attribution/verification-baseline-files.js +125 -0
  23. package/dist/verify/attribution/verification-baseline-files.js.map +1 -0
  24. package/dist/verify/attribution/verification-baseline-run.d.ts.map +1 -1
  25. package/dist/verify/attribution/verification-baseline-run.js +1 -0
  26. package/dist/verify/attribution/verification-baseline-run.js.map +1 -1
  27. package/dist/verify/attribution/verification-baseline.d.ts +15 -0
  28. package/dist/verify/attribution/verification-baseline.d.ts.map +1 -1
  29. package/dist/verify/attribution/verification-baseline.js +28 -3
  30. package/dist/verify/attribution/verification-baseline.js.map +1 -1
  31. package/dist/verify/deterministic-gate/verification-checkout.d.ts.map +1 -1
  32. package/dist/verify/deterministic-gate/verification-checkout.js +1 -0
  33. package/dist/verify/deterministic-gate/verification-checkout.js.map +1 -1
  34. package/dist/verify/deterministic-gate/verification-deterministic.d.ts +30 -0
  35. package/dist/verify/deterministic-gate/verification-deterministic.d.ts.map +1 -1
  36. package/dist/verify/deterministic-gate/verification-deterministic.js +2 -0
  37. package/dist/verify/deterministic-gate/verification-deterministic.js.map +1 -1
  38. package/dist/verify/deterministic-gate/verification-gate-stages.d.ts.map +1 -1
  39. package/dist/verify/deterministic-gate/verification-gate-stages.js +1 -0
  40. package/dist/verify/deterministic-gate/verification-gate-stages.js.map +1 -1
  41. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  42. package/dist/verify/engine/verification-commit-sharing.js +14 -2
  43. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  44. package/dist/verify/engine/verification-deps.d.ts +23 -0
  45. package/dist/verify/engine/verification-deps.d.ts.map +1 -1
  46. package/dist/verify/failing-test-rerun/failing-test-rerunner.d.ts +34 -0
  47. package/dist/verify/failing-test-rerun/failing-test-rerunner.d.ts.map +1 -0
  48. package/dist/verify/failing-test-rerun/failing-test-rerunner.js +34 -0
  49. package/dist/verify/failing-test-rerun/failing-test-rerunner.js.map +1 -0
  50. package/dist/verify/failing-test-rerun/failing-test-retry.d.ts +80 -0
  51. package/dist/verify/failing-test-rerun/failing-test-retry.d.ts.map +1 -0
  52. package/dist/verify/failing-test-rerun/failing-test-retry.js +102 -0
  53. package/dist/verify/failing-test-rerun/failing-test-retry.js.map +1 -0
  54. package/dist/verify/failing-test-rerun/flaky-test-finding.d.ts +11 -0
  55. package/dist/verify/failing-test-rerun/flaky-test-finding.d.ts.map +1 -0
  56. package/dist/verify/failing-test-rerun/flaky-test-finding.js +63 -0
  57. package/dist/verify/failing-test-rerun/flaky-test-finding.js.map +1 -0
  58. package/dist/verify/failing-test-rerun/rerun-command.d.ts +45 -0
  59. package/dist/verify/failing-test-rerun/rerun-command.d.ts.map +1 -0
  60. package/dist/verify/failing-test-rerun/rerun-command.js +132 -0
  61. package/dist/verify/failing-test-rerun/rerun-command.js.map +1 -0
  62. package/dist/verify/failing-test-rerun/rework-recheck.d.ts +41 -0
  63. package/dist/verify/failing-test-rerun/rework-recheck.d.ts.map +1 -0
  64. package/dist/verify/failing-test-rerun/rework-recheck.js +169 -0
  65. package/dist/verify/failing-test-rerun/rework-recheck.js.map +1 -0
  66. package/dist/verify/gate-config/verification-config.d.ts.map +1 -1
  67. package/dist/verify/gate-config/verification-config.js +16 -2
  68. package/dist/verify/gate-config/verification-config.js.map +1 -1
  69. package/dist/verify/gate-config/verification-manifest.d.ts +26 -1
  70. package/dist/verify/gate-config/verification-manifest.d.ts.map +1 -1
  71. package/dist/verify/gate-config/verification-manifest.js +31 -1
  72. package/dist/verify/gate-config/verification-manifest.js.map +1 -1
  73. package/package.json +1 -1
@@ -0,0 +1,132 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/verify/failing-test-rerun/rerun-command.test.ts
3
+ // PINNED-BY-END
4
+ /**
5
+ * The pure core of answering a small gate failure through a product's DECLARED
6
+ * per-file re-run command (telora.verify.json `rerunCommand`): which failures
7
+ * are small enough to be answered that way, which test FILES they name, and the
8
+ * command that re-runs exactly those files.
9
+ *
10
+ * Why a declared command and never a derived one: the daemon cannot know how a
11
+ * product runs one test file (vitest, jest, node:test, a workspace runner, a
12
+ * wrapper script). falsifier/falsifier-command.ts guesses that for Telora's own
13
+ * layout only; generalising its guess would run the wrong thing in another
14
+ * product and read the silence as a verdict. So the product declares the
15
+ * command, the daemon substitutes the files, and a product that declares none
16
+ * keeps paying whole-gate runs exactly as before.
17
+ *
18
+ * Why a failing id must name its FILE, or nothing is re-run: a re-run of a
19
+ * subset that silently left out one failing test would read as a pass on the
20
+ * rest. A failure set any of whose ids names no test file (a node:test TAP id
21
+ * carries only the test's description) is not answered by a re-run at all.
22
+ *
23
+ * Decisions (reasoning: docs/daemon/history-verify.md, verify/failing-test-rerun/):
24
+ * - FAILURE-SET CEILING: DEFAULT_RERUN_MAX_FAILURES (5,
25
+ * gate-config/verification-manifest.ts), overridable per product with
26
+ * `rerunMaxFailures`. A flake is one or two tests; a red of dozens is a
27
+ * change, and re-running it file by file buys nothing a whole run does not.
28
+ * - RETRY COUNT: RERUN_RETRY_ATTEMPTS (2). One retry catches most order and
29
+ * timing flakes; a second separates "flaky" from "fails half the time" at
30
+ * the cost of one more small run. Fixed, not configurable: the count is what
31
+ * makes "passed on retry" a uniform claim across products.
32
+ *
33
+ * @module verify/failing-test-rerun/rerun-command
34
+ */
35
+ import { parseFailingTests } from '../deterministic-gate/verification-failure-parser.js';
36
+ import { RERUN_FILES_PLACEHOLDER } from '../gate-config/verification-manifest.js';
37
+ /** How many times a failing set is re-run on the same commit before it is charged. */
38
+ export const RERUN_RETRY_ATTEMPTS = 2;
39
+ /** A test file path: a token ending in a JS/TS source extension. */
40
+ const TEST_FILE_PATH = /^\S+\.[cm]?[jt]sx?$/;
41
+ /** A vitest workspace project label preceding the file: `|web| tests/a.test.ts > ...`. */
42
+ const PROJECT_LABEL = /^\|[^|]+\|\s+/;
43
+ /** The daemon's own checkout directories: `<state>/verification-checkout/<key>/`. */
44
+ const DAEMON_CHECKOUT_PREFIX = /^(?:\/[^\s/]+)*\/verification-(?:checkout|baseline-wt)\/[^\s/]+\//;
45
+ /**
46
+ * The checkout-relative test file a failing-test id names, or null when it
47
+ * names none. Ids are `<file> > <suite path> > <test>` (vitest's reporters,
48
+ * verification-failure-parser.ts) or a bare `<file>` (a file that failed to
49
+ * load). An absolute path is made relative to the run's root (`roots`: the
50
+ * `(cwd: ...)` a gate log opens with) or to a daemon checkout directory; an
51
+ * absolute path under neither is not one this checkout can name. Pure.
52
+ */
53
+ export function testFileOfId(id, roots) {
54
+ const head = (id.split(' > ')[0] ?? '').replace(PROJECT_LABEL, '').trim();
55
+ if (!TEST_FILE_PATH.test(head))
56
+ return null;
57
+ if (!head.startsWith('/'))
58
+ return head.replace(/^\.\//, '');
59
+ for (const root of roots) {
60
+ const prefix = `${root.replace(/\/+$/, '')}/`;
61
+ if (prefix.length > 1 && head.startsWith(prefix))
62
+ return head.slice(prefix.length);
63
+ }
64
+ const underCheckout = head.replace(DAEMON_CHECKOUT_PREFIX, '');
65
+ return underCheckout !== head ? underCheckout : null;
66
+ }
67
+ /**
68
+ * The distinct test files a failure set names, sorted, or null when ANY id names
69
+ * none (module doc: a subset re-run must never leave a failing test out). Pure.
70
+ */
71
+ export function testFilesOf(ids, roots) {
72
+ const files = new Set();
73
+ for (const id of ids) {
74
+ const file = testFileOfId(id, roots);
75
+ if (file === null)
76
+ return null;
77
+ files.add(file);
78
+ }
79
+ return [...files].sort();
80
+ }
81
+ /**
82
+ * A failing id with its file made checkout-relative, so the same test failing in
83
+ * two checkouts (the HEAD checkout and the base checkout, or two re-runs) yields
84
+ * one id. An id that names no file is returned unchanged. Pure.
85
+ */
86
+ export function normalizeTestId(id, roots) {
87
+ const parts = id.split(' > ');
88
+ const file = testFileOfId(id, roots);
89
+ if (file === null)
90
+ return id;
91
+ const label = PROJECT_LABEL.exec(parts[0] ?? '')?.[0] ?? '';
92
+ return [`${label}${file}`, ...parts.slice(1)].join(' > ');
93
+ }
94
+ /** POSIX single-quote one shell word. Pure. */
95
+ function shellQuote(word) {
96
+ return /^[A-Za-z0-9_./@%+=:,-]+$/.test(word) ? word : `'${word.replace(/'/g, `'\\''`)}'`;
97
+ }
98
+ /** The declared re-run command with the files substituted for every `{files}`. Pure. */
99
+ export function renderRerunCommand(template, files) {
100
+ return template.split(RERUN_FILES_PLACEHOLDER).join(files.map(shellQuote).join(' '));
101
+ }
102
+ /**
103
+ * Whether a failed run's failing tests are answered by the declared re-run
104
+ * command, and the command that does it. Not when the product declares none,
105
+ * when the run named no failing test, when it named more than the ceiling, or
106
+ * when any failing id names no test file. Pure.
107
+ */
108
+ export function planRerun(logText, rerun) {
109
+ if (!rerun)
110
+ return { kind: 'not_rerun', reason: 'the product declares no rerunCommand' };
111
+ const ids = [...parseFailingTests(logText)].sort();
112
+ if (ids.length === 0)
113
+ return { kind: 'not_rerun', reason: 'the run named no failing test' };
114
+ if (ids.length > rerun.maxFailures) {
115
+ return { kind: 'not_rerun', reason: `the run failed ${ids.length} tests, more than the ${rerun.maxFailures} a re-run answers` };
116
+ }
117
+ const files = testFilesOf(ids, logRoots(logText));
118
+ if (files === null)
119
+ return { kind: 'not_rerun', reason: 'a failing test id names no test file' };
120
+ return { kind: 'rerun', ids, files, command: renderRerunCommand(rerun.command, files) };
121
+ }
122
+ /** The `(cwd: <path>)` roots a deterministic run's log opens with. Pure. */
123
+ export function logRoots(logText) {
124
+ const roots = [];
125
+ for (const line of (typeof logText === 'string' ? logText : '').split(/\r?\n/)) {
126
+ const match = /^\(cwd: (.+)\)$/.exec(line.trim());
127
+ if (match?.[1])
128
+ roots.push(match[1].trim());
129
+ }
130
+ return roots;
131
+ }
132
+ //# sourceMappingURL=rerun-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rerun-command.js","sourceRoot":"","sources":["../../../src/verify/failing-test-rerun/rerun-command.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iFAAiF;AACjF,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGlF,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,oEAAoE;AACpE,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,0FAA0F;AAC1F,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,qFAAqF;AACrF,MAAM,sBAAsB,GAAG,mEAAmE,CAAC;AAEnG;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,KAAwB;IAC/D,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAqB,EAAE,KAAwB;IACzE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,KAAwB;IAClE,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,+CAA+C;AAC/C,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC3F,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAwB;IAC3E,OAAO,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvF,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAgC;IACzE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IACzF,MAAM,GAAG,GAAG,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;IAC5F,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,GAAG,CAAC,MAAM,yBAAyB,KAAK,CAAC,WAAW,mBAAmB,EAAE,CAAC;IAClI,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IACjG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { PendingVerification } from '../../queries/verification/verification.js';
2
+ import type { StrategyResult } from '../deterministic-gate/verification-deterministic.js';
3
+ import type { VerificationDeps } from '../engine/verification-deps.js';
4
+ /** The failing tests a delivery's last verdict charged, to be re-checked at its next commit. */
5
+ export interface ReworkRecheckRecord {
6
+ deliveryId: string;
7
+ /** The commit they failed on. */
8
+ failedAtSha: string;
9
+ tests: string[];
10
+ files: string[];
11
+ recordedAt: string;
12
+ }
13
+ /** Where re-check records are kept. Production: one JSON file per delivery under the state dir. */
14
+ export interface ReworkRecheckStore {
15
+ read: (deliveryId: string) => ReworkRecheckRecord | null;
16
+ write: (record: ReworkRecheckRecord) => void;
17
+ clear: (deliveryId: string) => void;
18
+ }
19
+ /** Validate a record read back from disk; null when it is not one. Pure. */
20
+ export declare function parseReworkRecheckRecord(value: unknown): ReworkRecheckRecord | null;
21
+ /** The file-backed store (module doc). Best-effort: a write or clear that fails is logged, never thrown. */
22
+ export declare const fileReworkRecheckStore: ReworkRecheckStore;
23
+ /**
24
+ * Keep the delivery's re-check record in step with the verdict just rendered:
25
+ * a FAILED verdict at a known commit whose charged tests the declared re-run
26
+ * command can name is recorded; a pass, or a failure it cannot name (a lint
27
+ * red, a large set, no declaration), removes the record. A run that rendered
28
+ * no verdict changes nothing. The log is read only when a re-run command is declared.
29
+ */
30
+ export declare function noteReworkRecheck(v: PendingVerification, result: StrategyResult, readLogText: () => string, store: ReworkRecheckStore, now?: Date): void;
31
+ /** The record a failed verdict leaves, or null when it charges nothing the re-run command can name. Pure. */
32
+ export declare function recheckRecordOf(v: PendingVerification, result: StrategyResult, logText: string, now: Date): ReworkRecheckRecord | null;
33
+ /** The deps the re-check reaches reality through. */
34
+ export type ReworkRecheckDeps = Pick<VerificationDeps, 'reworkRecheck' | 'resolveFocusHeadSha' | 'runFailingTestRerun' | 'fileFlakyTestFinding'>;
35
+ /**
36
+ * Re-check the delivery's previously failing tests at the focus HEAD (module
37
+ * doc): the still-red result -- the verdict for that commit, no whole gate run
38
+ * -- or null, when the whole gate must run.
39
+ */
40
+ export declare function recheckPreviouslyFailing(v: PendingVerification, deps: ReworkRecheckDeps): Promise<StrategyResult | null>;
41
+ //# sourceMappingURL=rework-recheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rework-recheck.d.ts","sourceRoot":"","sources":["../../../src/verify/failing-test-rerun/rework-recheck.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAOvE,gGAAgG;AAChG,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,mGAAmG;AACnG,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,mBAAmB,GAAG,IAAI,CAAC;IACzD,KAAK,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC7C,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAMD,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAMnF;AAED,4GAA4G;AAC5G,eAAO,MAAM,sBAAsB,EAAE,kBA0BpC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,mBAAmB,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,MAAM,EACzB,KAAK,EAAE,kBAAkB,EACzB,GAAG,GAAE,IAAiB,GACrB,IAAI,CAMN;AAED,6GAA6G;AAC7G,wBAAgB,eAAe,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAgBtI;AAED,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,sBAAsB,CAAC,CAAC;AAEjJ;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAsB9H"}
@@ -0,0 +1,169 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/verify/failing-test-rerun/rework-recheck.test.ts
3
+ // PINNED-BY-END
4
+ /**
5
+ * After a rework commit, re-check the tests that failed first: a still-red
6
+ * rework goes back to coding without a whole-gate run.
7
+ *
8
+ * A delivery charged with N failing tests comes back with a commit that claims
9
+ * to fix them. The cheapest question that can refute the claim is "do those
10
+ * tests still fail?" -- and the whole gate is the most expensive way to ask it.
11
+ * So when the delivery's last verdict charged a small set of failing tests the
12
+ * product's declared re-run command can name (rerun-command.ts planRerun), the
13
+ * set is RECORDED against the delivery (noteReworkRecheck), and the next
14
+ * dispatch at a NEW commit re-runs those files first (recheckPreviouslyFailing):
15
+ * - any attempt passes => nothing is decided here; the whole gate runs, as
16
+ * before (the re-check refutes, it never vouches). A failed attempt followed
17
+ * by a pass is a flake and is filed like one.
18
+ * - every attempt (1 + RERUN_RETRY_ATTEMPTS) fails => that result IS the
19
+ * verdict for the commit: failed, attributed and routed to rework like any
20
+ * gate red, with no whole-gate run.
21
+ * - a run that renders no verdict about the commit (no checkout, a timeout,
22
+ * no rerunCommand declared there) => the whole gate runs.
23
+ *
24
+ * The record is keyed by delivery and kept under the daemon state dir, beside
25
+ * the per-commit verdict records: it outlives the gate_state clears a rework
26
+ * cycle makes, and a pass removes it. A record whose commit is the HEAD being
27
+ * judged asks nothing (that commit already has its verdict).
28
+ *
29
+ * @module verify/failing-test-rerun/rework-recheck
30
+ */
31
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
32
+ import { resolve } from 'node:path';
33
+ import { resolveGlobalStateDir } from '../../daemon-state/daemon-process.js';
34
+ import { logRoots, planRerun, RERUN_RETRY_ATTEMPTS, testFilesOf } from './rerun-command.js';
35
+ import { rerunUntilPass } from './failing-test-retry.js';
36
+ import { createLogger } from '../../log/daemon-log.js';
37
+ const log = createLogger({ module: 'verification' });
38
+ const recheckDir = () => resolve(resolveGlobalStateDir(), 'verification-rework-recheck');
39
+ const recheckPath = (deliveryId) => resolve(recheckDir(), `${deliveryId.replace(/[^a-zA-Z0-9._-]/g, '_')}.json`);
40
+ const isStringArray = (value) => Array.isArray(value) && value.every((item) => typeof item === 'string');
41
+ /** Validate a record read back from disk; null when it is not one. Pure. */
42
+ export function parseReworkRecheckRecord(value) {
43
+ if (value === null || typeof value !== 'object')
44
+ return null;
45
+ const { deliveryId, failedAtSha, tests, files, recordedAt } = value;
46
+ if (typeof deliveryId !== 'string' || typeof failedAtSha !== 'string' || failedAtSha === '' || typeof recordedAt !== 'string')
47
+ return null;
48
+ if (!isStringArray(tests) || !isStringArray(files) || files.length === 0)
49
+ return null;
50
+ return { deliveryId, failedAtSha, tests: [...tests], files: [...files], recordedAt };
51
+ }
52
+ /** The file-backed store (module doc). Best-effort: a write or clear that fails is logged, never thrown. */
53
+ export const fileReworkRecheckStore = {
54
+ read: (deliveryId) => {
55
+ const path = recheckPath(deliveryId);
56
+ if (!existsSync(path))
57
+ return null;
58
+ try {
59
+ const record = parseReworkRecheckRecord(JSON.parse(readFileSync(path, 'utf8')));
60
+ return record?.deliveryId === deliveryId ? record : null;
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ },
66
+ write: (record) => {
67
+ try {
68
+ mkdirSync(recheckDir(), { recursive: true });
69
+ writeFileSync(recheckPath(record.deliveryId), JSON.stringify(record, null, 2), { mode: 0o600 });
70
+ }
71
+ catch (err) {
72
+ log.warn(`failed to write the rework re-check record for delivery ${record.deliveryId}:`, err.message);
73
+ }
74
+ },
75
+ clear: (deliveryId) => {
76
+ try {
77
+ rmSync(recheckPath(deliveryId), { force: true });
78
+ }
79
+ catch (err) {
80
+ log.warn(`failed to clear the rework re-check record for delivery ${deliveryId}:`, err.message);
81
+ }
82
+ },
83
+ };
84
+ /**
85
+ * Keep the delivery's re-check record in step with the verdict just rendered:
86
+ * a FAILED verdict at a known commit whose charged tests the declared re-run
87
+ * command can name is recorded; a pass, or a failure it cannot name (a lint
88
+ * red, a large set, no declaration), removes the record. A run that rendered
89
+ * no verdict changes nothing. The log is read only when a re-run command is declared.
90
+ */
91
+ export function noteReworkRecheck(v, result, readLogText, store, now = new Date()) {
92
+ if (result.outcome === 'passed')
93
+ return store.clear(v.deliveryId);
94
+ if (result.outcome !== 'failed')
95
+ return;
96
+ const record = result.appliedConfig?.rerun ? recheckRecordOf(v, result, readLogText(), now) : null;
97
+ if (record)
98
+ store.write(record);
99
+ else
100
+ store.clear(v.deliveryId);
101
+ }
102
+ /** The record a failed verdict leaves, or null when it charges nothing the re-run command can name. Pure. */
103
+ export function recheckRecordOf(v, result, logText, now) {
104
+ const sha = result.verifiedSha;
105
+ const rerun = result.appliedConfig?.rerun;
106
+ if (!sha || !rerun || result.timedOut)
107
+ return null;
108
+ // Charged tests: attribution's NEW failures when it ran, else every failing test the run named.
109
+ const charged = result.newFailures;
110
+ if (charged === undefined) {
111
+ const plan = planRerun(logText, rerun);
112
+ return plan.kind === 'rerun'
113
+ ? { deliveryId: v.deliveryId, failedAtSha: sha, tests: plan.ids, files: plan.files, recordedAt: now.toISOString() }
114
+ : null;
115
+ }
116
+ if (charged.length === 0 || charged.length > rerun.maxFailures)
117
+ return null;
118
+ const files = testFilesOf(charged, logRoots(logText));
119
+ if (files === null)
120
+ return null;
121
+ return { deliveryId: v.deliveryId, failedAtSha: sha, tests: [...charged].sort(), files, recordedAt: now.toISOString() };
122
+ }
123
+ /**
124
+ * Re-check the delivery's previously failing tests at the focus HEAD (module
125
+ * doc): the still-red result -- the verdict for that commit, no whole gate run
126
+ * -- or null, when the whole gate must run.
127
+ */
128
+ export async function recheckPreviouslyFailing(v, deps) {
129
+ const record = deps.reworkRecheck.read(v.deliveryId);
130
+ if (!record || !v.focusId || !v.defaultOnSource)
131
+ return null;
132
+ const head = deps.resolveFocusHeadSha(v.focusId);
133
+ if (!head || head === record.failedAtSha)
134
+ return null;
135
+ const reds = [];
136
+ const attempts = 1 + RERUN_RETRY_ATTEMPTS;
137
+ const passedOn = await rerunUntilPass(deps.runFailingTestRerun, v, record.files, head, attempts, (run) => reds.push(run));
138
+ if (passedOn === null)
139
+ return null;
140
+ if (passedOn > 0) {
141
+ if (reds.length > 0)
142
+ await fileRecheckFlake(v, record, head, passedOn, deps);
143
+ log.info(`[verification] delivery ${v.deliveryId}: the ${record.files.length} previously failing test file(s) pass at ` +
144
+ `${head.slice(0, 8)} -- the whole gate runs`);
145
+ return null;
146
+ }
147
+ const red = reds.at(-1);
148
+ if (!red)
149
+ return null;
150
+ return {
151
+ ...red,
152
+ rationale: `the ${record.tests.length} previously failing test(s) (${record.files.join(', ')}) still fail at ${head.slice(0, 8)} on the ` +
153
+ `declared re-run command (${attempts} run(s)) -- returned to rework without a whole-gate run`,
154
+ };
155
+ }
156
+ /** A re-check that failed and then passed is a flake: filed best-effort (the whole gate runs either way). */
157
+ async function fileRecheckFlake(v, record, head, passedOnAttempt, deps) {
158
+ const finding = {
159
+ productId: v.productId, focusId: v.focusId, deliveryId: v.deliveryId, deliveryName: v.deliveryName,
160
+ sha: head, tests: record.tests, files: record.files, passedOnAttempt, logPath: null, origin: 'rework_recheck',
161
+ };
162
+ try {
163
+ await deps.fileFlakyTestFinding(v, finding);
164
+ }
165
+ catch (err) {
166
+ log.warn(`[verification] delivery ${v.deliveryId}: the flaky-test finding from the rework re-check could not be filed: ${err.message}`);
167
+ }
168
+ }
169
+ //# sourceMappingURL=rework-recheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rework-recheck.js","sourceRoot":"","sources":["../../../src/verify/failing-test-rerun/rework-recheck.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verification-config.d.ts","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-config.d.ts","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 24 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/verify/gate-config/verification-config.ts
2
+ // Pinned by: 25 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/verify/gate-config/verification-config.ts
3
3
  // PINNED-BY-END
4
4
  import { loadEnvConfig, productLabel } from '@telora/daemon-core';
5
5
  import { resolveVerificationCarriage } from '../../config/config.js';
6
- import { resolveVerifyManifestPath, VERIFY_MANIFEST_FILENAME, } from './verification-manifest.js';
6
+ import { DEFAULT_RERUN_MAX_FAILURES, resolveVerifyManifestPath, VERIFY_MANIFEST_FILENAME, } from './verification-manifest.js';
7
7
  /** Default timeout for the default-on deterministic run: 30 min (full build+test sweep). */
8
8
  export const DEFAULT_VERIFY_TIMEOUT_MS = 30 * 60 * 1000;
9
9
  /** Default max concurrent daemon-side verification runs. */
@@ -134,6 +134,7 @@ export function resolveAppliedVerificationConfig(source, runPath, env, readManif
134
134
  const own = readManifest(path);
135
135
  if (own !== undefined) {
136
136
  read.manifestPath = verifiedManifestPath;
137
+ read.manifest = own;
137
138
  return own;
138
139
  }
139
140
  if (!source.repoPath || resolveVerifyManifestPath(source.repoPath) === verifiedManifestPath)
@@ -142,6 +143,7 @@ export function resolveAppliedVerificationConfig(source, runPath, env, readManif
142
143
  if (fallback !== undefined) {
143
144
  read.manifestPath = resolveVerifyManifestPath(source.repoPath);
144
145
  read.fallback = true;
146
+ read.manifest = fallback;
145
147
  }
146
148
  return fallback;
147
149
  };
@@ -159,8 +161,20 @@ export function resolveAppliedVerificationConfig(source, runPath, env, readManif
159
161
  verifiedManifestPath,
160
162
  ...(read.manifestPath !== undefined ? { manifestPath: read.manifestPath } : {}),
161
163
  ...(read.fallback ? { manifestFallback: true } : {}),
164
+ ...declaredRerunOf(read.manifest),
162
165
  };
163
166
  }
167
+ /**
168
+ * The re-run declaration a manifest carries, as an applied config records it:
169
+ * its command and its failure-set ceiling (the manifest's, else the default).
170
+ * Read from the same manifest the command and timeout were, so a branch's
171
+ * declaration applies to the runs of that branch. Pure.
172
+ */
173
+ function declaredRerunOf(manifest) {
174
+ if (manifest?.rerunCommand === undefined)
175
+ return {};
176
+ return { rerun: { command: manifest.rerunCommand, maxFailures: manifest.rerunMaxFailures ?? DEFAULT_RERUN_MAX_FAILURES } };
177
+ }
164
178
  /**
165
179
  * Derive the verification posture for one (product-scoped) config.
166
180
  *
@@ -1 +1 @@
1
- {"version":3,"file":"verification-config.js","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-config.js","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-config.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,30 @@ export interface VerifyManifest {
29
29
  * declares none is unaffected. Rationale: docs/runbook-verify-gate-command.md.
30
30
  */
31
31
  commitCheck?: string;
32
+ /**
33
+ * Optional command that runs NAMED test files, with the literal placeholder
34
+ * `{files}` where the daemon substitutes them (shell-quoted, space-separated),
35
+ * e.g. `npx vitest run {files}`. Run at the checkout root. Declared, the daemon
36
+ * answers a small gate failure by re-running only the failing files: a
37
+ * same-commit retry before the red is charged, a re-check after a rework
38
+ * commit, and base attribution of those files alone
39
+ * (verify/failing-test-rerun/). Absent => every one of those questions keeps
40
+ * costing whole-gate runs, exactly as before. The daemon never derives one by
41
+ * guessing paths: the product declares it. Rationale:
42
+ * docs/runbook-verify-gate-command.md, "The re-run command".
43
+ */
44
+ rerunCommand?: string;
45
+ /**
46
+ * The most failing tests a run may report and still be answered through
47
+ * `rerunCommand` (a positive integer). Omitted => DEFAULT_RERUN_MAX_FAILURES.
48
+ * A larger red is not a flake: it is attributed and charged exactly as before.
49
+ */
50
+ rerunMaxFailures?: number;
32
51
  }
52
+ /** The placeholder a `rerunCommand` names the failing test files with. */
53
+ export declare const RERUN_FILES_PLACEHOLDER = "{files}";
54
+ /** The failure-set ceiling a manifest that declares a `rerunCommand` but no `rerunMaxFailures` gets. */
55
+ export declare const DEFAULT_RERUN_MAX_FAILURES = 5;
33
56
  /**
34
57
  * The file-system seam the manifest is read through (existence + read):
35
58
  * readVerifyManifestFrom takes it as a required parameter, so a reader over the
@@ -56,7 +79,9 @@ export declare function resolveVerifyManifestPath(repoPath: string): string;
56
79
  * @throws Error naming the file path when the manifest exists but is
57
80
  * unreadable / not JSON / not an object / carries no usable `command`
58
81
  * / carries a non-positive `timeoutMs` or `maxConcurrent` / carries a
59
- * `commitCheck` that is not a non-empty string.
82
+ * `commitCheck` that is not a non-empty string / carries a
83
+ * `rerunCommand` without the `{files}` placeholder or a non-integer
84
+ * `rerunMaxFailures`.
60
85
  */
61
86
  export declare function readVerifyManifestFrom(repoPath: string | undefined, fs: VerifyManifestFs): VerifyManifest | undefined;
62
87
  /** Read the repo's verification manifest from the working tree on disk (see readVerifyManifestFrom). */
@@ -1 +1 @@
1
- {"version":3,"file":"verification-manifest.d.ts","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-manifest.ts"],"names":[],"mappings":"AAgFA;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAQD,qFAAqF;AACrF,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,GAAG,SAAS,CAAC;AAEhG,0DAA0D;AAC1D,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AA6CD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CA+CrH;AAED,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,EAAE,oBAAoF,CAAC;AAEtH;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,GAAG,SAAS,CAOzG"}
1
+ {"version":3,"file":"verification-manifest.d.ts","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-manifest.ts"],"names":[],"mappings":"AAgFA;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD,wGAAwG;AACxG,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAQD,qFAAqF;AACrF,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,GAAG,SAAS,CAAC;AAEhG,0DAA0D;AAC1D,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAoED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAiDrH;AAED,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,EAAE,oBAAoF,CAAC;AAEtH;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,GAAG,SAAS,CAOzG"}
@@ -84,6 +84,10 @@ import { resolve } from 'node:path';
84
84
  * trackable (`git check-ignore -v telora.verify.json` finds no match).
85
85
  */
86
86
  export const VERIFY_MANIFEST_FILENAME = 'telora.verify.json';
87
+ /** The placeholder a `rerunCommand` names the failing test files with. */
88
+ export const RERUN_FILES_PLACEHOLDER = '{files}';
89
+ /** The failure-set ceiling a manifest that declares a `rerunCommand` but no `rerunMaxFailures` gets. */
90
+ export const DEFAULT_RERUN_MAX_FAILURES = 5;
87
91
  /** The working tree on disk, as readVerifyManifest reads it. */
88
92
  const workingTreeFs = {
89
93
  exists: (path) => existsSync(path),
@@ -129,6 +133,28 @@ function optionalCommand(raw, key, path) {
129
133
  }
130
134
  return value;
131
135
  }
136
+ /**
137
+ * Validate the optional re-run declaration. A `rerunCommand` that cannot name
138
+ * the files (no `{files}` placeholder) or a `rerunMaxFailures` that is not a
139
+ * positive integer is malformed (loud), like every other present-but-wrong key.
140
+ */
141
+ function optionalRerun(raw, path) {
142
+ const rerunCommand = optionalCommand(raw, 'rerunCommand', path);
143
+ if (rerunCommand !== undefined && !rerunCommand.includes(RERUN_FILES_PLACEHOLDER)) {
144
+ manifestError(path, `"rerunCommand" must name the test files with the placeholder ${RERUN_FILES_PLACEHOLDER} (got ${JSON.stringify(rerunCommand)})`);
145
+ }
146
+ const rerunMaxFailures = raw.rerunMaxFailures;
147
+ if (rerunMaxFailures !== undefined && (typeof rerunMaxFailures !== 'number' || !Number.isInteger(rerunMaxFailures) || rerunMaxFailures <= 0)) {
148
+ manifestError(path, `"rerunMaxFailures" must be an integer > 0 (got ${JSON.stringify(rerunMaxFailures)})`);
149
+ }
150
+ if (rerunMaxFailures !== undefined && rerunCommand === undefined) {
151
+ manifestError(path, `"rerunMaxFailures" is set but no "rerunCommand" is declared -- it bounds nothing without one`);
152
+ }
153
+ return {
154
+ ...(rerunCommand !== undefined ? { rerunCommand } : {}),
155
+ ...(rerunMaxFailures !== undefined ? { rerunMaxFailures } : {}),
156
+ };
157
+ }
132
158
  /**
133
159
  * Read the repo's verification manifest through `fs`.
134
160
  *
@@ -139,7 +165,9 @@ function optionalCommand(raw, key, path) {
139
165
  * @throws Error naming the file path when the manifest exists but is
140
166
  * unreadable / not JSON / not an object / carries no usable `command`
141
167
  * / carries a non-positive `timeoutMs` or `maxConcurrent` / carries a
142
- * `commitCheck` that is not a non-empty string.
168
+ * `commitCheck` that is not a non-empty string / carries a
169
+ * `rerunCommand` without the `{files}` placeholder or a non-integer
170
+ * `rerunMaxFailures`.
143
171
  */
144
172
  export function readVerifyManifestFrom(repoPath, fs) {
145
173
  if (!repoPath)
@@ -177,11 +205,13 @@ export function readVerifyManifestFrom(repoPath, fs) {
177
205
  const timeoutMs = optionalPositiveNumber(raw, 'timeoutMs', path);
178
206
  const maxConcurrent = optionalPositiveNumber(raw, 'maxConcurrent', path);
179
207
  const commitCheck = optionalCommand(raw, 'commitCheck', path);
208
+ const rerun = optionalRerun(raw, path);
180
209
  return {
181
210
  command,
182
211
  ...(timeoutMs !== undefined ? { timeoutMs } : {}),
183
212
  ...(maxConcurrent !== undefined ? { maxConcurrent } : {}),
184
213
  ...(commitCheck !== undefined ? { commitCheck } : {}),
214
+ ...rerun,
185
215
  };
186
216
  }
187
217
  /** Read the repo's verification manifest from the working tree on disk (see readVerifyManifestFrom). */
@@ -1 +1 @@
1
- {"version":3,"file":"verification-manifest.js","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-manifest.js","sourceRoot":"","sources":["../../../src/verify/gate-config/verification-manifest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telora/daemon",
3
- "version": "0.23.12",
3
+ "version": "0.23.14",
4
4
  "description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
5
5
  "type": "module",
6
6
  "bin": {