@codyswann/lisa 4.68.1 → 4.69.1
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/README.md +16 -0
- package/all/copy-overwrite/scripts/lisa-work-item.mjs +96 -5
- package/all/create-only/.github/workflows/continuous-gates.yml +2 -2
- package/all/create-only/.github/workflows/workflow-load-failure-sweep.yml +1 -1
- package/all/deletions.json +4 -2
- package/cdk/create-only/.github/workflows/ci.yml +2 -2
- package/cdk/create-only/.github/workflows/deploy.yml +3 -3
- package/cdk/package-lisa/package.lisa.json +4 -4
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +8 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/project-config.d.ts +6 -0
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +142 -43
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/lisa-session-bootstrap.ts +41 -1
- package/expo/create-only/.github/workflows/ci.yml +3 -3
- package/expo/create-only/.github/workflows/deploy.yml +4 -4
- package/expo/create-only/.github/workflows/nightly-e2e-bypass-reaper.yml +1 -1
- package/expo/create-only/.github/workflows/playwright-e2e.yml +1 -1
- package/expo/create-only/eas.json +1 -1
- package/harper-fabric/copy-overwrite/.github/workflows/ci.yml +1 -1
- package/harper-fabric/create-only/.github/workflows/deploy.yml +3 -3
- package/harper-fabric/create-only/.github/workflows/zap-baseline.yml +1 -1
- package/harper-fabric/package-lisa/package.lisa.json +3 -3
- package/nestjs/create-only/.github/workflows/ci.yml +2 -2
- package/nestjs/create-only/.github/workflows/deploy.yml +5 -5
- package/nestjs/package-lisa/package.lisa.json +3 -3
- package/npm-package/package-lisa/package.lisa.json +3 -3
- package/package.json +12 -12
- package/phaser/copy-overwrite/.github/workflows/ci.yml +1 -1
- package/phaser/package-lisa/package.lisa.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +11 -1
- package/plugins/lisa/.codex-plugin/hooks.json +10 -0
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/auto-update.mjs +756 -0
- package/plugins/lisa/hooks/auto-update.sh +31 -0
- package/plugins/lisa/hooks/enforcement-vintage-npm.mjs +2 -2
- 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 +11 -1
- package/plugins/lisa-copilot/hooks/auto-update.mjs +756 -0
- package/plugins/lisa-copilot/hooks/auto-update.sh +31 -0
- package/plugins/lisa-copilot/hooks/enforcement-vintage-npm.mjs +2 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/auto-update.mjs +756 -0
- package/plugins/lisa-cursor/hooks/auto-update.sh +31 -0
- package/plugins/lisa-cursor/hooks/enforcement-vintage-npm.mjs +2 -2
- package/plugins/lisa-cursor/hooks/hooks.json +4 -0
- 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/plugins/src/base/.claude-plugin/plugin.json +10 -0
- package/plugins/src/base/hooks/auto-update.mjs +756 -0
- package/plugins/src/base/hooks/auto-update.sh +31 -0
- package/plugins/src/base/hooks/enforcement-vintage-npm.mjs +2 -2
- package/scripts/lib/per-agent-hook-filter.mjs +13 -0
- package/scripts/two-channel-couplings.json +1 -1
- package/scripts/update-node-version.ts +51 -43
- package/typescript/copy-overwrite/.github/GITHUB_ACTIONS.md +2 -2
- package/typescript/copy-overwrite/.nvmrc +1 -1
- package/typescript/copy-overwrite/.prettierignore +0 -1
- package/typescript/copy-overwrite/audit.ignore.config.json +0 -6
- package/typescript/create-only/.github/workflows/ci.yml +1 -1
- package/typescript/create-only/.github/workflows/review-evidence.yml +1 -1
- package/typescript/create-only/.github/workflows/third-party-review-evidence.yml +1 -1
- package/typescript/package-lisa/package.lisa.json +9 -9
- package/ui/index.html +2 -2
- package/all/copy-overwrite/scripts/lisa-self-update.mjs +0 -1047
- package/all/create-only/.github/workflows/lisa-update.yml +0 -99
- package/scripts/lisa-self-update.mjs +0 -14
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# SessionStart: keep the project on the latest Lisa, locally
|
|
3
|
+
# (CodySwannGT/lisa#4337). `autoUpdate` in .lisa.config.json defaults to on;
|
|
4
|
+
# `false` opts out.
|
|
5
|
+
#
|
|
6
|
+
# All the work lives in the sibling `.mjs`, which is unit-tested. This wrapper
|
|
7
|
+
# only resolves the project root and hands off — the same division
|
|
8
|
+
# `enforcement-vintage.sh` beside it makes.
|
|
9
|
+
#
|
|
10
|
+
# FAIL SOFT, ALWAYS. Every exit is 0: a session must start even when the update
|
|
11
|
+
# cannot run, and the `.mjs` reports what it could not do in the context.
|
|
12
|
+
set -uo pipefail
|
|
13
|
+
|
|
14
|
+
cat >/dev/null 2>&1 || true
|
|
15
|
+
|
|
16
|
+
ROOT="${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}}"
|
|
17
|
+
RUNNER="$ROOT/hooks/auto-update.mjs"
|
|
18
|
+
|
|
19
|
+
[ -f "$RUNNER" ] || exit 0
|
|
20
|
+
command -v node >/dev/null 2>&1 || exit 0
|
|
21
|
+
|
|
22
|
+
# CLAUDE_PROJECT_DIR is the harness's own declaration of the root; the git
|
|
23
|
+
# toplevel is the fallback, because the manifest and node_modules this updates
|
|
24
|
+
# live at the repository root, not at whatever directory the session opened in.
|
|
25
|
+
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-}"
|
|
26
|
+
if [ -z "${PROJECT_DIR}" ] || [ ! -d "${PROJECT_DIR}" ]; then
|
|
27
|
+
PROJECT_DIR="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
node "$RUNNER" --project-dir "$PROJECT_DIR" || true
|
|
31
|
+
exit 0
|
|
@@ -259,8 +259,8 @@ export function renderNpmRows(state) {
|
|
|
259
259
|
const guidance = state.projectBehind
|
|
260
260
|
? [
|
|
261
261
|
`PROJECT BEHIND — this project installs lisa ${state.pin?.version} while lisa ${state.latest?.version} is published.`,
|
|
262
|
-
"- Do NOT upgrade Lisa inside the current task
|
|
263
|
-
|
|
262
|
+
"- Do NOT upgrade Lisa by hand inside the current task. The session-start auto-update applies it on a clean tree as its own commit; see the lisa-auto-update block for what it did this session.",
|
|
263
|
+
'- If it did not run (autoUpdate is false, the tree was dirty, or it failed), say so in your report; the update happens at the start of the next session on a clean tree, or with "autoUpdate" left on.',
|
|
264
264
|
]
|
|
265
265
|
: [];
|
|
266
266
|
return { rows, guidance };
|
|
@@ -170,6 +170,19 @@ const SCRIPT_RULES = {
|
|
|
170
170
|
agy: false,
|
|
171
171
|
copilot: true,
|
|
172
172
|
},
|
|
173
|
+
// Session-start local Lisa update (CodySwannGT/lisa#4337). Every harness with
|
|
174
|
+
// a session-start event gets it; OpenCode runs the same engine from its
|
|
175
|
+
// session bootstrap plugin. Documented gap: agy has no SessionStart event, so
|
|
176
|
+
// agy sessions never auto-update — the project still updates the next time a
|
|
177
|
+
// session on any other harness starts in it, and `lisa doctor` reports a
|
|
178
|
+
// stale install on every agent.
|
|
179
|
+
"auto-update.sh": {
|
|
180
|
+
claude: true,
|
|
181
|
+
codex: true,
|
|
182
|
+
cursor: true,
|
|
183
|
+
agy: false,
|
|
184
|
+
copilot: true,
|
|
185
|
+
},
|
|
173
186
|
"inject-flow-context.sh": {
|
|
174
187
|
claude: true,
|
|
175
188
|
codex: true,
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* bun scripts/update-node-version.ts
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
+
import { execFileSync } from "node:child_process";
|
|
18
19
|
import * as fs from "node:fs";
|
|
19
20
|
import * as path from "node:path";
|
|
20
21
|
|
|
@@ -35,17 +36,21 @@ interface ReplacementPattern {
|
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
const WORKFLOW_PATTERNS: readonly ReplacementPattern[] = [
|
|
38
|
-
//
|
|
39
|
+
// Include reusable-workflow defaults and expression fallbacks as well as
|
|
40
|
+
// ordinary callers. Only Node-shaped keys are rewritten.
|
|
39
41
|
{
|
|
40
|
-
pattern: /(node_version:\s*['"])
|
|
42
|
+
pattern: /((?:node_version|node-version):\s*['"]?)\d+\.\d+\.\d+(['"]?)/g,
|
|
41
43
|
replacement: VERSION_REPLACEMENT,
|
|
42
44
|
},
|
|
43
|
-
// node-version: '22.21.1' (actions/setup-node)
|
|
44
45
|
{
|
|
45
|
-
pattern:
|
|
46
|
+
pattern:
|
|
47
|
+
/(node_version:\n(?: +(?:description|type|required):[^\n]*\n)* +default: *['"])\d+\.\d+\.\d+(['"])/g,
|
|
48
|
+
replacement: VERSION_REPLACEMENT,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
pattern: /(node-version:.*?\|\|\s*['"])\d+\.\d+\.\d+(['"])/g,
|
|
46
52
|
replacement: VERSION_REPLACEMENT,
|
|
47
53
|
},
|
|
48
|
-
// node-version: '22.x' (major version pattern)
|
|
49
54
|
{
|
|
50
55
|
pattern: /(node-version:\s*['"])\d+\.x(['"])/g,
|
|
51
56
|
replacement: "$1{{major}}.x$2",
|
|
@@ -53,43 +58,39 @@ const WORKFLOW_PATTERNS: readonly ReplacementPattern[] = [
|
|
|
53
58
|
];
|
|
54
59
|
|
|
55
60
|
const PACKAGE_JSON_PATTERN: ReplacementPattern = {
|
|
56
|
-
pattern: /("node":\s*["'])
|
|
61
|
+
pattern: /("node":\s*["'](?:>=\s*)?)\d+\.\d+\.\d+(["'])/g,
|
|
57
62
|
replacement: VERSION_REPLACEMENT,
|
|
58
63
|
};
|
|
59
64
|
|
|
60
65
|
/**
|
|
61
|
-
*
|
|
66
|
+
* Current tracked runtime surfaces, rather than the removed merge/workflow
|
|
67
|
+
* paths used by the original updater. Historical plans and test fixtures are
|
|
68
|
+
* deliberately excluded. Adding a shipped stack workflow needs no list edit.
|
|
69
|
+
* @returns Existing repository-relative files governed by shared Node policy
|
|
62
70
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
// CDK template workflows
|
|
88
|
-
"cdk/copy-overwrite/workflows/ci.yml",
|
|
89
|
-
|
|
90
|
-
// npm-package template workflows
|
|
91
|
-
"npm-package/copy-overwrite/.github/workflows/publish-to-npm.yml",
|
|
92
|
-
];
|
|
71
|
+
function filesToUpdate(): readonly string[] {
|
|
72
|
+
return execFileSync("git", ["ls-files", "-z"], {
|
|
73
|
+
cwd: PROJECT_ROOT,
|
|
74
|
+
encoding: "utf8",
|
|
75
|
+
})
|
|
76
|
+
.split("\0")
|
|
77
|
+
.filter(
|
|
78
|
+
file =>
|
|
79
|
+
[
|
|
80
|
+
"package.json",
|
|
81
|
+
"package.lisa.json",
|
|
82
|
+
"typescript/copy-overwrite/.nvmrc",
|
|
83
|
+
"expo/create-only/eas.json",
|
|
84
|
+
].includes(file) ||
|
|
85
|
+
/^(?:typescript|cdk|nestjs|npm-package|phaser|harper-fabric)\/package-lisa\/package\.lisa\.json$/.test(
|
|
86
|
+
file
|
|
87
|
+
) ||
|
|
88
|
+
/^\.github\/workflows\/[^/]+\.ya?ml$/.test(file) ||
|
|
89
|
+
/^(?:all|typescript|cdk|expo|nestjs|npm-package|phaser|harper-fabric)\/(?:copy-overwrite|create-only)\/\.github\/workflows\/[^/]+\.ya?ml$/.test(
|
|
90
|
+
file
|
|
91
|
+
)
|
|
92
|
+
);
|
|
93
|
+
}
|
|
93
94
|
|
|
94
95
|
/**
|
|
95
96
|
* Reads the Node.js version from .nvmrc
|
|
@@ -100,7 +101,7 @@ function readNvmrcVersion(): string {
|
|
|
100
101
|
|
|
101
102
|
if (!/^\d+\.\d+\.\d+$/.test(content)) {
|
|
102
103
|
throw new Error(
|
|
103
|
-
`Invalid version format in .nvmrc: "${content}". Expected semver (e.g., 22.
|
|
104
|
+
`Invalid version format in .nvmrc: "${content}". Expected semver (e.g., 22.23.3)`
|
|
104
105
|
);
|
|
105
106
|
}
|
|
106
107
|
|
|
@@ -133,9 +134,16 @@ function updateFile(
|
|
|
133
134
|
let content = originalContent;
|
|
134
135
|
let totalChanges = 0;
|
|
135
136
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
if (filePath.endsWith(".nvmrc")) {
|
|
138
|
+
content = `${version}\n`;
|
|
139
|
+
totalChanges = Number(content !== originalContent);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const patterns = filePath.endsWith(".nvmrc")
|
|
143
|
+
? []
|
|
144
|
+
: filePath.endsWith(".json")
|
|
145
|
+
? [PACKAGE_JSON_PATTERN]
|
|
146
|
+
: WORKFLOW_PATTERNS;
|
|
139
147
|
|
|
140
148
|
patterns.forEach(({ pattern, replacement }) => {
|
|
141
149
|
const resolvedReplacement = replacement
|
|
@@ -179,7 +187,7 @@ function main(): void {
|
|
|
179
187
|
let filesUpdated = 0;
|
|
180
188
|
let totalChanges = 0;
|
|
181
189
|
|
|
182
|
-
|
|
190
|
+
filesToUpdate().forEach(file => {
|
|
183
191
|
const result = updateFile(file, version, majorVersion);
|
|
184
192
|
if (result.updated) {
|
|
185
193
|
filesUpdated++;
|
|
@@ -193,7 +201,7 @@ function main(): void {
|
|
|
193
201
|
|
|
194
202
|
if (filesUpdated > 0) {
|
|
195
203
|
console.log(
|
|
196
|
-
"\nRemember to commit these changes and
|
|
204
|
+
"\nRemember to commit these changes and refresh the repository lockfile if needed."
|
|
197
205
|
);
|
|
198
206
|
}
|
|
199
207
|
}
|
|
@@ -68,7 +68,7 @@ Runs on every pull request to validate code quality:
|
|
|
68
68
|
**Configuration**:
|
|
69
69
|
```yaml
|
|
70
70
|
# In ci.yml, modify these inputs:
|
|
71
|
-
node_version: '22.
|
|
71
|
+
node_version: '22.23.3'
|
|
72
72
|
package_manager: 'bun'
|
|
73
73
|
skip_jobs: 'test,test:integration,test:e2e' # Comma-separated list
|
|
74
74
|
```
|
|
@@ -610,7 +610,7 @@ release.yml and create the environment in **Settings** > **Environments** first
|
|
|
610
610
|
```yaml
|
|
611
611
|
uses: ./.github/workflows/quality.yml
|
|
612
612
|
with:
|
|
613
|
-
node_version: '22.
|
|
613
|
+
node_version: '22.23.3'
|
|
614
614
|
package_manager: 'bun' # or npm, yarn
|
|
615
615
|
```
|
|
616
616
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
22.
|
|
1
|
+
22.23.3
|
|
@@ -137,12 +137,6 @@
|
|
|
137
137
|
"id": "GHSA-j759-j44w-7fr8",
|
|
138
138
|
"package": "@xmldom/xmldom",
|
|
139
139
|
"reason": "XML node injection via unvalidated comment serialization. Transitive via expo > @expo/config-plugins > @expo/plist; only serializes developer-authored plist files at build/prebuild time, no runtime code path serializes attacker-controlled XML."
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
"id": "GHSA-vfj7-8cjw-p6xm",
|
|
143
|
-
"cve": "CVE-2026-93687",
|
|
144
|
-
"package": "braces",
|
|
145
|
-
"reason": "Stack-exhaustion DoS (uncaught RangeError) via deeply nested brace patterns; no patched release exists. Keep this exclusion only if no runtime code path passes attacker-supplied glob or brace patterns to braces/micromatch (dev tooling expanding repo-owned globs is unaffected)."
|
|
146
140
|
}
|
|
147
141
|
]
|
|
148
142
|
}
|
|
@@ -90,7 +90,7 @@ jobs:
|
|
|
90
90
|
uses: actions/setup-node@v6
|
|
91
91
|
with:
|
|
92
92
|
package-manager-cache: false
|
|
93
|
-
node-version: ${{ vars.NODE_VERSION || '22.
|
|
93
|
+
node-version: ${{ vars.NODE_VERSION || '22.23.3' }}
|
|
94
94
|
|
|
95
95
|
- name: 🕵️ Prove review evidence, or a posted substitute, at this head
|
|
96
96
|
env:
|
|
@@ -40,26 +40,26 @@
|
|
|
40
40
|
},
|
|
41
41
|
"resolutions": {
|
|
42
42
|
"@isaacs/brace-expansion": "^5.0.1",
|
|
43
|
-
"axios": ">=1.
|
|
43
|
+
"axios": ">=1.20.0",
|
|
44
44
|
"esbuild": ">=0.28.1",
|
|
45
45
|
"handlebars": ">=4.7.9",
|
|
46
46
|
"lodash": ">=4.18.1",
|
|
47
47
|
"multer": ">=2.3.0",
|
|
48
|
-
"undici": "^6.28.
|
|
49
|
-
"vite": "
|
|
48
|
+
"undici": "^6.28.1",
|
|
49
|
+
"vite": "^8.3.2",
|
|
50
50
|
"ws": ">=8.21.0",
|
|
51
51
|
"form-data": ">=4.0.6",
|
|
52
52
|
"systeminformation": ">=5.31.7"
|
|
53
53
|
},
|
|
54
54
|
"overrides": {
|
|
55
55
|
"@isaacs/brace-expansion": "^5.0.1",
|
|
56
|
-
"axios": ">=1.
|
|
56
|
+
"axios": ">=1.20.0",
|
|
57
57
|
"esbuild": ">=0.28.1",
|
|
58
58
|
"handlebars": ">=4.7.9",
|
|
59
59
|
"lodash": ">=4.18.1",
|
|
60
60
|
"multer": ">=2.3.0",
|
|
61
|
-
"undici": "^6.28.
|
|
62
|
-
"vite": "^8.
|
|
61
|
+
"undici": "^6.28.1",
|
|
62
|
+
"vite": "^8.3.2",
|
|
63
63
|
"ws": ">=8.21.0",
|
|
64
64
|
"form-data": ">=4.0.6",
|
|
65
65
|
"systeminformation": ">=5.31.7"
|
|
@@ -68,12 +68,12 @@
|
|
|
68
68
|
"defaults": {
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@ast-grep/cli": "^0.40.4",
|
|
71
|
-
"@vitest/coverage-v8": "^4.1.
|
|
71
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
72
72
|
"eslint": "^9.39.0",
|
|
73
73
|
"husky": "^8.0.0",
|
|
74
74
|
"prettier": "^3.3.3",
|
|
75
75
|
"typescript": "^6.0.3",
|
|
76
|
-
"vitest": "^4.1.
|
|
76
|
+
"vitest": "^4.1.11"
|
|
77
77
|
},
|
|
78
78
|
"scripts": {
|
|
79
79
|
"build": "node scripts/lib/worktree-dependencies.mjs && tsc",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"yarn": "please-use-bun",
|
|
98
98
|
"pnpm": "please-use-bun",
|
|
99
99
|
"bun": "1.3.8",
|
|
100
|
-
"node": "22.
|
|
100
|
+
"node": "22.23.3"
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
103
|
"merge": {
|
package/ui/index.html
CHANGED
|
@@ -7525,7 +7525,7 @@
|
|
|
7525
7525
|
more: [
|
|
7526
7526
|
"Enforced configs: eslint.config.ts, tsconfig.json, vitest.config.ts, knip.json, commitlint, Prettier, ast-grep",
|
|
7527
7527
|
"Seeded once: ci.yml, claude*.yml, nightly improvement workflows, eslint.config.local.ts, thresholds files",
|
|
7528
|
-
"package.json governance: lint/test/typecheck scripts forced, security overrides forced, engines bun 1.3.8 / node 22.
|
|
7528
|
+
"package.json governance: lint/test/typecheck scripts forced, security overrides forced, engines bun 1.3.8 / node 22.23.3 defaulted",
|
|
7529
7529
|
],
|
|
7530
7530
|
},
|
|
7531
7531
|
{
|
|
@@ -9662,7 +9662,7 @@
|
|
|
9662
9662
|
key: "node_version",
|
|
9663
9663
|
label: "Node version",
|
|
9664
9664
|
desc: "",
|
|
9665
|
-
control: txt("22.
|
|
9665
|
+
control: txt("22.23.3", { mono: true }),
|
|
9666
9666
|
},
|
|
9667
9667
|
{
|
|
9668
9668
|
key: "verify_enforced",
|