@codyswann/lisa 3.45.9 → 3.45.10
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/all/copy-overwrite/scripts/lisa-floor-collisions.mjs +17 -1
- package/all/copy-overwrite/scripts/lisa-gates.mjs +2 -2
- package/all/copy-overwrite/scripts/lisa-work-item.mjs +54 -12
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +15 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +11 -10
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/expo/copy-overwrite/scripts/bdd/discover.mjs +20 -4
- package/expo/copy-overwrite/scripts/bdd/markdown-cell.mjs +7 -1
- package/expo/copy-overwrite/scripts/bdd/parse.mjs +8 -2
- package/expo/copy-overwrite/scripts/check-e2e-coverage.mjs +8 -2
- package/expo/copy-overwrite/scripts/classify-maestro-failures.mjs +91 -10
- package/package.json +1 -1
- 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/typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs +22 -6
- package/typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs +10 -1
|
@@ -2169,6 +2169,22 @@ function sleep(ms) {
|
|
|
2169
2169
|
/** GitHub's remaining-quota response header, read from three call sites. */
|
|
2170
2170
|
const RATELIMIT_REMAINING_HEADER = "x-ratelimit-remaining";
|
|
2171
2171
|
|
|
2172
|
+
/**
|
|
2173
|
+
* The `accept` value that selects GitHub's versioned REST media type.
|
|
2174
|
+
*
|
|
2175
|
+
* Named because it is a wire contract shared by every request this file makes:
|
|
2176
|
+
* send a different one and the API answers with a different response shape,
|
|
2177
|
+
* which every parser below would then misread rather than reject.
|
|
2178
|
+
*/
|
|
2179
|
+
const GITHUB_ACCEPT = "application/vnd.github+json";
|
|
2180
|
+
|
|
2181
|
+
/**
|
|
2182
|
+
* The `user-agent` GitHub sees. GitHub requires one, and this value is how a
|
|
2183
|
+
* request from this check is told apart from any other Lisa traffic in an
|
|
2184
|
+
* audit log — so it is one string, not three that can drift apart.
|
|
2185
|
+
*/
|
|
2186
|
+
const HEALTH_USER_AGENT = "lisa-nightly-e2e-health";
|
|
2187
|
+
|
|
2172
2188
|
/**
|
|
2173
2189
|
* How long to wait before retrying a throttled response, bounded.
|
|
2174
2190
|
*
|
|
@@ -2211,10 +2227,10 @@ export async function apiGet(api, path, wait = sleep) {
|
|
|
2211
2227
|
try {
|
|
2212
2228
|
response = await fetch(`${api.apiUrl}${path}`, {
|
|
2213
2229
|
headers: {
|
|
2214
|
-
accept:
|
|
2230
|
+
accept: GITHUB_ACCEPT,
|
|
2215
2231
|
authorization: `Bearer ${api.token}`,
|
|
2216
2232
|
"x-github-api-version": "2022-11-28",
|
|
2217
|
-
"user-agent":
|
|
2233
|
+
"user-agent": HEALTH_USER_AGENT,
|
|
2218
2234
|
},
|
|
2219
2235
|
});
|
|
2220
2236
|
} catch (error) {
|
|
@@ -2523,11 +2539,11 @@ export async function apiWrite(api, method, path, payload, wait = sleep) {
|
|
|
2523
2539
|
response = await fetch(`${api.apiUrl}${path}`, {
|
|
2524
2540
|
method,
|
|
2525
2541
|
headers: {
|
|
2526
|
-
accept:
|
|
2542
|
+
accept: GITHUB_ACCEPT,
|
|
2527
2543
|
authorization: `Bearer ${api.token}`,
|
|
2528
2544
|
"content-type": "application/json",
|
|
2529
2545
|
"x-github-api-version": "2022-11-28",
|
|
2530
|
-
"user-agent":
|
|
2546
|
+
"user-agent": HEALTH_USER_AGENT,
|
|
2531
2547
|
},
|
|
2532
2548
|
body: JSON.stringify(payload),
|
|
2533
2549
|
});
|
|
@@ -2600,10 +2616,10 @@ export async function setIssuePin(api, nodeId, pinned) {
|
|
|
2600
2616
|
const response = await fetch(api.graphqlUrl ?? `${api.apiUrl}/graphql`, {
|
|
2601
2617
|
method: "POST",
|
|
2602
2618
|
headers: {
|
|
2603
|
-
accept:
|
|
2619
|
+
accept: GITHUB_ACCEPT,
|
|
2604
2620
|
authorization: `Bearer ${api.token}`,
|
|
2605
2621
|
"content-type": "application/json",
|
|
2606
|
-
"user-agent":
|
|
2622
|
+
"user-agent": HEALTH_USER_AGENT,
|
|
2607
2623
|
},
|
|
2608
2624
|
body: JSON.stringify({
|
|
2609
2625
|
query: `mutation($id: ID!) { ${mutation}(input: {issueId: $id}) { issue { number } } }`,
|
|
@@ -220,8 +220,17 @@ export const SNAPSHOT_MAX_AGE_DAYS = 90;
|
|
|
220
220
|
* `[ \t]` rather than `\s`: this matches one already-split LINE, so `\s`'s
|
|
221
221
|
* newline class buys nothing and three adjacent `\s*` runs give a backtracking
|
|
222
222
|
* engine work to do for no gain.
|
|
223
|
+
*
|
|
224
|
+
* The capture is `(?:\S.*)?` rather than `.*` for the same reason, one step
|
|
225
|
+
* further. `[ \t]*(.*)` lets both halves claim the same run of spaces, so the
|
|
226
|
+
* engine has a choice to make at every one of them and the match is
|
|
227
|
+
* super-linear in the line's length — S5852, on lines that arrive from a
|
|
228
|
+
* workflow file. Requiring the capture to OPEN on a non-space makes the two
|
|
229
|
+
* halves disjoint, so there is nothing to choose and nothing to give back. An
|
|
230
|
+
* all-whitespace tail still captures the empty string, exactly as before,
|
|
231
|
+
* because `[ \t]*` has already eaten it.
|
|
223
232
|
*/
|
|
224
|
-
const SKIP_JOBS_LINE = /^[ \t]*skip_jobs[ \t]*:[ \t]*(.*)$/;
|
|
233
|
+
const SKIP_JOBS_LINE = /^[ \t]*skip_jobs[ \t]*:[ \t]*((?:\S.*)?)$/;
|
|
225
234
|
|
|
226
235
|
/** Matches the tail permitted after a quoted scalar's closing quote. */
|
|
227
236
|
const TRAILING_COMMENT_ONLY = /^\s*(?:#.*)?$/;
|