diff --git a/.github/workflows/build-and-upload.yml b/.github/workflows/build-and-upload.yml index 9121c5f7..2ac04d32 100644 --- a/.github/workflows/build-and-upload.yml +++ b/.github/workflows/build-and-upload.yml @@ -53,7 +53,7 @@ on: # least-privilege (e.g. dev CI uses read-only; releases grant write). env: - NODE_VERSION: 20 + NODE_VERSION: 22 jobs: build-macos: diff --git a/.github/workflows/manual-npm-publish.yml b/.github/workflows/manual-npm-publish.yml index 51f5a328..34a12246 100644 --- a/.github/workflows/manual-npm-publish.yml +++ b/.github/workflows/manual-npm-publish.yml @@ -46,7 +46,7 @@ jobs: publish: runs-on: ubuntu-latest env: - NODE_VERSION: 20 + NODE_VERSION: 22 steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/release-ui.yml b/.github/workflows/release-ui.yml index 2a021832..abe659c5 100644 --- a/.github/workflows/release-ui.yml +++ b/.github/workflows/release-ui.yml @@ -14,7 +14,7 @@ permissions: contents: read env: - NODE_VERSION: 20 + NODE_VERSION: 22 jobs: release-ui: diff --git a/.github/workflows/reusable-release.yml b/.github/workflows/reusable-release.yml index e839e76b..f6e14cea 100644 --- a/.github/workflows/reusable-release.yml +++ b/.github/workflows/reusable-release.yml @@ -39,7 +39,7 @@ permissions: contents: write env: - NODE_VERSION: 20 + NODE_VERSION: 22 jobs: prepare-release: diff --git a/packages/server/scripts/copy-opencode-config.mjs b/packages/server/scripts/copy-opencode-config.mjs index 5e714395..6a948239 100644 --- a/packages/server/scripts/copy-opencode-config.mjs +++ b/packages/server/scripts/copy-opencode-config.mjs @@ -1,6 +1,6 @@ #!/usr/bin/env node import { spawnSync } from "child_process" -import { cpSync, existsSync, mkdirSync, rmSync } from "fs" +import { cpSync, existsSync, mkdirSync, readdirSync, rmSync } from "fs" import path from "path" import { fileURLToPath } from "url" @@ -14,6 +14,43 @@ const selfLinkDir = path.resolve(nodeModulesDir, "@codenomad", "opencode-config" const npmExecPath = process.env.npm_execpath const npmNodeExecPath = process.env.npm_node_execpath +function stripNodeModuleBins(rootDir) { + const root = path.join(rootDir, "node_modules") + if (!existsSync(root)) { + return 0 + } + + const stack = [root] + let removed = 0 + + while (stack.length > 0) { + const current = stack.pop() + if (!current) break + + let entries + try { + entries = readdirSync(current, { withFileTypes: true }) + } catch { + continue + } + + for (const entry of entries) { + const full = path.join(current, entry.name) + if (entry.name === ".bin") { + rmSync(full, { recursive: true, force: true }) + removed += 1 + continue + } + + if (entry.isDirectory()) { + stack.push(full) + } + } + } + + return removed +} + if (!existsSync(sourceDir)) { console.error(`[copy-opencode-config] Missing source directory at ${sourceDir}`) process.exit(1) @@ -58,4 +95,9 @@ rmSync(targetDir, { recursive: true, force: true }) mkdirSync(path.dirname(targetDir), { recursive: true }) cpSync(sourceDir, targetDir, { recursive: true }) +const removedBins = stripNodeModuleBins(targetDir) +if (removedBins > 0) { + console.log(`[copy-opencode-config] Removed ${removedBins} node_modules/.bin directories`) +} + console.log(`[copy-opencode-config] Copied ${sourceDir} -> ${targetDir}`) diff --git a/packages/tauri-app/src-tauri/Cargo.toml b/packages/tauri-app/src-tauri/Cargo.toml index 940e9fbf..43f3137e 100644 --- a/packages/tauri-app/src-tauri/Cargo.toml +++ b/packages/tauri-app/src-tauri/Cargo.toml @@ -5,10 +5,10 @@ edition = "2021" license = "MIT" [build-dependencies] -tauri-build = { version = "2.5.2", features = [] } +tauri-build = { version = "2.5.6", features = [] } [dependencies] -tauri = { version = "2.5.2", features = [ "devtools"] } +tauri = { version = "2.10.3", features = [ "devtools"] } serde = { version = "1", features = ["derive"] } serde_json = "1" serde_yaml = "0.9"