Files
deepseek-harness/apps/desktop/electron-builder.yml
T
Pine 79ae82fa48 feat(desktop): Chinese menu, branded icon, and a self-contained harness bundle
Localizes the Electron application menu (文件/编辑/视图/窗口/帮助 plus the
macOS app menu), adds a branded 1024px app icon (window + per-target icns/ico),
and makes the packaged app fully self-contained. Because the harness's pnpm
workspace does not cleanly materialize via pnpm deploy or electron-builder's
dependency resolution (per-package symlinks to vendored sources, native addons,
a separate frontend dist), scripts/build-harness.mjs assembles the repository's
working runtime — node_modules, vendor, packages, native, apps/cli, apps/web,
and a bundled Node binary — into build/harness. electron-builder ships it as an
extraResource at Resources/harness, and the main process spawns that bundled
node + dsh entry when packaged (keeping the system-Node child during dev). Adds
a comprehensive README and ignores the multi-GB harness/dist from git.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 17:39:26 +08:00

49 lines
1.9 KiB
YAML

# electron-builder packaging for the DeepSeek Harness desktop shell.
#
# The harness runs as a system-Node child process (see src/main.ts), so the
# packaged app must ship a Node runtime for the platform it targets. Point
# DSH_NODE at a bundled Node executable at runtime (an electron-builder
# `extraResource` plus a small resolver in the main process), or keep spawning
# PATH `node`. No signing is configured; distribute the unsigned artifacts
# only for local evaluation until a certificate is provided.
appId: ai.deepseek.harness
productName: DeepSeek Harness
# Native addons (node-pty, …) run under the system-Node child process, never
# under Electron, so skip @electron/rebuild: rebuilding them for the Electron
# ABI is wasted work and needs a headers download the local proxy rejects.
npmRebuild: false
# The harness runs as an external system-Node child process (see src/main.ts).
# The fully self-contained runtime lives in build/harness — a copy of the
# repository's working node_modules plus vendor/packages/native/apps and a
# bundled Node binary — and is shipped as extraResources so the packaged app
# runs on any machine with no external install. The Electron shell itself is
# unpacked (`asar: false`); the harness stays on disk as real files for the
# child and for the native addons it dlopens.
asar: false
directories:
output: dist
files:
- lib/types/**/*.js
- package.json
# The self-contained harness (build/harness) lands at Contents/Resources/harness
# in the packaged app; src/main.ts spawns the bundled node + dsh CLI from there.
extraResources:
- from: build/harness
to: harness
filter:
- "**/*"
# One 1024px build/icon.png; electron-builder derives the per-target .icns/.ico.
icon: build/icon.png
mac:
target:
- dmg
icon: build/icon.png
category: public.app-category.developer-tools
win:
target:
- nsis
icon: build/icon.png
nsis:
oneClick: false
allowToChangeInstallationDirectory: true