instar 1.3.871 → 1.3.873
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/core/stallCoverageValidator.d.ts +116 -0
- package/dist/core/stallCoverageValidator.d.ts.map +1 -0
- package/dist/core/stallCoverageValidator.js +582 -0
- package/dist/core/stallCoverageValidator.js.map +1 -0
- package/dist/data/stall-classes.d.ts +77 -0
- package/dist/data/stall-classes.d.ts.map +1 -0
- package/dist/data/stall-classes.js +141 -0
- package/dist/data/stall-classes.js.map +1 -0
- package/dist/monitoring/AutonomousLivenessReconciler.d.ts +3 -0
- package/dist/monitoring/AutonomousLivenessReconciler.d.ts.map +1 -1
- package/dist/monitoring/AutonomousLivenessReconciler.js +56 -1
- package/dist/monitoring/AutonomousLivenessReconciler.js.map +1 -1
- package/dist/monitoring/DuplicateSessionReconciler.d.ts +4 -0
- package/dist/monitoring/DuplicateSessionReconciler.d.ts.map +1 -1
- package/dist/monitoring/DuplicateSessionReconciler.js +56 -0
- package/dist/monitoring/DuplicateSessionReconciler.js.map +1 -1
- package/package.json +1 -1
- package/scripts/stall-class-codemod.mjs +121 -0
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/stall-classes.ts +173 -0
- package/upgrades/1.3.872.md +28 -0
- package/upgrades/1.3.873.md +30 -0
- package/upgrades/side-effects/duplicate-safety-outcome-linked-soak.md +82 -0
- package/upgrades/side-effects/stall-coverage-matrix-pr-a.md +153 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* stallCoverageValidator — the single validator for framework stall-coverage
|
|
3
|
+
* matrices (docs/frameworks/<framework>-stall-coverage.md).
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/framework-stall-coverage-matrix.md (§2.2, §3.1, §3.2)
|
|
6
|
+
*
|
|
7
|
+
* ONE module, TWO callsites (spec §3.2). This file implements the HERMETIC
|
|
8
|
+
* half only — the CI-ratchet callsite (tests/unit/stall-coverage-ratchet.test.ts):
|
|
9
|
+
* schema, status tokens, canonical-class completeness, symbol existence under
|
|
10
|
+
* the path jail, evidence containment + push-suite collection, ref FORMAT,
|
|
11
|
+
* and the calendar aging ratchet. The NON-hermetic checks (closePath/issueRef
|
|
12
|
+
* LIVENESS against the commitments ledger, guardKey posture cross-check
|
|
13
|
+
* against /guards) belong to the PR-B runtime-gate callsite; the `deps`
|
|
14
|
+
* injection seam below is where those checkers plug in without changing the
|
|
15
|
+
* result shape (issues/warnings arrays absorb new rules additively).
|
|
16
|
+
*
|
|
17
|
+
* Refusal hygiene (spec Frontloaded Decision 16): every issue message
|
|
18
|
+
* references the class id (only when canonical) + the rule name — rejected
|
|
19
|
+
* raw field content is NEVER echoed into messages.
|
|
20
|
+
*/
|
|
21
|
+
/** One parsed `stall-coverage:` front-matter row (fields as authored). */
|
|
22
|
+
export interface StallMatrixRow {
|
|
23
|
+
class?: string;
|
|
24
|
+
status?: string;
|
|
25
|
+
reason?: string;
|
|
26
|
+
detector?: string;
|
|
27
|
+
recovery?: string;
|
|
28
|
+
guardKey?: string;
|
|
29
|
+
posture?: string;
|
|
30
|
+
evidence?: string;
|
|
31
|
+
issueRef?: string;
|
|
32
|
+
closePath?: string;
|
|
33
|
+
seededAt?: string;
|
|
34
|
+
acceptanceRef?: string;
|
|
35
|
+
revalidateOn?: string;
|
|
36
|
+
'liveness-surface'?: string;
|
|
37
|
+
matchedClasses?: string[];
|
|
38
|
+
}
|
|
39
|
+
export interface StallMatrixIssue {
|
|
40
|
+
/** Canonical class id — set ONLY when the row's class is canonical (an
|
|
41
|
+
* unknown class id is rejected content and never echoed). */
|
|
42
|
+
classId?: string;
|
|
43
|
+
/** Stable kebab rule name. */
|
|
44
|
+
rule: string;
|
|
45
|
+
/** References class id + rule name only — never rejected raw field content. */
|
|
46
|
+
message: string;
|
|
47
|
+
}
|
|
48
|
+
/** Per-row verification record (spec §3.2): the validator's verdict is
|
|
49
|
+
* STRUCTURAL — `mechanically-verified: presence-only` on every row, so no
|
|
50
|
+
* downstream surface (the PR-B gate report included) can present `covered`
|
|
51
|
+
* as semantically proven. Whether a covered claim is TRUE stays with the
|
|
52
|
+
* overseer. */
|
|
53
|
+
export interface StallMatrixRowRecord {
|
|
54
|
+
classId: string;
|
|
55
|
+
status: string;
|
|
56
|
+
mechanicallyVerified: 'presence-only';
|
|
57
|
+
}
|
|
58
|
+
export interface StallMatrixResult {
|
|
59
|
+
framework: string;
|
|
60
|
+
filePath: string;
|
|
61
|
+
valid: boolean;
|
|
62
|
+
issues: StallMatrixIssue[];
|
|
63
|
+
warnings: StallMatrixIssue[];
|
|
64
|
+
rowCount: number;
|
|
65
|
+
/** One record per canonical-class row (spec §3.2 presence-only marker). */
|
|
66
|
+
rows: StallMatrixRowRecord[];
|
|
67
|
+
/** sha256 of the exact file bytes validated (single read). */
|
|
68
|
+
contentHash: string;
|
|
69
|
+
}
|
|
70
|
+
export interface StallMatrixSetResult {
|
|
71
|
+
valid: boolean;
|
|
72
|
+
/** Set-level issues (e.g. matrix-file-missing). */
|
|
73
|
+
issues: StallMatrixIssue[];
|
|
74
|
+
results: StallMatrixResult[];
|
|
75
|
+
}
|
|
76
|
+
/** Injection seam for tests AND for the PR-B non-hermetic checkers. */
|
|
77
|
+
export interface StallCoverageValidatorDeps {
|
|
78
|
+
/** Dotted guard-inventory keys (default: GUARD_MANIFEST keys). */
|
|
79
|
+
guardManifestKeys?: ReadonlySet<string>;
|
|
80
|
+
/** Manifest-exempt component → exemption reason (default: NOT_A_GUARD). */
|
|
81
|
+
notAGuardComponents?: ReadonlyMap<string, string>;
|
|
82
|
+
/** Canonical class ids (default: STALL_CLASSES ids). */
|
|
83
|
+
stallClassIds?: readonly string[];
|
|
84
|
+
/** Frameworks that must carry a matrix file (default: REQUIRED_MATRIX_FRAMEWORKS). */
|
|
85
|
+
requiredFrameworks?: readonly string[];
|
|
86
|
+
/** Repo-relative path of the push-suite vitest config (default vitest.push.config.ts). */
|
|
87
|
+
pushConfigPath?: string;
|
|
88
|
+
}
|
|
89
|
+
/** Minimal glob matcher supporting `**` and `*` — no new dependencies. */
|
|
90
|
+
export declare function globToRegExp(glob: string): RegExp;
|
|
91
|
+
/** Statically extract the include globs + FLAKY_TESTS entries from the push
|
|
92
|
+
* config TEXT (never executes the config). Null = unparseable (fails closed
|
|
93
|
+
* at the callsite via push-config-unparseable). */
|
|
94
|
+
export declare function parsePushSuiteSets(text: string): {
|
|
95
|
+
includes: RegExp[];
|
|
96
|
+
flaky: RegExp[];
|
|
97
|
+
} | null;
|
|
98
|
+
export declare function validateStallMatrixFile(args: {
|
|
99
|
+
repoRoot: string;
|
|
100
|
+
filePath: string;
|
|
101
|
+
now?: Date;
|
|
102
|
+
deps?: StallCoverageValidatorDeps;
|
|
103
|
+
}): StallMatrixResult;
|
|
104
|
+
export declare function validateAllStallMatrices(args: {
|
|
105
|
+
repoRoot: string;
|
|
106
|
+
now?: Date;
|
|
107
|
+
deps?: StallCoverageValidatorDeps;
|
|
108
|
+
}): StallMatrixSetResult;
|
|
109
|
+
export declare function validateSpecTableAgreement(args: {
|
|
110
|
+
repoRoot: string;
|
|
111
|
+
deps?: StallCoverageValidatorDeps;
|
|
112
|
+
}): {
|
|
113
|
+
valid: boolean;
|
|
114
|
+
issues: StallMatrixIssue[];
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=stallCoverageValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stallCoverageValidator.d.ts","sourceRoot":"","sources":["../../src/core/stallCoverageValidator.ts"],"names":[],"mappings":"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"}
|