@codyswann/lisa 4.69.4 → 4.69.5
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/cdk/create-only/stryker.conf.json +2 -0
- package/cdk/package-lisa/package.lisa.json +10 -6
- package/dist/core/lisa.d.ts +17 -3
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +74 -21
- package/dist/core/lisa.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/plugin-command.d.ts +21 -0
- package/dist/core/plugin-command.d.ts.map +1 -0
- package/dist/core/plugin-command.js +121 -0
- package/dist/core/plugin-command.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +26 -14
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/eslint-plugin-component-structure/package.json +3 -0
- package/expo/create-only/stryker.conf.json +2 -0
- package/expo/package-lisa/package.lisa.json +3 -3
- package/harper-fabric/package-lisa/package.lisa.json +7 -7
- package/nestjs/package-lisa/package.lisa.json +2 -2
- package/package.json +28 -19
- package/phaser/package-lisa/package.lisa.json +7 -7
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/rails/copy-overwrite/.rubocop.yml +0 -2
- package/rails/copy-overwrite/Gemfile.lisa +8 -8
- package/rails/create-only/.simplecov +16 -14
- package/rails/create-only/spec/spec_helper.rb +2 -0
- package/scripts/verify-npm-advisories-4333.mjs +166 -0
- package/scripts/verify-rails-tooling.rb +175 -0
- package/typescript/create-only/stryker.conf.json +2 -0
- package/typescript/package-lisa/package.lisa.json +10 -6
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/** Bounded subprocess lifecycle for optional project plugin registration. */
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
/** Existing short vendor CLI probe budget. */
|
|
4
|
+
export const PLUGIN_PROBE_TIMEOUT_MS = 15_000;
|
|
5
|
+
/** Registration shares the normal reconciliation wait budget across commands. */
|
|
6
|
+
export const PLUGIN_REGISTRATION_TIMEOUT_MS = 120_000;
|
|
7
|
+
/** Grace period for the owned CLI group to finish after termination. */
|
|
8
|
+
const TERMINATION_GRACE_MS = 2_000;
|
|
9
|
+
/** Preserve Node exec's default per-stream capture limit. */
|
|
10
|
+
const MAX_CAPTURE_BYTES = 1_048_576;
|
|
11
|
+
/**
|
|
12
|
+
* Preserve the command's failure before attempting final cleanup.
|
|
13
|
+
* @param failure - Earlier stream or command error
|
|
14
|
+
* @param timedOut - Whether the operation exceeded its deadline
|
|
15
|
+
* @param code - Observed process exit code
|
|
16
|
+
* @returns Original failure, timeout, nonzero exit, or no command error
|
|
17
|
+
*/
|
|
18
|
+
function completionError(failure, timedOut, code) {
|
|
19
|
+
return (failure ??
|
|
20
|
+
(timedOut
|
|
21
|
+
? new Error("Plugin command timed out")
|
|
22
|
+
: code !== 0
|
|
23
|
+
? new Error(`Plugin command exited ${String(code)}`)
|
|
24
|
+
: undefined));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Run the vendor CLI without a shell or input prompts, with a command deadline.
|
|
28
|
+
* POSIX cleanup covers the owned process group. Windows retains direct-child
|
|
29
|
+
* termination only; descendant cleanup is not established on that platform.
|
|
30
|
+
* @param args - Fixed plugin-command argument vector
|
|
31
|
+
* @param options - Project root and remaining deadline
|
|
32
|
+
* @returns Captured stdout after the entire subprocess lifecycle completes
|
|
33
|
+
*/
|
|
34
|
+
export async function runPluginCommand(args, options) {
|
|
35
|
+
if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0) {
|
|
36
|
+
throw new Error("Plugin registration operation deadline reached");
|
|
37
|
+
}
|
|
38
|
+
return await new Promise((resolve, reject) => {
|
|
39
|
+
const grouped = process.platform !== "win32";
|
|
40
|
+
// The vendor CLI is user-installed; argv is never evaluated by a shell.
|
|
41
|
+
// eslint-disable-next-line sonarjs/no-os-command-from-path -- fixed vendor executable
|
|
42
|
+
const child = spawn("claude", [...args], {
|
|
43
|
+
cwd: options.cwd,
|
|
44
|
+
detached: grouped,
|
|
45
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
46
|
+
});
|
|
47
|
+
/* eslint-disable functional/no-let -- process events accumulate until this promise settles */
|
|
48
|
+
let stdout = "";
|
|
49
|
+
let timedOut = false;
|
|
50
|
+
let killTimer;
|
|
51
|
+
let stdoutBytes = 0;
|
|
52
|
+
let stderrBytes = 0;
|
|
53
|
+
let failure;
|
|
54
|
+
/* eslint-enable functional/no-let -- event state is confined to this invocation */
|
|
55
|
+
const signal = (value) => {
|
|
56
|
+
if (child.pid === undefined)
|
|
57
|
+
return;
|
|
58
|
+
try {
|
|
59
|
+
if (grouped)
|
|
60
|
+
process.kill(-child.pid, value);
|
|
61
|
+
else
|
|
62
|
+
child.kill(value);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error.code !== "ESRCH")
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const terminate = () => {
|
|
70
|
+
signal("SIGTERM");
|
|
71
|
+
killTimer ??= setTimeout(() => signal("SIGKILL"), TERMINATION_GRACE_MS);
|
|
72
|
+
};
|
|
73
|
+
const observe = (chunk, stream) => {
|
|
74
|
+
const size = Buffer.byteLength(chunk);
|
|
75
|
+
if (stream === "stdout")
|
|
76
|
+
stdoutBytes += size;
|
|
77
|
+
else
|
|
78
|
+
stderrBytes += size;
|
|
79
|
+
if (stdoutBytes > MAX_CAPTURE_BYTES || stderrBytes > MAX_CAPTURE_BYTES) {
|
|
80
|
+
failure ??= new Error("Plugin command output exceeded capture limit");
|
|
81
|
+
terminate();
|
|
82
|
+
}
|
|
83
|
+
else if (stream === "stdout" && failure === undefined) {
|
|
84
|
+
stdout += chunk;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
child.stdout.setEncoding("utf8");
|
|
88
|
+
child.stdout.on("data", (chunk) => observe(chunk, "stdout"));
|
|
89
|
+
// Count and drain stderr without copying vendor diagnostics into errors.
|
|
90
|
+
child.stderr.setEncoding("utf8");
|
|
91
|
+
child.stderr.on("data", (chunk) => observe(chunk, "stderr"));
|
|
92
|
+
const deadline = setTimeout(() => {
|
|
93
|
+
timedOut = true;
|
|
94
|
+
terminate();
|
|
95
|
+
}, options.timeoutMs);
|
|
96
|
+
child.on("error", error => {
|
|
97
|
+
clearTimeout(deadline);
|
|
98
|
+
clearTimeout(killTimer);
|
|
99
|
+
reject(error);
|
|
100
|
+
});
|
|
101
|
+
child.on("close", code => {
|
|
102
|
+
// A CLI may exit while leaving a background child. The detached group
|
|
103
|
+
// was created by this invocation, so remaining members are ours alone.
|
|
104
|
+
clearTimeout(deadline);
|
|
105
|
+
clearTimeout(killTimer);
|
|
106
|
+
const commandError = completionError(failure, timedOut, code);
|
|
107
|
+
try {
|
|
108
|
+
signal("SIGKILL");
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
reject(commandError ?? error);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (commandError !== undefined)
|
|
115
|
+
reject(commandError);
|
|
116
|
+
else
|
|
117
|
+
resolve({ stdout });
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=plugin-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-command.js","sourceRoot":"","sources":["../../src/core/plugin-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwnFpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAotRjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -83,14 +83,14 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
83
83
|
"cdk/create-only/.github/workflows/ci.yml": "49cb9ae3db7a90fd427b866406126b159bcd59962926047d672b6628cac88683",
|
|
84
84
|
"cdk/create-only/.github/workflows/deploy.yml": "0b906d71ba35b4824c6638c89a8a7ddde6cf7a2130155cac55bcc1e70226f74d",
|
|
85
85
|
"cdk/create-only/cdk.json": "f89030d8fe145a1dbabd59d89ddee4e16984f222d737f7fcf6b778d911e9fe40",
|
|
86
|
-
"cdk/create-only/stryker.conf.json": "
|
|
86
|
+
"cdk/create-only/stryker.conf.json": "3490157f983d831defe56f014ffcf49c57e22381a4a180cc9facf2de0238dcf5",
|
|
87
87
|
"cdk/create-only/tsconfig.local.json": "d26253827e21fd7c41d30565fe3d339675f119e00bb24c5713a01f57ccd06602",
|
|
88
88
|
"cdk/create-only/vitest.config.local.ts": "9f8cb94b96dd5d2c4daa39748efc8be8e222374f3c6f4e2eb2c7f69d8532cfd7",
|
|
89
89
|
"cdk/create-only/vitest.thresholds.json": "ce04fe30ad6139f734dbc56d92a801c11cfd86a0d9e49c06c1c2d0a137beeffd",
|
|
90
90
|
"cdk/deletions.json": "3469a25e885836f301e8d24599dd13f5195ef86ffdea1f03f3fbb86d6b1f1674",
|
|
91
91
|
"cdk/merge/.claude/settings.json": "bc5eecf114d94f4894f8781e15248930d4a8009dce6431ec44e54cc5ee947300",
|
|
92
92
|
"cdk/merge/.oxlintrc.json": "f7d248cf8a89561374d7e68e24aa780f4a6a523938475ad685f034ce0194d75c",
|
|
93
|
-
"cdk/package-lisa/package.lisa.json": "
|
|
93
|
+
"cdk/package-lisa/package.lisa.json": "c5bf1f2199c99db02f79e91f11d8a66d3ff5fca55ba6aa2a96301dba71fa52ab",
|
|
94
94
|
"eslint-plugin-code-organization/README.md": "e70c9e262ce3a97e1f9fe1897ffa71e3d1b124f10486b90ead5d4a5252977826",
|
|
95
95
|
"eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js": "27e8e2cdf9bae3c35c22f17407570a163cfe52bd848ec40f7f2f1068e97c10c9",
|
|
96
96
|
"eslint-plugin-code-organization/index.js": "9be5ecb135bc30cf39a3371825e94f8a379d8339653297bd7e48c07624923c83",
|
|
@@ -105,7 +105,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
105
105
|
"eslint-plugin-component-structure/__tests__/single-component-per-file.test.js": "8c6ab28190557284d78175d397238c9e896f40c9e1e3f3e02e5b74a81460df6e",
|
|
106
106
|
"eslint-plugin-component-structure/index.js": "d7a59cd26c6065584dc85a6e3c25f5e1e36c883abdb64083f4f9c40dd6106e2c",
|
|
107
107
|
"eslint-plugin-component-structure/lib/view-file-scope.js": "d24c4477ebba4a815344a655e932657b695ac06489f3f7f742ba2b6c137b15ec",
|
|
108
|
-
"eslint-plugin-component-structure/package.json": "
|
|
108
|
+
"eslint-plugin-component-structure/package.json": "d7d7ba887bfc487bfdcdb598d1e56bedc740be33f1e3591a0f95bd9e4ada2fe6",
|
|
109
109
|
"eslint-plugin-component-structure/rules/enforce-component-structure.js": "0f2c8118534c5602fda6d8637c3a6e3c2f33cd2a753e84b9d4ac92300997df81",
|
|
110
110
|
"eslint-plugin-component-structure/rules/no-hooks-in-view.js": "ccfb45a61873eff6c2fe112634fc5cb010c54665cd89ff6026405be2dbb90e82",
|
|
111
111
|
"eslint-plugin-component-structure/rules/no-return-in-view.js": "8a8328fe7dca562a4408be11029334bbd93a71a978704fd7a26754d32b0e98d7",
|
|
@@ -177,7 +177,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
177
177
|
"expo/create-only/lighthouserc-config.json": "b8f97cad66d4ce51a0776a12774364cb7bb8bd0c6686a16382890586105b5e38",
|
|
178
178
|
"expo/create-only/lighthouserc.js": "b8ff8f57b130bb65e512b8a372a9c85de4fb9b6d2d447459e457ab883310cc00",
|
|
179
179
|
"expo/create-only/scripts/zap-baseline.sh": "7ecfcb911f2f2284eb672c9eb960a1588792a984a713cb2e5f5d9963b32af910",
|
|
180
|
-
"expo/create-only/stryker.conf.json": "
|
|
180
|
+
"expo/create-only/stryker.conf.json": "bb2ba45f180d7172377c6ef0ed6d40e15e111c72ae7080edb81ca01faa916eb7",
|
|
181
181
|
"expo/create-only/tsconfig.json": "fdb99e32d1588e75735755d7b5caab406ad8387c21a3d820cd3b40cb9218a191",
|
|
182
182
|
"expo/create-only/tsconfig.local.json": "dad4b4a00c890ce8c30db87ad3f8e92e2273e31c2c2a6436d0ab327b47f72758",
|
|
183
183
|
"expo/deletions.json": "23a96024eafeb4405588c3f39c1c9325f45bd94d365b4a3919f6c7646c561035",
|
|
@@ -185,7 +185,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
185
185
|
"expo/github-rulesets/nightly-e2e-health.json": "af9556f52bbb04d303f557eb178d876d82348d15a991729b8a96fb1f06d5b03a",
|
|
186
186
|
"expo/merge/.claude/settings.json": "88dead1b9146e016fb2b2e63b7234d6adf94a3b3e5e30b98214e5660a219f737",
|
|
187
187
|
"expo/merge/.oxlintrc.json": "95b3069256c0040be0ef1a5adae46d14687ad56fb18f473a653ba2de45d106bb",
|
|
188
|
-
"expo/package-lisa/package.lisa.json": "
|
|
188
|
+
"expo/package-lisa/package.lisa.json": "4a2e6df44b00c5c7eacf786b95dc211f902c8ea567be824dbb100f33d5d1deef",
|
|
189
189
|
"harper-fabric/copy-contents/.prettierignore": "478c782f4c5611187e21584dfd5522e37fc636c5eb03394fea3db45321c6712c",
|
|
190
190
|
"harper-fabric/copy-contents/gitignore": "d091c40fd0ea3068491f1be0d6510090ae872ca95d0d058ef4595d6492d13897",
|
|
191
191
|
"harper-fabric/copy-overwrite/.github/workflows/ci.yml": "1e51fd8cb8156ff3e79931bbed80e646b6fb46744b6c1bd39fa5a1da966f64aa",
|
|
@@ -205,7 +205,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
205
205
|
"harper-fabric/deletions.json": "699c6e445c053bc95cdf4b7ef6a852e243d1073d21087ed7c08db69d1d29ac9c",
|
|
206
206
|
"harper-fabric/merge/.claude/settings.json": "3368043731215c6e2f107f1599eff1c90abc70d09a1d798f4ed79a280c4f3ffb",
|
|
207
207
|
"harper-fabric/merge/.oxlintrc.json": "b41ea588eed47e0f1532aab5f6226b82586269b84edd1947bdde603e0a8513fa",
|
|
208
|
-
"harper-fabric/package-lisa/package.lisa.json": "
|
|
208
|
+
"harper-fabric/package-lisa/package.lisa.json": "203f4cae4999768ac3190cf12c22a9837a710938b6cf1913d69997bab99b8353",
|
|
209
209
|
"nestjs/copy-overwrite/eslint.config.ts": "300895743cd8e3041f164902e1c8e509d8ef07474848a70621ac354d73595477",
|
|
210
210
|
"nestjs/copy-overwrite/eslint.nestjs.ts": "50986c80ebfcbef86b6c24d6a50ace0964d43fe85c65a732230388caffab453c",
|
|
211
211
|
"nestjs/copy-overwrite/eslint.slow.config.ts": "602a21f47370a0a947e92bced1b93bf8fa4c146e07c944ffe1d56ef50914a688",
|
|
@@ -249,7 +249,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
249
249
|
"nestjs/deletions.json": "25a66a505f9ef5c71169e2293c9f1b263f0a1e42b69851825c3cd3cc6e3f0b00",
|
|
250
250
|
"nestjs/merge/.claude/settings.json": "28b1221fa0d18657af1b89392a1854c77777889f27c82162a9c37b79c81be5f8",
|
|
251
251
|
"nestjs/merge/.oxlintrc.json": "1de29d135744df0258e8659ee0b684acf84e687bbefade51db0576813e6ff097",
|
|
252
|
-
"nestjs/package-lisa/package.lisa.json": "
|
|
252
|
+
"nestjs/package-lisa/package.lisa.json": "66a5242a7486aa82a147fa6d50ec1071fda5e964f3127ab7c4f980150fae0b57",
|
|
253
253
|
"npm-package/create-only/.github/workflows/publish-to-npm.yml": "20760529dd59186baf870fb2d0ac555ff95bc3dc75ea96ba4564bf37d61f708e",
|
|
254
254
|
"npm-package/package-lisa/package.lisa.json": "2a61fd5f0e27578e58ac9b1368cf5d6ad4df15591348f1f3ea97cd2c6d24974f",
|
|
255
255
|
"oxlint/base.json": "8cbc563bdfbbaf455742cef24d33676f45b55baf1ea62b529018b2d112d70f8a",
|
|
@@ -279,7 +279,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
279
279
|
"phaser/deletions.json": "699c6e445c053bc95cdf4b7ef6a852e243d1073d21087ed7c08db69d1d29ac9c",
|
|
280
280
|
"phaser/merge/.claude/settings.json": "67214a76e1902a8a04a58eb938dba9eb8de39b55fda9f748eb9e7c4bbd31da99",
|
|
281
281
|
"phaser/merge/.oxlintrc.json": "02c0d70e6e07bc0e981f94a1e2ccd01a2c295c4c66e8b8ea9b2f363d44fa5c06",
|
|
282
|
-
"phaser/package-lisa/package.lisa.json": "
|
|
282
|
+
"phaser/package-lisa/package.lisa.json": "09a185f2f46cda72c314cf13d9bf3f9a0d8a865496d73c5bdd02888b81cfe759",
|
|
283
283
|
"plugins/src/base/agents/architecture-specialist.md": "2346c37ddce2b1ff059938d71be05f5f23acfe28066bcba4f9a1070ed6727a93",
|
|
284
284
|
"plugins/src/base/agents/bug-fixer.md": "04b49321519b050a654e83e64749fe5126fa552189c2bbc9a9cef853a089295d",
|
|
285
285
|
"plugins/src/base/agents/builder.md": "ce8b611df9c0f4bbafc9032c9e72c78177c0b2b22065c9bafc4999189870284a",
|
|
@@ -1090,9 +1090,9 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1090
1090
|
"plugins/src/wiki/templates/wrapper-gitignore.txt": "6cbaaaeb9281c3079a7f6525b28aae54703bc052dc21ea3374e52100e43dddde",
|
|
1091
1091
|
"rails/copy-contents/Gemfile": "1250d4cff8575cecfde3c9491c4eb1fe4d0e6aac6d5febd54a60635d3644faaa",
|
|
1092
1092
|
"rails/copy-contents/scripts/lisa-mutation.sh": "dfe6e7a208fe72d02355548d9aba8484748b7d95eca0bf989043008311af29c4",
|
|
1093
|
-
"rails/copy-overwrite/.rubocop.yml": "
|
|
1093
|
+
"rails/copy-overwrite/.rubocop.yml": "e66d8cb195af1ca73e0dbeb08877bf6e6766e226717613c34d6e5bd52457cc97",
|
|
1094
1094
|
"rails/copy-overwrite/.versionrc": "b6c4c0258819fa186a91d96cdeac7a017f36cfe1d2c59ccb69cff75c1a8598e0",
|
|
1095
|
-
"rails/copy-overwrite/Gemfile.lisa": "
|
|
1095
|
+
"rails/copy-overwrite/Gemfile.lisa": "50c6fb6bf7ebf76e1f3e65e8100ac5e33177185013c94c4f19967015a3328f75",
|
|
1096
1096
|
"rails/copy-overwrite/ast-grep/rule-tests/.gitkeep": "fd9b902271d9cbaca0ead2a1e659776db904c10b06ceed7e5bc43fa57b89aba1",
|
|
1097
1097
|
"rails/copy-overwrite/ast-grep/rules/no-day-truncating-file-age-predicate.yml": "6fad69e83ab937f6d929305be46fbe38390cd30c8b525ab0a24a5ac65d377ef6",
|
|
1098
1098
|
"rails/copy-overwrite/ast-grep/rules/ruby/no-find-by-sql-without-params.yml": "313278315d8c8b0c0b0d905d78d56640c29fa5e367fc020a16d1868f7e44be83",
|
|
@@ -1118,14 +1118,14 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1118
1118
|
"rails/create-only/.rspec": "06245e25d7cf46b4fbde27b5faa0df0d4110e11918eeb5848de4ab2aff897b59",
|
|
1119
1119
|
"rails/create-only/.rubocop.local.yml": "241045ea0d161b45f3401a6198ce7f500fe108babc6c5b23bf520b531b3c1765",
|
|
1120
1120
|
"rails/create-only/.rubocop_todo.yml": "2b35494aef30e0ffac4f00fed16f06a6f0ed7929b683f008f3185efded3ba37f",
|
|
1121
|
-
"rails/create-only/.simplecov": "
|
|
1121
|
+
"rails/create-only/.simplecov": "24ade15d624f8f46e5cedc30b9152595cc2b456aeb56a016003796b53231095b",
|
|
1122
1122
|
"rails/create-only/VERSION": "6b13789e43e5485634533de16a65d8ba9d34c4c9758588b665805435f80eb115",
|
|
1123
1123
|
"rails/create-only/mutation.gate.yml": "aa3599015e28c1efddb03004730897c76696fe72ed1a9ef1c7761533490effec",
|
|
1124
1124
|
"rails/create-only/rubocop.thresholds.yml": "8f1c2a5f31a66525fbb31b985011d88fb22b64248412b783752e90fe4ca14219",
|
|
1125
1125
|
"rails/create-only/simplecov.thresholds.json": "b9ad3eb44861aa16afffd1ddc7135911b539e3ecac71f2332d68ba3c8ba2e7f7",
|
|
1126
1126
|
"rails/create-only/sonar-project.properties": "58f0618863149a49aa39dc96eca498e8338f24e7d0237fb654ac85920ba57e15",
|
|
1127
1127
|
"rails/create-only/spec/rails_helper.rb": "b12256cd12baf050efc960417ad426ffaa2d7de13f2dda4523c6fdcd5be9a582",
|
|
1128
|
-
"rails/create-only/spec/spec_helper.rb": "
|
|
1128
|
+
"rails/create-only/spec/spec_helper.rb": "e159fe6f5ce9b8783ca61effb36e3c5a947e7c8306246353eceb34e340601976",
|
|
1129
1129
|
"rails/deletions.json": "3d620c23be802104f69d2b4438b0d1922979ad2b5c5eb0ee85213cd4adb17fb2",
|
|
1130
1130
|
"rails/github-rulesets/quality-checks.json": "0ec1c366589edbaa6b8f45f940cef3ada5ed7b1a956d98d3fa6034b0f78fbc7c",
|
|
1131
1131
|
"rails/merge/.claude/settings.json": "16c30d17bc6941a1ffa7fce54a5ab2e87101f7ea77a69b1d695eccd07e156ab7",
|
|
@@ -1255,7 +1255,9 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1255
1255
|
"scripts/verify-health-contract-built.mjs": "4041780d412bee7b9e1bbe24d908bac64705184a8b0698f0d5bb748ec36b0bcd",
|
|
1256
1256
|
"scripts/verify-health-deterministic-built.mjs": "9016663d16c93d0d0d74b41a957d200cd3aa8ef5b12e0879d24ba5ea041ab307",
|
|
1257
1257
|
"scripts/verify-learner-frontmatter-built.mjs": "b8ac0240726721a047811e98d42f661426abc3e427a0c86f3b20082eb498809d",
|
|
1258
|
+
"scripts/verify-npm-advisories-4333.mjs": "f0a94aead747c28cf1317d999a4eb80ae027461a43ed22b5b996173a5a096aae",
|
|
1258
1259
|
"scripts/verify-packed-learnings-contract.mjs": "2227b32f3b3dc2dc6817a60b4998b64881c03e30ecd15cb52b6d6f95a5870613",
|
|
1260
|
+
"scripts/verify-rails-tooling.rb": "5e7a52c1929c9eba873d2fc1f0baa1cc684e9913d4b27c5c42819bb1ac0539cf",
|
|
1259
1261
|
"scripts/workflow-contract-assertion.sh": "191b5e766e1defb3bee3befbc8354abd9a46d3989eede7a420cd8893885df137",
|
|
1260
1262
|
"tsconfig/base.json": "d04a105ec81aa9dc69d230d4a83406d920c305b6fc13c641ebafde0c41fc658f",
|
|
1261
1263
|
"tsconfig/build.json": "a743350ea93b0e8d2151c974c5a8a4cbcf946cd7f06c40d83146079bde70afe1",
|
|
@@ -1327,7 +1329,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1327
1329
|
"typescript/create-only/jest.config.local.ts": "5d5603e5b79ab0379cda135159ad83aef3ec914fa037c83fc7176363b64c8422",
|
|
1328
1330
|
"typescript/create-only/jest.thresholds.json": "ce04fe30ad6139f734dbc56d92a801c11cfd86a0d9e49c06c1c2d0a137beeffd",
|
|
1329
1331
|
"typescript/create-only/mutation.gate.json": "53adce2f6ef53f4a46d896210828610bf4f9b1f45ebbf6c7cf0addf9982a161a",
|
|
1330
|
-
"typescript/create-only/stryker.conf.json": "
|
|
1332
|
+
"typescript/create-only/stryker.conf.json": "13aa8b4515f093133645fb3bf115c8f52991fd4f956501a9aae22d320a1dbb9a",
|
|
1331
1333
|
"typescript/create-only/tsconfig.local.json": "727931ff950c5606b74040963429407c820743dfd20cb1732656eca963575208",
|
|
1332
1334
|
"typescript/create-only/vitest.config.local.ts": "9f8cb94b96dd5d2c4daa39748efc8be8e222374f3c6f4e2eb2c7f69d8532cfd7",
|
|
1333
1335
|
"typescript/create-only/vitest.thresholds.json": "ce04fe30ad6139f734dbc56d92a801c11cfd86a0d9e49c06c1c2d0a137beeffd",
|
|
@@ -1335,7 +1337,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1335
1337
|
"typescript/github-rulesets/quality-checks.json": "3aa1c6dbc703ad2ecd87c6f7fdff1aae118696dba95c9795c2c954c6b8a444d9",
|
|
1336
1338
|
"typescript/merge/.claude/settings.json": "a455fb55d5bf99f7f71136a3a4f8f21b283b9627556c3b22d039b01d093eb2a9",
|
|
1337
1339
|
"typescript/merge/.oxlintrc.json": "9504c20db80470c242c4ffe8cccad6951ed8141dfb5bf6503053e0b2712ab276",
|
|
1338
|
-
"typescript/package-lisa/package.lisa.json": "
|
|
1340
|
+
"typescript/package-lisa/package.lisa.json": "50c615f7fb8ff483a55d68349d803fd46441e19afbb13bb29f8e82759d096011",
|
|
1339
1341
|
"ui/README.md": "7a67d7bdd49ff214ca204cc4e54ba70c37aa05fd6cc1e314fd9441a53eafc752",
|
|
1340
1342
|
"ui/index.html": "3ca3e2ef53fa35ffee3d54b8eeaecd9a6a29a019a9db5b46184affd010b34f1d",
|
|
1341
1343
|
});
|
|
@@ -1635,8 +1637,10 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
1635
1637
|
"docs/kane-cli-pilot.example.json": true,
|
|
1636
1638
|
"docs/maestro-flake-classification.md": true,
|
|
1637
1639
|
"docs/nightly-e2e-gate.md": true,
|
|
1640
|
+
"docs/npm-advisory-dispositions.md": true,
|
|
1638
1641
|
"docs/quality-workflow-notes.md": true,
|
|
1639
1642
|
"docs/rails-test-isolation.md": true,
|
|
1643
|
+
"docs/rails-tooling-migration.md": true,
|
|
1640
1644
|
"docs/remote-agent-aws.md": true,
|
|
1641
1645
|
"docs/wiki-inbox/.gitkeep": true,
|
|
1642
1646
|
"docs/wiki-inbox/2026-08-12-lisa-improvement-notes.md": true,
|
|
@@ -7531,7 +7535,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7531
7535
|
"scripts/verify-health-contract-built.mjs": true,
|
|
7532
7536
|
"scripts/verify-health-deterministic-built.mjs": true,
|
|
7533
7537
|
"scripts/verify-learner-frontmatter-built.mjs": true,
|
|
7538
|
+
"scripts/verify-npm-advisories-4333.mjs": true,
|
|
7534
7539
|
"scripts/verify-packed-learnings-contract.mjs": true,
|
|
7540
|
+
"scripts/verify-rails-tooling.rb": true,
|
|
7535
7541
|
"scripts/workflow-contract-assertion.sh": true,
|
|
7536
7542
|
"sgconfig.yml": true,
|
|
7537
7543
|
"shipped-removals.json": true,
|
|
@@ -7898,6 +7904,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7898
7904
|
"src/core/nightly-e2e-pull-request-triggers.ts": true,
|
|
7899
7905
|
"src/core/override-floors.ts": true,
|
|
7900
7906
|
"src/core/ownership-header.ts": true,
|
|
7907
|
+
"src/core/plugin-command.ts": true,
|
|
7901
7908
|
"src/core/project-config-kane.ts": true,
|
|
7902
7909
|
"src/core/project-config-learnings.ts": true,
|
|
7903
7910
|
"src/core/project-config-nightly-e2e.ts": true,
|
|
@@ -8198,6 +8205,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8198
8205
|
"tests/helpers/__fixtures__/cdk-synth-case.ts": true,
|
|
8199
8206
|
"tests/helpers/__fixtures__/coverage-scratch-concurrent.ts": true,
|
|
8200
8207
|
"tests/helpers/__fixtures__/margin-guard-case.ts": true,
|
|
8208
|
+
"tests/helpers/__fixtures__/plugin-registration-cli.mjs": true,
|
|
8201
8209
|
"tests/helpers/__fixtures__/scratch-authority-concurrent.ts": true,
|
|
8202
8210
|
"tests/helpers/__fixtures__/scratch-inherited-lease.mjs": true,
|
|
8203
8211
|
"tests/helpers/__fixtures__/scratch-leak-case.ts": true,
|
|
@@ -8770,6 +8778,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8770
8778
|
"tests/unit/config/process-tree-runner-common-delivery.test.ts": true,
|
|
8771
8779
|
"tests/unit/config/rails-scratch-supervisor-routes.test.ts": true,
|
|
8772
8780
|
"tests/unit/config/rails-template.test.ts": true,
|
|
8781
|
+
"tests/unit/config/rails-tooling-refresh.test.ts": true,
|
|
8773
8782
|
"tests/unit/config/release-package-identity-workflows.test.ts": true,
|
|
8774
8783
|
"tests/unit/config/release-push-retry.test.ts": true,
|
|
8775
8784
|
"tests/unit/config/release-quality-secret-forwarding.test.ts": true,
|
|
@@ -8887,8 +8896,11 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8887
8896
|
"tests/unit/core/lisa-skill-sources.test.ts": true,
|
|
8888
8897
|
"tests/unit/core/nightly-e2e-pull-request-triggers.test.ts": true,
|
|
8889
8898
|
"tests/unit/core/no-downstream-project-names.test.ts": true,
|
|
8899
|
+
"tests/unit/core/npm-advisory-governance-4333.test.ts": true,
|
|
8890
8900
|
"tests/unit/core/override-floors.test.ts": true,
|
|
8891
8901
|
"tests/unit/core/packed-learnings-contract.test.ts": true,
|
|
8902
|
+
"tests/unit/core/plugin-command-lifecycle.test.ts": true,
|
|
8903
|
+
"tests/unit/core/plugin-registration-liveness.test.ts": true,
|
|
8892
8904
|
"tests/unit/core/plugin-sync-marker.test.ts": true,
|
|
8893
8905
|
"tests/unit/core/project-config-harness-migration.test.ts": true,
|
|
8894
8906
|
"tests/unit/core/project-config-kane.test.ts": true,
|