instar 1.3.735 → 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 +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +73 -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/skills/spec-converge/SKILL.md +2 -1
- package/skills/spec-converge/templates/reviewer-integration.md +8 -6
- 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/side-effects/three-standards-enforcement.md +131 -0
|
@@ -27,6 +27,13 @@ export interface DevPreflightSummary {
|
|
|
27
27
|
discoverabilityExitCode: number;
|
|
28
28
|
routeWarnings: RouteWarning[];
|
|
29
29
|
heuristicUnavailable?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Test-runner bound self-disable ledger check (spec
|
|
32
|
+
* docs/specs/test-runner-concurrency-bound.md §2.6(b)). Optional so older
|
|
33
|
+
* callers/summaries stay valid; absent means "check unavailable" and never
|
|
34
|
+
* fails the preflight.
|
|
35
|
+
*/
|
|
36
|
+
selfDisableExitCode?: number;
|
|
30
37
|
}
|
|
31
38
|
export declare class SpawnDevPreflightRunner implements DevPreflightRunner {
|
|
32
39
|
private readonly cwd;
|
|
@@ -36,6 +43,20 @@ export declare class SpawnDevPreflightRunner implements DevPreflightRunner {
|
|
|
36
43
|
export declare function extractAddedRoutePrefixes(diff: string): Map<string, string[]>;
|
|
37
44
|
export declare function findMissingCapabilityPrefixes(diff: string, capabilityPrefixes: Set<string>): RouteWarning[];
|
|
38
45
|
export declare function aggregateExitCode(summary: DevPreflightSummary): number;
|
|
46
|
+
/**
|
|
47
|
+
* The shared serverless-host self-disable detector consumer (spec §2.6(b)).
|
|
48
|
+
* dev:preflight SPAWNS the same script the pre-push hook runs so the
|
|
49
|
+
* detection logic lives once (scripts/lib/test-runner-selfdisable-patterns
|
|
50
|
+
* .mjs — plain ESM the hook can load without a built dist).
|
|
51
|
+
*
|
|
52
|
+
* Exit-code choice, documented (§2.6: "dev:preflight … MAY fail on the same
|
|
53
|
+
* pattern"): in --preflight mode the script exits non-zero ONLY for the two
|
|
54
|
+
* unambiguous self-disable signatures (sustained `off`; spoofed CI on a
|
|
55
|
+
* non-CI host — both graded "like `off`" by the spec). Watch/cap/posture/arm
|
|
56
|
+
* divergence WARN without failing. The pre-push surface of the same detector
|
|
57
|
+
* is structurally WARN-only and never fails.
|
|
58
|
+
*/
|
|
59
|
+
export declare const SELF_DISABLE_CHECK_SCRIPT = "scripts/pre-push-test-runner-selfdisable.mjs";
|
|
39
60
|
export declare function defaultCapabilityPrefixes(): Set<string>;
|
|
40
61
|
export declare function runDevPreflight(options?: DevPreflightOptions): Promise<number>;
|
|
41
62
|
//# sourceMappingURL=devPreflight.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devPreflight.d.ts","sourceRoot":"","sources":["../../src/commands/devPreflight.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devPreflight.d.ts","sourceRoot":"","sources":["../../src/commands/devPreflight.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAeD,qBAAa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,MAAM;IAExC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAkB5E;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAe7E;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC9B,YAAY,EAAE,CAShB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAMtE;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,iDAAiD,CAAC;AAExF,wBAAgB,yBAAyB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEvD;AAwDD,wBAAsB,eAAe,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoExF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
2
4
|
import pc from 'picocolors';
|
|
3
5
|
import { SafeGitExecutor } from '../core/SafeGitExecutor.js';
|
|
4
6
|
import { buildPrefixToKeyMap } from '../server/CapabilityIndex.js';
|
|
@@ -62,8 +64,26 @@ export function findMissingCapabilityPrefixes(diff, capabilityPrefixes) {
|
|
|
62
64
|
return warnings.sort((a, b) => a.prefix.localeCompare(b.prefix));
|
|
63
65
|
}
|
|
64
66
|
export function aggregateExitCode(summary) {
|
|
65
|
-
return summary.lintExitCode === 0 &&
|
|
67
|
+
return summary.lintExitCode === 0 &&
|
|
68
|
+
summary.discoverabilityExitCode === 0 &&
|
|
69
|
+
(summary.selfDisableExitCode ?? 0) === 0
|
|
70
|
+
? 0
|
|
71
|
+
: 1;
|
|
66
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* The shared serverless-host self-disable detector consumer (spec §2.6(b)).
|
|
75
|
+
* dev:preflight SPAWNS the same script the pre-push hook runs so the
|
|
76
|
+
* detection logic lives once (scripts/lib/test-runner-selfdisable-patterns
|
|
77
|
+
* .mjs — plain ESM the hook can load without a built dist).
|
|
78
|
+
*
|
|
79
|
+
* Exit-code choice, documented (§2.6: "dev:preflight … MAY fail on the same
|
|
80
|
+
* pattern"): in --preflight mode the script exits non-zero ONLY for the two
|
|
81
|
+
* unambiguous self-disable signatures (sustained `off`; spoofed CI on a
|
|
82
|
+
* non-CI host — both graded "like `off`" by the spec). Watch/cap/posture/arm
|
|
83
|
+
* divergence WARN without failing. The pre-push surface of the same detector
|
|
84
|
+
* is structurally WARN-only and never fails.
|
|
85
|
+
*/
|
|
86
|
+
export const SELF_DISABLE_CHECK_SCRIPT = 'scripts/pre-push-test-runner-selfdisable.mjs';
|
|
67
87
|
export function defaultCapabilityPrefixes() {
|
|
68
88
|
return new Set(buildPrefixToKeyMap().keys());
|
|
69
89
|
}
|
|
@@ -131,6 +151,16 @@ export async function runDevPreflight(options = {}) {
|
|
|
131
151
|
const lint = await runner.run('pnpm', ['lint'], 'lint');
|
|
132
152
|
output.write('\n');
|
|
133
153
|
const discoverability = await runner.run('npx', DISCOVERABILITY_TEST_ARGS, 'capabilities discoverability');
|
|
154
|
+
// ── Test-runner bound: self-disable ledger check (spec §2.6(b)) ──────────
|
|
155
|
+
// Runs the SAME detector script the pre-push hook uses, in --preflight mode
|
|
156
|
+
// (see SELF_DISABLE_CHECK_SCRIPT for the documented exit-code choice).
|
|
157
|
+
// Skipped quietly when the script is absent (e.g. an older checkout).
|
|
158
|
+
let selfDisableExitCode;
|
|
159
|
+
if (fs.existsSync(path.join(cwd, SELF_DISABLE_CHECK_SCRIPT))) {
|
|
160
|
+
output.write('\n');
|
|
161
|
+
const selfDisable = await runner.run('node', [SELF_DISABLE_CHECK_SCRIPT, '--preflight'], 'test-runner bound self-disable ledger check');
|
|
162
|
+
selfDisableExitCode = selfDisable.exitCode;
|
|
163
|
+
}
|
|
134
164
|
let routeWarnings = [];
|
|
135
165
|
let heuristicUnavailable;
|
|
136
166
|
try {
|
|
@@ -145,10 +175,14 @@ export async function runDevPreflight(options = {}) {
|
|
|
145
175
|
discoverabilityExitCode: discoverability.exitCode,
|
|
146
176
|
routeWarnings,
|
|
147
177
|
heuristicUnavailable,
|
|
178
|
+
selfDisableExitCode,
|
|
148
179
|
};
|
|
149
180
|
output.write('\nSummary:\n');
|
|
150
181
|
output.write(`- lint: ${lint.exitCode === 0 ? pc.green('PASS') : pc.red('FAIL')}\n`);
|
|
151
182
|
output.write(`- capabilities-discoverability/CapabilityIndex: ${discoverability.exitCode === 0 ? pc.green('PASS') : pc.red('FAIL')}\n`);
|
|
183
|
+
if (selfDisableExitCode !== undefined) {
|
|
184
|
+
output.write(`- test-runner self-disable ledger: ${selfDisableExitCode === 0 ? pc.green('PASS') : pc.red('FAIL')} (advisory WARN details above; fails only on sustained off/spoofed-CI)\n`);
|
|
185
|
+
}
|
|
152
186
|
printHeuristic(output, summary);
|
|
153
187
|
printChecklist(output);
|
|
154
188
|
const exitCode = aggregateExitCode(summary);
|
|
@@ -156,7 +190,7 @@ export async function runDevPreflight(options = {}) {
|
|
|
156
190
|
output.write('\nPreflight complete: no blocking failures.\n');
|
|
157
191
|
}
|
|
158
192
|
else {
|
|
159
|
-
output.error('\nPreflight failed: lint
|
|
193
|
+
output.error('\nPreflight failed: lint, discoverability tests, or the test-runner self-disable ledger check failed.\n');
|
|
160
194
|
}
|
|
161
195
|
return exitCode;
|
|
162
196
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devPreflight.js","sourceRoot":"","sources":["../../src/commands/devPreflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"devPreflight.js","sourceRoot":"","sources":["../../src/commands/devPreflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiDH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAyBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6H7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAu/CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CAijBN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiDH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAyBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6H7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAu/CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CAijBN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAohlBtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
package/dist/commands/server.js
CHANGED
|
@@ -5838,6 +5838,36 @@ export async function startServer(options) {
|
|
|
5838
5838
|
// their construction sites below; GET /guards reconciles registrations
|
|
5839
5839
|
// against the declared manifest (missing = a state, never an omission).
|
|
5840
5840
|
const guardRegistry = new GuardRegistry();
|
|
5841
|
+
// ── Test-Runner Concurrency Bound guard row (test-runner-concurrency-bound §2.9) ──
|
|
5842
|
+
// The chokepoint lives in vitest globalSetup (out-of-process); this getter
|
|
5843
|
+
// serves the SERVER-PROCESS view of the resolved posture so /guards can
|
|
5844
|
+
// grade the limiter (off / dry-run / enforcing). The GuardRegistry contract
|
|
5845
|
+
// forbids file I/O inside getters and the posture authority is the host
|
|
5846
|
+
// tuning file, so a snapshot is refreshed on an unref'd interval OUTSIDE
|
|
5847
|
+
// the getter — the getter itself is a pure in-memory read. A refresh
|
|
5848
|
+
// failure keeps the last snapshot (the guards row must never throw); a
|
|
5849
|
+
// dead refresher surfaces honestly as on-stale via lastTickAt.
|
|
5850
|
+
{
|
|
5851
|
+
try {
|
|
5852
|
+
const { getHostTestRunnerSemaphore } = await import('../core/hostTestRunnerSemaphore.js');
|
|
5853
|
+
let testRunnerGuardSnapshot = { enabled: true, dryRun: true, lastTickAt: Date.now() };
|
|
5854
|
+
const refreshTestRunnerGuard = () => {
|
|
5855
|
+
try {
|
|
5856
|
+
const posture = getHostTestRunnerSemaphore().resolveContext().posture.posture;
|
|
5857
|
+
testRunnerGuardSnapshot = {
|
|
5858
|
+
enabled: posture !== 'off',
|
|
5859
|
+
dryRun: posture !== 'enforcing',
|
|
5860
|
+
lastTickAt: Date.now(),
|
|
5861
|
+
};
|
|
5862
|
+
}
|
|
5863
|
+
catch { /* keep the last snapshot — the guards row must never throw */ }
|
|
5864
|
+
};
|
|
5865
|
+
refreshTestRunnerGuard();
|
|
5866
|
+
setInterval(refreshTestRunnerGuard, 60_000).unref();
|
|
5867
|
+
guardRegistry.register('intelligence.testRunnerCap', () => testRunnerGuardSnapshot);
|
|
5868
|
+
}
|
|
5869
|
+
catch { /* guard registration is observability — never gates boot */ }
|
|
5870
|
+
}
|
|
5841
5871
|
// ── Permission-Prompt Auto-Resolver (always-on safety floor) ──────────────
|
|
5842
5872
|
// Auto-answers a framework approval prompt Instar cannot otherwise clear (the
|
|
5843
5873
|
// Claude Code 2.1.176-177 cd-redirection wedge). UNCONDITIONAL — there is NO
|