cc-haha/desktop/package.json
你的姓名 d88c10c2df fix(server): defer runtime-config restart until session is idle
In-progress generations were interrupted when a set_runtime_config
arrived mid-stream: the handler immediately stopped and restarted the
CLI subprocess. Track per-session busy state from outbound status
events and queue the restart, applying it (with the latest override,
collapsing multiple toggles) once the session returns to idle.

Bumps desktop app to 0.5.1 with matching release notes.

Tested: desktop tsc --noEmit; Windows x64 NSIS package + package-smoke.
Not-tested: check:server, desktop Vitest.
Scope-risk: narrow
Confidence: medium
2026-06-08 02:18:00 +08:00

143 lines
5.0 KiB
JSON

{
"name": "claude-code-desktop",
"private": true,
"version": "0.5.1",
"description": "Desktop coding agent workbench for Claude Code Haha.",
"homepage": "https://github.com/NanmiCoder/cc-haha",
"author": {
"name": "NanmiCoder",
"email": "relakkes@gmail.com"
},
"type": "module",
"main": "electron-dist/main.cjs",
"build": {
"appId": "com.claude-code-haha.desktop",
"productName": "Claude Code Haha",
"asar": true,
"asarUnpack": [
"dist/**",
"node_modules/node-pty/**",
"src-tauri/binaries/**"
],
"artifactName": "Claude-Code-Haha-${version}-${os}-${arch}.${ext}",
"npmRebuild": false,
"directories": {
"output": "build-artifacts/electron"
},
"files": [
"dist/**",
"electron-dist/**",
"node_modules/node-pty/**",
"src-tauri/binaries/**",
"src-tauri/icons/**",
"src-tauri/resources/preview-agent.js",
"package.json"
],
"mac": {
"category": "public.app-category.developer-tools",
"target": [
"dmg",
"zip"
],
"icon": "src-tauri/icons/icon.icns",
"hardenedRuntime": true,
"gatekeeperAssess": false,
"entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.inherit.plist",
"notarize": true
},
"win": {
"target": "nsis",
"icon": "src-tauri/icons/icon.ico"
},
"nsis": {
"oneClick": false,
"allowElevation": true,
"allowToChangeInstallationDirectory": true,
"perMachine": false,
"deleteAppDataOnUninstall": false,
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"license": "build/license.txt"
},
"linux": {
"target": [
"AppImage",
"deb"
],
"icon": "src-tauri/icons",
"category": "Development",
"maintainer": "NanmiCoder <relakkes@gmail.com>"
},
"publish": [
{
"provider": "github",
"owner": "NanmiCoder",
"repo": "cc-haha"
}
]
},
"scripts": {
"dev": "vite",
"build": "bun run build:preview-agent && node ./node_modules/typescript/bin/tsc -b && node ./node_modules/vite/bin/vite.js build",
"prepare:node-pty": "bun run ./scripts/prepare-node-pty.ts",
"build:electron": "bun run prepare:node-pty && bun build ./electron/main.ts --outfile ./electron-dist/main.cjs --target node --format cjs --external electron --external node-pty && bun build ./electron/preload.ts --outfile ./electron-dist/preload.cjs --target node --format cjs --external electron && bun build ./electron/preview-preload.ts --outfile ./electron-dist/preview-preload.cjs --target node --format cjs --external electron",
"build:preview-agent": "bun run ./scripts/build-preview-agent.ts",
"build:sidecars": "bun run ./scripts/build-sidecars.ts",
"clean:electron-output": "bun run ./scripts/clean-electron-output.ts",
"build:macos-arm64": "bash ./scripts/build-macos-arm64.sh",
"build:windows-x64": "powershell -ExecutionPolicy Bypass -File ./scripts/build-windows-x64.ps1",
"build:linux-x64": "bash ./scripts/build-linux.sh",
"build:linux-arm64": "LINUX_ARCH=arm64 bash ./scripts/build-linux.sh",
"electron:dev": "bun run build:electron && bun run ./scripts/electron-dev.ts",
"electron:build": "bun run build:sidecars && bun run build && bun run build:electron",
"electron:package": "bun run clean:electron-output && bun run electron:build && bunx electron-builder --publish never",
"electron:package:dir": "bun run clean:electron-output && bun run electron:build && bunx electron-builder --dir --publish never",
"check:electron": "node ./node_modules/typescript/bin/tsc -p electron/tsconfig.json && bun test electron && bun run build:electron",
"preview": "vite preview",
"test": "vitest",
"test:ui": "vitest --ui",
"lint": "node ./node_modules/typescript/bin/tsc --noEmit"
},
"dependencies": {
"@tailwindcss/typography": "^0.5.19",
"@types/dompurify": "^3.2.0",
"@xterm/addon-fit": "^0.11.0",
"@xterm/xterm": "^6.0.0",
"dompurify": "^3.3.3",
"electron-updater": "^6.8.3",
"html2canvas": "^1.4.1",
"katex": "^0.16.45",
"lucide-react": "^0.469.0",
"marked": "^15.0.7",
"mermaid": "^11.14.0",
"node-pty": "^1.1.0",
"prism-react-renderer": "^2.4.1",
"qrcode": "^1.5.4",
"react": "^18.3.1",
"react-diff-viewer-continued": "^4.2.0",
"react-dom": "^18.3.1",
"react-shiki": "^0.9.2",
"shiki": "^4.0.2",
"zustand": "^5.0.3"
},
"devDependencies": {
"@tailwindcss/vite": "^4.0.0",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.1.0",
"@types/node": "^25.9.1",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^6.0.1",
"@vitest/coverage-v8": "3.2.4",
"electron": "^42.3.0",
"electron-builder": "^26.8.1",
"jsdom": "^25.0.1",
"tailwindcss": "^4.0.0",
"typescript": "^5.9.3",
"vite": "^8.0.10",
"vitest": "^3.0.4"
}
}