instar 1.3.736 → 1.3.737
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/commands/devPreflight.d.ts +21 -0
- package/dist/commands/devPreflight.d.ts.map +1 -1
- package/dist/commands/devPreflight.js +36 -2
- package/dist/commands/devPreflight.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +30 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +13 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +12 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +12 -0
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
- package/dist/core/WriteDomainRegistry.js +22 -0
- package/dist/core/WriteDomainRegistry.js.map +1 -1
- package/dist/core/hostSemaphoreCore.d.ts +115 -0
- package/dist/core/hostSemaphoreCore.d.ts.map +1 -0
- package/dist/core/hostSemaphoreCore.js +215 -0
- package/dist/core/hostSemaphoreCore.js.map +1 -0
- package/dist/core/hostSpawnSemaphore.d.ts +8 -9
- package/dist/core/hostSpawnSemaphore.d.ts.map +1 -1
- package/dist/core/hostSpawnSemaphore.js +48 -126
- package/dist/core/hostSpawnSemaphore.js.map +1 -1
- package/dist/core/hostTestRunnerSemaphore.d.ts +492 -0
- package/dist/core/hostTestRunnerSemaphore.d.ts.map +1 -0
- package/dist/core/hostTestRunnerSemaphore.js +1648 -0
- package/dist/core/hostTestRunnerSemaphore.js.map +1 -0
- package/dist/core/testRunnerRunClassifier.d.ts +128 -0
- package/dist/core/testRunnerRunClassifier.d.ts.map +1 -0
- package/dist/core/testRunnerRunClassifier.js +382 -0
- package/dist/core/testRunnerRunClassifier.js.map +1 -0
- package/dist/core/types.d.ts +21 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/guardManifest.d.ts.map +1 -1
- package/dist/monitoring/guardManifest.js +26 -0
- package/dist/monitoring/guardManifest.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +7 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +9 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +150 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lib/test-runner-selfdisable-patterns.mjs +326 -0
- package/scripts/pre-push-test-runner-selfdisable.mjs +81 -0
- package/src/data/builtin-manifest.json +64 -64
- package/src/scaffold/templates.ts +7 -0
- package/upgrades/1.3.737.md +140 -0
- package/upgrades/side-effects/test-runner-concurrency-bound.md +173 -0
- package/upgrades/1.3.736.md +0 -57
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostTestRunnerSemaphore.js","sourceRoot":"","sources":["../../src/core/hostTestRunnerSemaphore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* testRunnerRunClassifier — run-class differentiation + skip detection for the
|
|
3
|
+
* test-runner concurrency bound (spec §2.3/§2.5/§2.6).
|
|
4
|
+
*
|
|
5
|
+
* Pure logic (no holders/lock I/O beyond an injected holders read + `ps`
|
|
6
|
+
* ancestry walk) so the vitest config-eval helper and the globalSetup
|
|
7
|
+
* chokepoint consume ONE shared classifier — the two evaluation points must
|
|
8
|
+
* never disagree in the dangerous direction, and sharing the code is how
|
|
9
|
+
* (State-Not-Symbol: the globalSetup additionally verifies the RESOLVED
|
|
10
|
+
* config's live pool bound — a symbol never binds the two points).
|
|
11
|
+
*
|
|
12
|
+
* CLASSIFICATION IS CONSERVATIVE BY PINNED DESIGN (§2.3): vitest positionals
|
|
13
|
+
* are substring FILTERS, not exact selectors, so a run is targeted ONLY if
|
|
14
|
+
* every positional matches EXACTLY ONE file under filter expansion against
|
|
15
|
+
* the resolved include set, the union is ≤ K files, and NO pool-shaping or
|
|
16
|
+
* filter flags are present. Every ambiguity routes suite-class (safe
|
|
17
|
+
* superset) — version drift can only ever mis-route toward the STRICTER lane.
|
|
18
|
+
*/
|
|
19
|
+
import { type TestLane, type TestRunClass } from './hostTestRunnerSemaphore.js';
|
|
20
|
+
export declare function findPoolShapingArgv(argv: string[]): string[];
|
|
21
|
+
/**
|
|
22
|
+
* Strip recognized pool-shaping flags (and their value token where the flag
|
|
23
|
+
* form takes one) from an argv array. Used by the nested CLI-proof clamp
|
|
24
|
+
* (§2.5) — the BELT alongside the config hard-set.
|
|
25
|
+
*
|
|
26
|
+
* VERSION NOTE (verified against vitest 2.1.9): mutating `process.argv` at
|
|
27
|
+
* config-eval is a NO-OP on this line — vitest's `cac` parser reads the CLI
|
|
28
|
+
* BEFORE the config module loads, so the pool flags are already resolved by
|
|
29
|
+
* the time this runs. The load-bearing CLI-proofness therefore comes from the
|
|
30
|
+
* config `clampConfigPool` hard-set of `poolOptions.*.{min,max}` (which outrank
|
|
31
|
+
* a CLI `--maxWorkers`, measured in §5), NOT from this strip. This is kept as
|
|
32
|
+
* the belt because (a) it is harmless, (b) it does work for children spawned
|
|
33
|
+
* through `guarded-vitest.mjs`, and (c) vitest arg-parse order is not a stable
|
|
34
|
+
* contract across versions. The residual it cannot reach — a CLI
|
|
35
|
+
* `--poolOptions.forks.maxForks=N` that same-keys the config clamp — is caught
|
|
36
|
+
* loud by the globalSetup `poolOverride` WARN (resolved pool > 4 → ledgered
|
|
37
|
+
* `nested-skip clamped:false, poolOverride:true`), never silently unbounded.
|
|
38
|
+
*/
|
|
39
|
+
export declare function neutralizePoolShapingArgv(argv: string[]): {
|
|
40
|
+
argv: string[];
|
|
41
|
+
removed: string[];
|
|
42
|
+
};
|
|
43
|
+
export interface ArgvAnalysis {
|
|
44
|
+
subcommand: string | null;
|
|
45
|
+
positionals: string[];
|
|
46
|
+
poolShaping: string[];
|
|
47
|
+
/** A flag outside the safe allowlist (── conservative: disqualifies targeted). */
|
|
48
|
+
unknownFlags: string[];
|
|
49
|
+
explicitWatch: boolean;
|
|
50
|
+
isList: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** Analyze a vitest argv (process.argv.slice(2) shape or full — both work). */
|
|
53
|
+
export declare function analyzeVitestArgv(argvIn: string[]): ArgvAnalysis;
|
|
54
|
+
/**
|
|
55
|
+
* Resolve the test files selected by simple include globs of the shape this
|
|
56
|
+
* repo uses (`tests/<dir>/**\/*.test.ts`). Deliberately minimal: a pattern we
|
|
57
|
+
* cannot interpret contributes NOTHING (and classification then routes
|
|
58
|
+
* suite-class via zero/ambiguous matches — the safe direction).
|
|
59
|
+
*/
|
|
60
|
+
export declare function resolveIncludedTestFiles(includeGlobs: string[], rootDir: string): string[];
|
|
61
|
+
export interface TargetedClassification {
|
|
62
|
+
targeted: boolean;
|
|
63
|
+
/** MATCHED file count (the ledgered value — NEVER the argv count; §2.3). */
|
|
64
|
+
matchedCount: number;
|
|
65
|
+
reason: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The pinned conservative classifier (§2.3): targeted ONLY if every positional
|
|
69
|
+
* is a non-glob, non-directory filter matching EXACTLY ONE file in the
|
|
70
|
+
* resolved include set under vitest's substring filter semantics, and the
|
|
71
|
+
* union of matches is ≤ K. Anything ambiguous routes suite-class.
|
|
72
|
+
*/
|
|
73
|
+
export declare function classifyTargetedRun(analysis: ArgvAnalysis, includedFiles: string[], rootDir: string, k?: number): TargetedClassification;
|
|
74
|
+
/**
|
|
75
|
+
* Compute the effective worker-pool bound from a resolved vitest config
|
|
76
|
+
* fragment. Reads maxWorkers AND every poolOptions max* — the MAX of the
|
|
77
|
+
* bounds that could apply; `fileParallelism:false` bounds file concurrency
|
|
78
|
+
* to 1. Unknown/absent values resolve to `null` (unbounded ⇒ suite-class).
|
|
79
|
+
*/
|
|
80
|
+
export declare function resolvedPoolBound(config: {
|
|
81
|
+
maxWorkers?: number | string;
|
|
82
|
+
fileParallelism?: boolean;
|
|
83
|
+
poolOptions?: {
|
|
84
|
+
threads?: {
|
|
85
|
+
maxThreads?: number;
|
|
86
|
+
};
|
|
87
|
+
forks?: {
|
|
88
|
+
maxForks?: number;
|
|
89
|
+
};
|
|
90
|
+
vmThreads?: {
|
|
91
|
+
maxThreads?: number;
|
|
92
|
+
};
|
|
93
|
+
vmForks?: {
|
|
94
|
+
maxForks?: number;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
}): number | null;
|
|
98
|
+
/** Clamp a config's pool bounds to ≤ maxAllowed (Math.min — a ceiling, never a floor). */
|
|
99
|
+
export declare function clampConfigPool<T extends Record<string, unknown>>(test: T, maxAllowed: number): T;
|
|
100
|
+
/** Hardened CI predicate: CI truthy-ONLY-as-'true'/'1' AND a positive signal. */
|
|
101
|
+
export declare function isCiEnvironment(env?: NodeJS.ProcessEnv): boolean;
|
|
102
|
+
/** Is this an agent-launched / non-interactive context (watch-loudness + CI-spoof heuristics)? */
|
|
103
|
+
export declare function isAgentContext(env?: NodeJS.ProcessEnv): boolean;
|
|
104
|
+
export declare function isKillSwitchOff(env?: NodeJS.ProcessEnv): boolean;
|
|
105
|
+
/** Run-class derivation (§2.6): never from user input. */
|
|
106
|
+
export declare function deriveRunClass(configName: string, env?: NodeJS.ProcessEnv, isTTY?: boolean): TestRunClass;
|
|
107
|
+
/** Walk the ancestor pid chain via `ps` (bounded depth). */
|
|
108
|
+
export declare function ancestryPids(startPid?: number, maxDepth?: number): number[];
|
|
109
|
+
export interface NestedCheckResult {
|
|
110
|
+
nested: boolean;
|
|
111
|
+
/** The sheltering ancestor's holder row (same-lane for the skip decision). */
|
|
112
|
+
shelteringPid: number | null;
|
|
113
|
+
shelteringSlotId: string | null;
|
|
114
|
+
/** True when an ancestor holds ANY-lane slot (drives the unconditional clamp). */
|
|
115
|
+
anyLaneAncestorHolder: boolean;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The lane-scoped ancestry+holders cross-check (§2.5). The env marker
|
|
119
|
+
* (INSTAR_TEST_SEMAPHORE_HELD) only NARROWS the check — a stale/foreign/leaked
|
|
120
|
+
* marker fails the cross-check and does NOT skip; a scrubbed-env child still
|
|
121
|
+
* skips via pure ancestry.
|
|
122
|
+
*/
|
|
123
|
+
export declare function checkNestedUnderHolder(holdersRows: unknown[], laneChildWouldAcquire: TestLane, opts?: {
|
|
124
|
+
ancestors?: number[];
|
|
125
|
+
envMarker?: string | undefined;
|
|
126
|
+
pidAlive?: (pid: number) => boolean;
|
|
127
|
+
}): NestedCheckResult;
|
|
128
|
+
//# sourceMappingURL=testRunnerRunClassifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testRunnerRunClassifier.d.ts","sourceRoot":"","sources":["../../src/core/testRunnerRunClassifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* testRunnerRunClassifier — run-class differentiation + skip detection for the
|
|
3
|
+
* test-runner concurrency bound (spec §2.3/§2.5/§2.6).
|
|
4
|
+
*
|
|
5
|
+
* Pure logic (no holders/lock I/O beyond an injected holders read + `ps`
|
|
6
|
+
* ancestry walk) so the vitest config-eval helper and the globalSetup
|
|
7
|
+
* chokepoint consume ONE shared classifier — the two evaluation points must
|
|
8
|
+
* never disagree in the dangerous direction, and sharing the code is how
|
|
9
|
+
* (State-Not-Symbol: the globalSetup additionally verifies the RESOLVED
|
|
10
|
+
* config's live pool bound — a symbol never binds the two points).
|
|
11
|
+
*
|
|
12
|
+
* CLASSIFICATION IS CONSERVATIVE BY PINNED DESIGN (§2.3): vitest positionals
|
|
13
|
+
* are substring FILTERS, not exact selectors, so a run is targeted ONLY if
|
|
14
|
+
* every positional matches EXACTLY ONE file under filter expansion against
|
|
15
|
+
* the resolved include set, the union is ≤ K files, and NO pool-shaping or
|
|
16
|
+
* filter flags are present. Every ambiguity routes suite-class (safe
|
|
17
|
+
* superset) — version drift can only ever mis-route toward the STRICTER lane.
|
|
18
|
+
*/
|
|
19
|
+
import fs from 'node:fs';
|
|
20
|
+
import path from 'node:path';
|
|
21
|
+
import { execFileSync } from 'node:child_process';
|
|
22
|
+
import { TARGETED_FILE_LIMIT, classifyRow } from './hostTestRunnerSemaphore.js';
|
|
23
|
+
// ── Pool-shaping argv (§2.3 — disqualifies at BOTH evaluation points) ─────
|
|
24
|
+
/**
|
|
25
|
+
* Recognized pool-shaping flags (defense-in-depth; the resolved-state check is
|
|
26
|
+
* the guarantee). Kebab and camel variants both match; `=value` suffix too.
|
|
27
|
+
*/
|
|
28
|
+
const POOL_SHAPING_FLAG_RE = /^--?(no-)?(max-?workers|min-?workers|pool|pool-?options(\..+)?|file-?parallelism|isolate)(=.*)?$/i;
|
|
29
|
+
export function findPoolShapingArgv(argv) {
|
|
30
|
+
return argv.filter((a) => POOL_SHAPING_FLAG_RE.test(a));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Strip recognized pool-shaping flags (and their value token where the flag
|
|
34
|
+
* form takes one) from an argv array. Used by the nested CLI-proof clamp
|
|
35
|
+
* (§2.5) — the BELT alongside the config hard-set.
|
|
36
|
+
*
|
|
37
|
+
* VERSION NOTE (verified against vitest 2.1.9): mutating `process.argv` at
|
|
38
|
+
* config-eval is a NO-OP on this line — vitest's `cac` parser reads the CLI
|
|
39
|
+
* BEFORE the config module loads, so the pool flags are already resolved by
|
|
40
|
+
* the time this runs. The load-bearing CLI-proofness therefore comes from the
|
|
41
|
+
* config `clampConfigPool` hard-set of `poolOptions.*.{min,max}` (which outrank
|
|
42
|
+
* a CLI `--maxWorkers`, measured in §5), NOT from this strip. This is kept as
|
|
43
|
+
* the belt because (a) it is harmless, (b) it does work for children spawned
|
|
44
|
+
* through `guarded-vitest.mjs`, and (c) vitest arg-parse order is not a stable
|
|
45
|
+
* contract across versions. The residual it cannot reach — a CLI
|
|
46
|
+
* `--poolOptions.forks.maxForks=N` that same-keys the config clamp — is caught
|
|
47
|
+
* loud by the globalSetup `poolOverride` WARN (resolved pool > 4 → ledgered
|
|
48
|
+
* `nested-skip clamped:false, poolOverride:true`), never silently unbounded.
|
|
49
|
+
*/
|
|
50
|
+
export function neutralizePoolShapingArgv(argv) {
|
|
51
|
+
const out = [];
|
|
52
|
+
const removed = [];
|
|
53
|
+
for (let i = 0; i < argv.length; i++) {
|
|
54
|
+
const a = argv[i];
|
|
55
|
+
if (!POOL_SHAPING_FLAG_RE.test(a)) {
|
|
56
|
+
out.push(a);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
removed.push(a);
|
|
60
|
+
if (!a.includes('=')) {
|
|
61
|
+
const next = argv[i + 1];
|
|
62
|
+
const isValueTaking = /^--?(max-?workers|min-?workers|pool|pool-?options)/i.test(a);
|
|
63
|
+
if (next !== undefined) {
|
|
64
|
+
if (isValueTaking && !next.startsWith('-')) {
|
|
65
|
+
removed.push(next);
|
|
66
|
+
i++;
|
|
67
|
+
}
|
|
68
|
+
else if (!isValueTaking && /^(true|false)$/i.test(next)) {
|
|
69
|
+
removed.push(next);
|
|
70
|
+
i++;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return { argv: out, removed };
|
|
76
|
+
}
|
|
77
|
+
// ── Filter-argv extraction (conservative allowlist — §2.3) ────────────────
|
|
78
|
+
const SUBCOMMANDS = new Set(['run', 'watch', 'list', 'related', 'bench', 'dev', 'typecheck', 'init']);
|
|
79
|
+
/** Flags that do NOT disqualify a targeted classification (value-taking noted). */
|
|
80
|
+
const SAFE_FLAGS_WITH_VALUE = new Set(['--config', '--reporter', '--root', '--dir']);
|
|
81
|
+
const SAFE_BOOLEAN_FLAGS = new Set(['--run', '--silent', '--no-color', '--color', '--globals', '--passWithNoTests', '--pass-with-no-tests', '--allowOnly', '--allow-only']);
|
|
82
|
+
/** Analyze a vitest argv (process.argv.slice(2) shape or full — both work). */
|
|
83
|
+
export function analyzeVitestArgv(argvIn) {
|
|
84
|
+
// Trim node + script tokens when a full process.argv is passed.
|
|
85
|
+
let argv = argvIn;
|
|
86
|
+
const scriptIdx = argvIn.findIndex((a) => /vitest(\.mjs|\.js)?$/.test(a) || a.endsWith('/vitest'));
|
|
87
|
+
if (scriptIdx >= 0)
|
|
88
|
+
argv = argvIn.slice(scriptIdx + 1);
|
|
89
|
+
else if (argvIn[0] && /node(\.exe)?$/.test(argvIn[0]))
|
|
90
|
+
argv = argvIn.slice(2);
|
|
91
|
+
const analysis = {
|
|
92
|
+
subcommand: null,
|
|
93
|
+
positionals: [],
|
|
94
|
+
poolShaping: [],
|
|
95
|
+
unknownFlags: [],
|
|
96
|
+
explicitWatch: false,
|
|
97
|
+
isList: false,
|
|
98
|
+
};
|
|
99
|
+
let first = true;
|
|
100
|
+
for (let i = 0; i < argv.length; i++) {
|
|
101
|
+
const a = argv[i];
|
|
102
|
+
if (first && SUBCOMMANDS.has(a)) {
|
|
103
|
+
analysis.subcommand = a;
|
|
104
|
+
if (a === 'list')
|
|
105
|
+
analysis.isList = true;
|
|
106
|
+
if (a === 'watch')
|
|
107
|
+
analysis.explicitWatch = true;
|
|
108
|
+
first = false;
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
first = false;
|
|
112
|
+
if (a === '--watch' || a === '-w') {
|
|
113
|
+
analysis.explicitWatch = true;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (POOL_SHAPING_FLAG_RE.test(a)) {
|
|
117
|
+
analysis.poolShaping.push(a);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
if (a.startsWith('-')) {
|
|
121
|
+
const base = a.split('=')[0];
|
|
122
|
+
if (SAFE_FLAGS_WITH_VALUE.has(base)) {
|
|
123
|
+
if (!a.includes('='))
|
|
124
|
+
i++; // consume the value token
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (SAFE_BOOLEAN_FLAGS.has(base))
|
|
128
|
+
continue;
|
|
129
|
+
analysis.unknownFlags.push(a);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
analysis.positionals.push(a);
|
|
133
|
+
}
|
|
134
|
+
return analysis;
|
|
135
|
+
}
|
|
136
|
+
// ── Include-set resolution + matched-file-set classification (§2.3) ───────
|
|
137
|
+
/**
|
|
138
|
+
* Resolve the test files selected by simple include globs of the shape this
|
|
139
|
+
* repo uses (`tests/<dir>/**\/*.test.ts`). Deliberately minimal: a pattern we
|
|
140
|
+
* cannot interpret contributes NOTHING (and classification then routes
|
|
141
|
+
* suite-class via zero/ambiguous matches — the safe direction).
|
|
142
|
+
*/
|
|
143
|
+
export function resolveIncludedTestFiles(includeGlobs, rootDir) {
|
|
144
|
+
const out = [];
|
|
145
|
+
for (const glob of includeGlobs) {
|
|
146
|
+
const starIdx = glob.indexOf('*');
|
|
147
|
+
if (starIdx < 0) {
|
|
148
|
+
out.push(glob);
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
const baseDir = glob.slice(0, starIdx).replace(/\/$/, '');
|
|
152
|
+
const suffixMatch = glob.match(/\*\*\/\*(\.[a-z.]+)$/i) ?? glob.match(/\*(\.[a-z.]+)$/i);
|
|
153
|
+
const suffix = suffixMatch ? suffixMatch[1].replace('*', '') : '.test.ts';
|
|
154
|
+
const abs = path.resolve(rootDir, baseDir);
|
|
155
|
+
walkFiles(abs, (p) => {
|
|
156
|
+
if (p.endsWith(suffix) || p.endsWith('.test.ts'))
|
|
157
|
+
out.push(path.relative(rootDir, p));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
return [...new Set(out)];
|
|
161
|
+
}
|
|
162
|
+
function walkFiles(dir, visit) {
|
|
163
|
+
let entries;
|
|
164
|
+
try {
|
|
165
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// @silent-fallback-ok: unreadable dir contributes no files (→ suite-class).
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
for (const e of entries) {
|
|
172
|
+
const p = path.join(dir, e.name);
|
|
173
|
+
if (e.isDirectory()) {
|
|
174
|
+
if (e.name === 'node_modules' || e.name.startsWith('.'))
|
|
175
|
+
continue;
|
|
176
|
+
walkFiles(p, visit);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
visit(p);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The pinned conservative classifier (§2.3): targeted ONLY if every positional
|
|
185
|
+
* is a non-glob, non-directory filter matching EXACTLY ONE file in the
|
|
186
|
+
* resolved include set under vitest's substring filter semantics, and the
|
|
187
|
+
* union of matches is ≤ K. Anything ambiguous routes suite-class.
|
|
188
|
+
*/
|
|
189
|
+
export function classifyTargetedRun(analysis, includedFiles, rootDir, k = TARGETED_FILE_LIMIT) {
|
|
190
|
+
if (analysis.positionals.length === 0) {
|
|
191
|
+
return { targeted: false, matchedCount: 0, reason: 'no-positional-filters' };
|
|
192
|
+
}
|
|
193
|
+
if (analysis.poolShaping.length > 0) {
|
|
194
|
+
return { targeted: false, matchedCount: 0, reason: `pool-shaping-argv:${analysis.poolShaping[0]}` };
|
|
195
|
+
}
|
|
196
|
+
if (analysis.unknownFlags.length > 0) {
|
|
197
|
+
return { targeted: false, matchedCount: 0, reason: `filter-flag:${analysis.unknownFlags[0]}` };
|
|
198
|
+
}
|
|
199
|
+
const matchedUnion = new Set();
|
|
200
|
+
for (const positional of analysis.positionals) {
|
|
201
|
+
if (/[*?[\]{}]/.test(positional)) {
|
|
202
|
+
return { targeted: false, matchedCount: 0, reason: `glob-positional:${positional}` };
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
if (fs.statSync(path.resolve(rootDir, positional)).isDirectory()) {
|
|
206
|
+
return { targeted: false, matchedCount: 0, reason: `directory-positional:${positional}` };
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
/* @silent-fallback-ok: not a resolvable path — still a legal substring filter */
|
|
211
|
+
}
|
|
212
|
+
// vitest positionals are substring FILTERS against the file path (§2.3).
|
|
213
|
+
const norm = positional.replace(/^\.\//, '');
|
|
214
|
+
const matches = includedFiles.filter((f) => f.includes(norm));
|
|
215
|
+
if (matches.length !== 1) {
|
|
216
|
+
return {
|
|
217
|
+
targeted: false,
|
|
218
|
+
matchedCount: matches.length,
|
|
219
|
+
reason: matches.length === 0 ? `no-match:${positional}` : `multi-match:${positional}(${matches.length})`,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
matchedUnion.add(matches[0]);
|
|
223
|
+
}
|
|
224
|
+
if (matchedUnion.size > k) {
|
|
225
|
+
return { targeted: false, matchedCount: matchedUnion.size, reason: `matched-count-${matchedUnion.size}>K-${k}` };
|
|
226
|
+
}
|
|
227
|
+
return { targeted: true, matchedCount: matchedUnion.size, reason: 'exact-match-set' };
|
|
228
|
+
}
|
|
229
|
+
// ── Resolved-pool bound (the STATE check — §2.3) ──────────────────────────
|
|
230
|
+
/**
|
|
231
|
+
* Compute the effective worker-pool bound from a resolved vitest config
|
|
232
|
+
* fragment. Reads maxWorkers AND every poolOptions max* — the MAX of the
|
|
233
|
+
* bounds that could apply; `fileParallelism:false` bounds file concurrency
|
|
234
|
+
* to 1. Unknown/absent values resolve to `null` (unbounded ⇒ suite-class).
|
|
235
|
+
*/
|
|
236
|
+
export function resolvedPoolBound(config) {
|
|
237
|
+
if (config.fileParallelism === false)
|
|
238
|
+
return 1;
|
|
239
|
+
const candidates = [];
|
|
240
|
+
const mw = typeof config.maxWorkers === 'string' ? Number(config.maxWorkers) : config.maxWorkers;
|
|
241
|
+
if (typeof mw === 'number' && Number.isFinite(mw) && mw >= 1)
|
|
242
|
+
candidates.push(mw);
|
|
243
|
+
const po = config.poolOptions;
|
|
244
|
+
for (const v of [po?.threads?.maxThreads, po?.forks?.maxForks, po?.vmThreads?.maxThreads, po?.vmForks?.maxForks]) {
|
|
245
|
+
if (typeof v === 'number' && Number.isFinite(v) && v >= 1)
|
|
246
|
+
candidates.push(v);
|
|
247
|
+
}
|
|
248
|
+
if (candidates.length === 0)
|
|
249
|
+
return null; // unbounded / unknown
|
|
250
|
+
return Math.max(...candidates);
|
|
251
|
+
}
|
|
252
|
+
/** Clamp a config's pool bounds to ≤ maxAllowed (Math.min — a ceiling, never a floor). */
|
|
253
|
+
export function clampConfigPool(test, maxAllowed) {
|
|
254
|
+
const t = test;
|
|
255
|
+
const clampMax = (v) => {
|
|
256
|
+
const n = typeof v === 'string' ? Number(v) : typeof v === 'number' ? v : NaN;
|
|
257
|
+
return Number.isFinite(n) && n >= 1 ? Math.min(n, maxAllowed) : maxAllowed;
|
|
258
|
+
};
|
|
259
|
+
// The MIN bound must be set EXPLICITLY to ≤ the clamped max, even when the
|
|
260
|
+
// config left it UNSET — otherwise vitest's Tinypool resolves the pool's
|
|
261
|
+
// `minThreads`/`minForks` default to (numCpus − 1), which on a ≥6-core host
|
|
262
|
+
// EXCEEDS our max of 4 and throws `minThreads and maxThreads must not
|
|
263
|
+
// conflict`, crashing the root at pool creation. That is a §1.1 false-BLOCK
|
|
264
|
+
// (the clamp meant to bound a run wedges it instead). Clamp min DOWN toward
|
|
265
|
+
// the max (default an unset/invalid min to 1); never raise a legitimately
|
|
266
|
+
// lower min — still a ceiling, never a floor.
|
|
267
|
+
const clampMin = (v, max) => {
|
|
268
|
+
const n = typeof v === 'string' ? Number(v) : typeof v === 'number' ? v : NaN;
|
|
269
|
+
return Number.isFinite(n) && n >= 1 ? Math.min(n, max) : 1;
|
|
270
|
+
};
|
|
271
|
+
const maxW = clampMax(t.maxWorkers);
|
|
272
|
+
t.maxWorkers = maxW;
|
|
273
|
+
t.minWorkers = clampMin(t.minWorkers, maxW);
|
|
274
|
+
const po = (t.poolOptions ?? {});
|
|
275
|
+
for (const [key, maxKey, minKey] of [
|
|
276
|
+
['threads', 'maxThreads', 'minThreads'],
|
|
277
|
+
['forks', 'maxForks', 'minForks'],
|
|
278
|
+
['vmThreads', 'maxThreads', 'minThreads'],
|
|
279
|
+
['vmForks', 'maxForks', 'minForks'],
|
|
280
|
+
]) {
|
|
281
|
+
const sub = { ...(po[key] ?? {}) };
|
|
282
|
+
const m = clampMax(sub[maxKey]);
|
|
283
|
+
sub[maxKey] = m;
|
|
284
|
+
sub[minKey] = clampMin(sub[minKey], m);
|
|
285
|
+
po[key] = sub;
|
|
286
|
+
}
|
|
287
|
+
t.poolOptions = po;
|
|
288
|
+
return test;
|
|
289
|
+
}
|
|
290
|
+
// ── CI / off detection (§2.6, hardened) ───────────────────────────────────
|
|
291
|
+
/** Hardened CI predicate: CI truthy-ONLY-as-'true'/'1' AND a positive signal. */
|
|
292
|
+
export function isCiEnvironment(env = process.env) {
|
|
293
|
+
const ci = env['CI'];
|
|
294
|
+
if (ci !== 'true' && ci !== '1')
|
|
295
|
+
return false;
|
|
296
|
+
return env['GITHUB_ACTIONS'] !== undefined || env['RUNNER_OS'] !== undefined;
|
|
297
|
+
}
|
|
298
|
+
/** Is this an agent-launched / non-interactive context (watch-loudness + CI-spoof heuristics)? */
|
|
299
|
+
export function isAgentContext(env = process.env) {
|
|
300
|
+
return (env['TMUX'] !== undefined ||
|
|
301
|
+
env['INSTAR_SESSION_ID'] !== undefined ||
|
|
302
|
+
env['CLAUDE_CODE_SESSION_ID'] !== undefined ||
|
|
303
|
+
env['INSTAR_HOST_TEST_RUN_CLASS'] === 'background');
|
|
304
|
+
}
|
|
305
|
+
export function isKillSwitchOff(env = process.env) {
|
|
306
|
+
return (env['INSTAR_HOST_TEST_SEMAPHORE'] ?? '').toLowerCase() === 'off';
|
|
307
|
+
}
|
|
308
|
+
/** Run-class derivation (§2.6): never from user input. */
|
|
309
|
+
export function deriveRunClass(configName, env = process.env, isTTY = Boolean(process.stdout.isTTY)) {
|
|
310
|
+
if (env['INSTAR_HOST_TEST_RUN_CLASS'] === 'background')
|
|
311
|
+
return 'background';
|
|
312
|
+
if (configName === 'push')
|
|
313
|
+
return 'interactive';
|
|
314
|
+
// Safest reading (§1.1 bias): a TTY-attached run not marked background gets
|
|
315
|
+
// the longer, user-blocking budget — a human is waiting on it.
|
|
316
|
+
return isTTY ? 'interactive' : 'background';
|
|
317
|
+
}
|
|
318
|
+
// ── Re-entrancy: ancestry + holders cross-check (§2.5) ────────────────────
|
|
319
|
+
/** Walk the ancestor pid chain via `ps` (bounded depth). */
|
|
320
|
+
export function ancestryPids(startPid = process.pid, maxDepth = 25) {
|
|
321
|
+
const chain = [];
|
|
322
|
+
let pid = startPid;
|
|
323
|
+
for (let i = 0; i < maxDepth; i++) {
|
|
324
|
+
let out;
|
|
325
|
+
try {
|
|
326
|
+
// lint-allow-sync-spawn: bounded (1s) one-shot ppid probes, cold path only.
|
|
327
|
+
out = execFileSync('ps', ['-p', String(pid), '-o', 'ppid='], { timeout: 1000, encoding: 'utf-8' });
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
// @silent-fallback-ok: unresolvable ancestry fails toward NOT-nested —
|
|
331
|
+
// the run then acquires normally (bounded, never sheltered).
|
|
332
|
+
break;
|
|
333
|
+
}
|
|
334
|
+
const ppid = Number(out.trim());
|
|
335
|
+
if (!Number.isInteger(ppid) || ppid <= 1)
|
|
336
|
+
break;
|
|
337
|
+
chain.push(ppid);
|
|
338
|
+
pid = ppid;
|
|
339
|
+
}
|
|
340
|
+
return chain;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* The lane-scoped ancestry+holders cross-check (§2.5). The env marker
|
|
344
|
+
* (INSTAR_TEST_SEMAPHORE_HELD) only NARROWS the check — a stale/foreign/leaked
|
|
345
|
+
* marker fails the cross-check and does NOT skip; a scrubbed-env child still
|
|
346
|
+
* skips via pure ancestry.
|
|
347
|
+
*/
|
|
348
|
+
export function checkNestedUnderHolder(holdersRows, laneChildWouldAcquire, opts = {}) {
|
|
349
|
+
const ancestors = opts.ancestors ?? ancestryPids();
|
|
350
|
+
const ancestorSet = new Set(ancestors);
|
|
351
|
+
let markerPid = null;
|
|
352
|
+
if (opts.envMarker) {
|
|
353
|
+
const n = Number(opts.envMarker.split(':')[0]);
|
|
354
|
+
if (Number.isInteger(n) && n >= 2)
|
|
355
|
+
markerPid = n;
|
|
356
|
+
}
|
|
357
|
+
let sameLane = null;
|
|
358
|
+
let anyLane = false;
|
|
359
|
+
for (const r of holdersRows) {
|
|
360
|
+
if (classifyRow(r) !== 'held')
|
|
361
|
+
continue;
|
|
362
|
+
const row = r;
|
|
363
|
+
if (!ancestorSet.has(row.pid))
|
|
364
|
+
continue;
|
|
365
|
+
if (opts.pidAlive && !opts.pidAlive(row.pid))
|
|
366
|
+
continue;
|
|
367
|
+
if (markerPid !== null && row.pid !== markerPid) {
|
|
368
|
+
// Marker present but names a different pid: the marker only narrows —
|
|
369
|
+
// the ancestry facts still count this ancestor row.
|
|
370
|
+
}
|
|
371
|
+
anyLane = true;
|
|
372
|
+
if (row.lane === laneChildWouldAcquire && !sameLane)
|
|
373
|
+
sameLane = row;
|
|
374
|
+
}
|
|
375
|
+
return {
|
|
376
|
+
nested: sameLane !== null,
|
|
377
|
+
shelteringPid: sameLane?.pid ?? null,
|
|
378
|
+
shelteringSlotId: sameLane?.id ?? null,
|
|
379
|
+
anyLaneAncestorHolder: anyLane,
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=testRunnerRunClassifier.js.map
|