@codyswann/lisa 4.50.8 → 4.51.0
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/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/reusable-workflow-load-adapter.d.ts +78 -0
- package/dist/core/reusable-workflow-load-adapter.d.ts.map +1 -0
- package/dist/core/reusable-workflow-load-adapter.js +125 -0
- package/dist/core/reusable-workflow-load-adapter.js.map +1 -0
- package/dist/core/reusable-workflow-load-failure.d.ts +144 -0
- package/dist/core/reusable-workflow-load-failure.d.ts.map +1 -0
- package/dist/core/reusable-workflow-load-failure.js +184 -0
- package/dist/core/reusable-workflow-load-failure.js.map +1 -0
- package/dist/core/reusable-workflow-load-scan.d.ts +92 -0
- package/dist/core/reusable-workflow-load-scan.d.ts.map +1 -0
- package/dist/core/reusable-workflow-load-scan.js +108 -0
- package/dist/core/reusable-workflow-load-scan.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +10 -0
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +5 -4
- 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/scripts/check-workflow-load-failures.ts +171 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reusable-workflow-load-scan.d.ts","sourceRoot":"","sources":["../../src/core/reusable-workflow-load-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,qCAAqC,CAAC;AAE7C,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,+BAA+B;AAC/B,MAAM,WAAW,OAAO;IACtB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAChC;AAED,yBAAyB;AACzB,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAyED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page a repository's run history and report reusable-workflow load failures
|
|
3
|
+
* (CodySwannGT/lisa#3581).
|
|
4
|
+
*
|
|
5
|
+
* `core/reusable-workflow-load-failure` decides what a single run means. This
|
|
6
|
+
* module is the part that has to READ enough runs for that verdict to be worth
|
|
7
|
+
* anything, and it is a separate module because the two failure modes are
|
|
8
|
+
* unrelated: one is a misclassification, the other is a detector reporting on
|
|
9
|
+
* a window it never covered.
|
|
10
|
+
*
|
|
11
|
+
* The page fetcher is injected rather than imported. That is not a testing
|
|
12
|
+
* convenience — it is the only way the paging and coverage logic here can be
|
|
13
|
+
* exercised at all, because the alternative is a live API call whose rate
|
|
14
|
+
* limit decides whether the suite passes. Every rule below is proven against
|
|
15
|
+
* fixture pages; the `gh api` adapter that supplies real ones is a caller's
|
|
16
|
+
* job and is deliberately not part of this module.
|
|
17
|
+
* @module core/reusable-workflow-load-scan
|
|
18
|
+
*/
|
|
19
|
+
import { classifyRunLoad, windowCoverage, } from "./reusable-workflow-load-failure.js";
|
|
20
|
+
/**
|
|
21
|
+
* Whether a run predates the window, so everything after it can be ignored.
|
|
22
|
+
* @param run - The run being considered
|
|
23
|
+
* @param windowStart - ISO timestamp the scan intends to cover back to
|
|
24
|
+
* @returns True only when this run is at or before the start of the window
|
|
25
|
+
*/
|
|
26
|
+
function reachedWindow(run, windowStart) {
|
|
27
|
+
const created = Date.parse(run.createdAt);
|
|
28
|
+
const start = Date.parse(windowStart);
|
|
29
|
+
// An unparseable timestamp must not read as "we are past the window" —
|
|
30
|
+
// that would end the scan early and call the short read complete.
|
|
31
|
+
if (Number.isNaN(created) || Number.isNaN(start))
|
|
32
|
+
return false;
|
|
33
|
+
return created <= start;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Classify one run through the shared decision.
|
|
37
|
+
* @param run - The run being classified
|
|
38
|
+
* @param inPopulation - Whether this run's caller declares a reusable workflow
|
|
39
|
+
* @returns The run's id, caller path, and verdict
|
|
40
|
+
*/
|
|
41
|
+
function findingFor(run, inPopulation) {
|
|
42
|
+
return {
|
|
43
|
+
id: run.id,
|
|
44
|
+
path: run.path,
|
|
45
|
+
verdict: classifyRunLoad({
|
|
46
|
+
inPopulation,
|
|
47
|
+
referencedCount: run.referencedCount,
|
|
48
|
+
jobCount: run.jobCount,
|
|
49
|
+
conclusion: run.conclusion,
|
|
50
|
+
}),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Fold one page into the running scan state.
|
|
55
|
+
* @param state - Everything the scan has accumulated so far
|
|
56
|
+
* @param page - The page just fetched
|
|
57
|
+
* @param request - The scan request, for its window and population test
|
|
58
|
+
* @returns The scan state after absorbing this page
|
|
59
|
+
*/
|
|
60
|
+
function absorb(state, page, request) {
|
|
61
|
+
const findings = page.runs.map(run => findingFor(run, request.inPopulation(run.path)));
|
|
62
|
+
const oldest = page.runs.at(-1)?.createdAt ?? state.oldestSeen;
|
|
63
|
+
const reached = page.runs.some(run => reachedWindow(run, request.windowStart));
|
|
64
|
+
return {
|
|
65
|
+
findings: [...state.findings, ...findings],
|
|
66
|
+
inspected: state.inspected + page.runs.length,
|
|
67
|
+
oldestSeen: oldest,
|
|
68
|
+
exhausted: !page.hasMore,
|
|
69
|
+
done: reached || !page.hasMore,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Read run history until the window is covered, then report load failures.
|
|
74
|
+
*
|
|
75
|
+
* Paging stops on the first of three conditions: a run older than the window
|
|
76
|
+
* was seen, the history ran out, or `maxPages` was reached. Only the first
|
|
77
|
+
* two are coverage; hitting the cap leaves `covered` false, because a cap is
|
|
78
|
+
* a budget the operator set and not evidence about the runs beyond it.
|
|
79
|
+
* @param request - Fetcher, window, population test, and page cap
|
|
80
|
+
* @returns Findings plus whether the window was actually covered
|
|
81
|
+
*/
|
|
82
|
+
export async function scanForLoadFailures(request) {
|
|
83
|
+
const initial = {
|
|
84
|
+
findings: [],
|
|
85
|
+
inspected: 0,
|
|
86
|
+
oldestSeen: null,
|
|
87
|
+
exhausted: false,
|
|
88
|
+
done: false,
|
|
89
|
+
};
|
|
90
|
+
const final = await Array.from({ length: request.maxPages }, (_unused, index) => index + 1).reduce(async (carried, pageNumber) => {
|
|
91
|
+
const state = await carried;
|
|
92
|
+
if (state.done)
|
|
93
|
+
return state;
|
|
94
|
+
return absorb(state, await request.fetchPage(pageNumber), request);
|
|
95
|
+
}, Promise.resolve(initial));
|
|
96
|
+
const coverage = windowCoverage({
|
|
97
|
+
oldestSeen: final.oldestSeen,
|
|
98
|
+
windowStart: request.windowStart,
|
|
99
|
+
exhausted: final.exhausted,
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
loadFailures: final.findings.filter(finding => finding.verdict === "load-failure"),
|
|
103
|
+
inspected: final.inspected,
|
|
104
|
+
covered: coverage.covered,
|
|
105
|
+
reason: coverage.reason,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=reusable-workflow-load-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reusable-workflow-load-scan.js","sourceRoot":"","sources":["../../src/core/reusable-workflow-load-scan.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,CA4iFpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAq0QjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -1132,6 +1132,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1132
1132
|
"scripts/check-typecheck-tests.mjs": "499d996707e12a323d7575318ea16228eb9cae71ecce5fb369c771399b673866",
|
|
1133
1133
|
"scripts/check-ui-demo-data.mjs": "82a5ed89ae830482dbaab99e2f8eeededcde60a7dd6ac145f191b4ac8394c85b",
|
|
1134
1134
|
"scripts/check-whole-output-guards.mjs": "bb3c959fe67a6f481a9b8442a5a9a51a49599b4efd8fbefe3329fdf5c96b9c02",
|
|
1135
|
+
"scripts/check-workflow-load-failures.ts": "494113253fd4830e79e658429c15533c045ac8c5ad3ec365e3dc2a39742f8d2c",
|
|
1135
1136
|
"scripts/check-workflow-package-paths.mjs": "d057c7666ad048cfbd11a1ef83ad1e13fb1c61a9d399ec83221c99c4256728a1",
|
|
1136
1137
|
"scripts/claude-remote-setup.sh": "0e33accf8aa057c70497f01c38bef9f9f3801d649272f583578d89201b242655",
|
|
1137
1138
|
"scripts/clean-dist.mjs": "04970d768464acbf96ebeb77c16a6a3b3da56c744eef0da64c573c6152ee0dc7",
|
|
@@ -1422,6 +1423,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
1422
1423
|
".github/workflows/sentry-deploy.yml": true,
|
|
1423
1424
|
".github/workflows/third-party-review-evidence.yml": true,
|
|
1424
1425
|
".github/workflows/weekly-mutation-wholelist-bite.yml": true,
|
|
1426
|
+
".github/workflows/workflow-load-failure-sweep.yml": true,
|
|
1425
1427
|
".github/workflows/zap-baseline-expo.yml": true,
|
|
1426
1428
|
".github/workflows/zap-baseline-nestjs.yml": true,
|
|
1427
1429
|
".gitignore": true,
|
|
@@ -7246,6 +7248,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7246
7248
|
"scripts/check-typecheck-tests.mjs": true,
|
|
7247
7249
|
"scripts/check-ui-demo-data.mjs": true,
|
|
7248
7250
|
"scripts/check-whole-output-guards.mjs": true,
|
|
7251
|
+
"scripts/check-workflow-load-failures.ts": true,
|
|
7249
7252
|
"scripts/check-workflow-package-paths.mjs": true,
|
|
7250
7253
|
"scripts/claude-remote-setup.sh": true,
|
|
7251
7254
|
"scripts/clean-dist.mjs": true,
|
|
@@ -7680,6 +7683,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7680
7683
|
"src/core/project-config-nightly-e2e.ts": true,
|
|
7681
7684
|
"src/core/project-config.ts": true,
|
|
7682
7685
|
"src/core/reconciliation-report.ts": true,
|
|
7686
|
+
"src/core/reusable-workflow-load-adapter.ts": true,
|
|
7687
|
+
"src/core/reusable-workflow-load-failure.ts": true,
|
|
7688
|
+
"src/core/reusable-workflow-load-scan.ts": true,
|
|
7683
7689
|
"src/core/reusable-workflow-pin.ts": true,
|
|
7684
7690
|
"src/core/safe-relative-markdown-path.ts": true,
|
|
7685
7691
|
"src/core/self-apply.ts": true,
|
|
@@ -8577,6 +8583,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8577
8583
|
"tests/unit/core/project-config-nightly-e2e-default.test.ts": true,
|
|
8578
8584
|
"tests/unit/core/project-config-nightly-e2e.test.ts": true,
|
|
8579
8585
|
"tests/unit/core/project-config.test.ts": true,
|
|
8586
|
+
"tests/unit/core/reusable-workflow-load-adapter.test.ts": true,
|
|
8587
|
+
"tests/unit/core/reusable-workflow-load-failure.test.ts": true,
|
|
8588
|
+
"tests/unit/core/reusable-workflow-load-scan.test.ts": true,
|
|
8580
8589
|
"tests/unit/core/reusable-workflow-pin-absent-callee.test.ts": true,
|
|
8581
8590
|
"tests/unit/core/reusable-workflow-pin.test.ts": true,
|
|
8582
8591
|
"tests/unit/core/role-agent-template-contract.test.ts": true,
|
|
@@ -8593,6 +8602,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8593
8602
|
"tests/unit/core/upstream-attribution-file-safety.test.ts": true,
|
|
8594
8603
|
"tests/unit/core/upstream-attribution-integrity.test.ts": true,
|
|
8595
8604
|
"tests/unit/core/workflow-deletion-ownership.test.ts": true,
|
|
8605
|
+
"tests/unit/core/workflow-load-failure-wiring.test.ts": true,
|
|
8596
8606
|
"tests/unit/core/workflow-reference-guard.test.ts": true,
|
|
8597
8607
|
"tests/unit/detection/cdk-app-shape.test.ts": true,
|
|
8598
8608
|
"tests/unit/detection/detectors.test.ts": true,
|