Files
paseo/packages/desktop/electron-builder.yml
Mohamed Boudra 9e90b86afa Restore reliable macOS desktop updates (#4322)
* fix(desktop): restore macOS app updates

Electron 41's Squirrel helper can leave the update handoff dormant on current macOS, so Paseo quits cleanly but relaunches the old bundle. Electron 44 wakes ShipIt through its XPC service.

Include updater lifecycle events and ShipIt state in app diagnostics so future handoff failures identify the current version, target version, cache paths, and installer output.

* fix(desktop): harden updater diagnostics

Keep each ShipIt file's evidence available when another read fails, carry the service-selected version into updater lifecycle logs, and make clean workspace installs resolve the Electron runtime used by desktop tests.

* refactor(desktop): name updater install options

* refactor(desktop): name updater log payloads

* refactor(desktop): name clipboard payload

* fix(desktop): surface updater lookup failures

* test(desktop): await guest focus transition

* fix(desktop): guard macOS update compatibility

* test(release): validate desktop manifests before publish

* test(desktop): await populated daemon pid file
2026-09-04 22:17:39 +02:00

95 lines
2.6 KiB
YAML

npmRebuild: false
appId: sh.paseo.desktop
productName: Paseo
executableName: Paseo
protocols:
- name: Paseo agent link
schemes:
- paseo
afterPack: ./scripts/after-pack.js
afterSign: ./scripts/after-sign.js
directories:
output: release
files:
- dist/**/*
- "!**/*.map"
- "!node_modules/@getpaseo/*/src/**"
- "!node_modules/@getpaseo/**/*.test.*"
- "!node_modules/@getpaseo/**/*.spec.*"
- "!node_modules/@getpaseo/server/dist/server/web-ui/**"
# Workspace packages are symlinked, so anything a dev generates inside them
# lands in the asar. CI never has these; a local .debug run adds gigabytes.
- "!node_modules/@getpaseo/*/.debug/**"
- "!node_modules/@getpaseo/*/.tasks/**"
- "!node_modules/@getpaseo/*/conversations/**"
- "!node_modules/@getpaseo/*/test-results/**"
asarUnpack:
- dist/daemon/node-entrypoint-runner.js
- node_modules/@getpaseo/server/dist/server/terminal/shell-integration/**/*
extraResources:
- from: ../app/dist
to: app-dist
- from: assets/editor-targets
to: editor-target-icons
publish:
provider: github
owner: getpaseo
repo: paseo
mac:
artifactName: "Paseo-${version}-${arch}.${ext}"
minimumSystemVersion: "13.0.0"
category: public.app-category.developer-tools
icon: assets/icon.icns
hardenedRuntime: true
notarize: true
entitlements: build/entitlements.mac.plist
entitlementsInherit: build/entitlements.mac.inherit.plist
extraResources:
- from: bin/paseo
to: bin/paseo
- from: assets/icon.png
to: icon.png
target:
- dmg
- zip
linux:
category: Development
icon: assets
artifactName: "Paseo-${version}-${arch}.${ext}"
maintainer: "Mohamed Boudra <hello@moboudra.com>"
vendor: "Paseo"
extraResources:
- from: bin/paseo
to: bin/paseo
target:
- AppImage
- deb
- rpm
- tar.gz
appImage:
# Keep the AppImage filename stable across versions (no ${version}) so
# electron-updater overwrites the file in place instead of renaming it to a new
# versioned path. A rename orphans the old binary, breaks desktop shortcuts, and
# dangles the ~/.local/bin/paseo CLI symlink, which points at $APPIMAGE. The
# version stays discoverable via the release tag and the in-app version.
artifactName: "Paseo-${arch}.${ext}"
win:
artifactName: "Paseo-Setup-${version}-${arch}.${ext}"
icon: assets/icon.ico
extraResources:
- from: bin/paseo.cmd
to: bin/paseo.cmd
target:
- target: nsis
arch:
- x64
- arm64
- target: zip
arch:
- x64
- arm64
nsis:
oneClick: false
perMachine: false
allowToChangeInstallationDirectory: true