* feat(electron): add Linux AppImage releases * ci: cache Linux OpenCode CLI artifacts * fix(ci): await Linux release inventory check * fix(electron): add frameless window controls on Linux desktop Linux AppImages were created without native WM decorations and without in-app controls, leaving users unable to close the window with a mouse. Treat Linux like Windows: frameless BrowserWindow plus the existing WindowsWindowControls header buttons and app-menu entry. macOS keeps hidden title bar with traffic lights unchanged. Shared usesFramelessElectronChrome() helper drives main window, mini chat, header insets, and titlebar controls. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * Linux desktop feature parity: Open in, background start, tray, multi-window (#2392) * feat(electron): Linux parity for Open in, background start, and tray Enable Linux desktop feature parity with macOS/Windows: open projects in the default file manager and discovered apps, XDG autostart with --background launches, system tray (including minimize-to-tray), and tray sync from the renderer. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * fix(electron): allow packaged UI protocol navigations on Linux Prevent openchamber-ui:// navigations from being handed to shell.openExternal, which fails on Linux and blocked desktop UI flows. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * fix(ui): surface Linux tray settings in settings search Include isLinux in settings search runtime context so minimize-to-tray is discoverable on Linux desktop, matching Windows search behavior. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * fix(electron): stop Linux AppImage Waiting-for-OpenCode flicker Sync updated boot-outcome init scripts to all BrowserWindows after desktop_hosts_set, and prefer state.initScript on dom-ready so chooser reloads inject local/ok instead of a stale not-configured outcome. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * fix(desktop): restore Linux AppImage updater feed and error UX (#2396) Treat missing latest-linux*.yml (404) as no update available instead of a hard failure, and stop swallowing updater capability/download errors in the desktop bridge so About/sidebar can show actionable messages. Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * docs: credit Linux AppImage contributors in changelog Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> --------- Co-authored-by: jibanez-staticduo <staticduo@gmail.com> Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
167 lines
5.3 KiB
JSON
167 lines
5.3 KiB
JSON
{
|
|
"name": "@openchamber/electron",
|
|
"version": "1.16.3",
|
|
"private": true,
|
|
"description": "Electron desktop runtime for OpenChamber",
|
|
"author": "OpenChamber",
|
|
"type": "module",
|
|
"main": "./dist-bundle/main.mjs",
|
|
"dependencies": {
|
|
"@openchamber/web": "workspace:*",
|
|
"electron-context-menu": "^4.1.2",
|
|
"electron-log": "^5.4.3",
|
|
"electron-updater": "^6.8.3"
|
|
},
|
|
"devDependencies": {
|
|
"@electron/rebuild": "^3.7.0",
|
|
"electron": "^41.2.1",
|
|
"electron-builder": "^26.0.0"
|
|
},
|
|
"trustedDependencies": [
|
|
"electron"
|
|
],
|
|
"desktopPrerequisites": [
|
|
"Electron runtime dependencies installed via bun install",
|
|
"Bun available for sidecar compilation",
|
|
"macOS: Xcode + build tools for notarized packaging",
|
|
"Windows: NSIS installed for installer creation",
|
|
"Linux: native x64 or arm64 host (no cross-arch packaging); FUSE/libfuse2 to run AppImages, or APPIMAGE_EXTRACT_AND_RUN=1"
|
|
],
|
|
"scripts": {
|
|
"dev": "node ./scripts/electron-dev.mjs",
|
|
"build:web-assets": "node ./scripts/build-web-assets.mjs",
|
|
"build": "bun -e \"process.exit(0)\"",
|
|
"prepare:opencode-cli": "node ./scripts/prepare-opencode-cli.mjs",
|
|
"verify:opencode-cli": "node ./scripts/verify-opencode-cli.mjs --staged",
|
|
"verify:opencode-cli:packaged": "node ./scripts/verify-opencode-cli.mjs --packaged",
|
|
"verify:linux-appimage": "node ./scripts/verify-linux-appimage.mjs",
|
|
"bundle:main": "bun ./scripts/bundle-main.mjs",
|
|
"generate:macos-icon": "node ./scripts/generate-macos-icon-assets.cjs",
|
|
"rebuild:native": "node ./scripts/rebuild-native.mjs",
|
|
"test:architecture": "node --test ./scripts/target-architecture.test.mjs ./scripts/verify-linux-appimage.test.mjs ./scripts/verify-update-manifest.test.mjs",
|
|
"test:updater": "node --test ./updater-capability.test.mjs ./updater-check.test.mjs ./updater-feed.test.mjs ./scripts/updater-e2e-fixture.test.mjs",
|
|
"test:linux-desktop": "node --test ./linux-autostart.test.mjs && node ./scripts/smoke-linux-app-discovery.mjs && node ./scripts/smoke-path-open-utils.mjs",
|
|
"updater:e2e:fixture": "node ./scripts/updater-e2e-fixture.mjs",
|
|
"verify:update-manifest": "node ./scripts/verify-update-manifest.mjs",
|
|
"package": "bun run build:web-assets && bun run prepare:opencode-cli && bun run bundle:main && bun run rebuild:native && node ./scripts/package.mjs",
|
|
"finalize:latest-yml": "node ./scripts/finalize-latest-yml.mjs",
|
|
"type-check": "node --check ./main.mjs && node --check ./preload.mjs",
|
|
"lint": "node -e \"process.exit(0)\""
|
|
},
|
|
"build": {
|
|
"appId": "dev.openchamber.desktop",
|
|
"productName": "OpenChamber",
|
|
"files": [
|
|
"dist-bundle/main.mjs",
|
|
"preload.mjs"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "resources/web-dist",
|
|
"to": "web-dist"
|
|
},
|
|
{
|
|
"from": "resources/icons/icon.ico",
|
|
"to": "icons/icon.ico"
|
|
},
|
|
{
|
|
"from": "resources/icons/icon.png",
|
|
"to": "icons/icon.png"
|
|
},
|
|
{
|
|
"from": "resources/icons/tray",
|
|
"to": "icons/tray"
|
|
},
|
|
{
|
|
"from": "resources/opencode-cli",
|
|
"to": "opencode-cli"
|
|
}
|
|
],
|
|
"afterPack": "scripts/after-pack.cjs",
|
|
"directories": {
|
|
"buildResources": "resources/icons",
|
|
"output": "dist"
|
|
},
|
|
"artifactName": "${productName}-${version}-${arch}.${ext}",
|
|
"npmRebuild": false,
|
|
"mac": {
|
|
"category": "public.app-category.developer-tools",
|
|
"icon": "resources/icons/icon.icns",
|
|
"artifactName": "${productName}-${version}-mac-${arch}.${ext}",
|
|
"extendInfo": {
|
|
"CFBundleIconName": "AppIcon"
|
|
},
|
|
"hardenedRuntime": true,
|
|
"gatekeeperAssess": false,
|
|
"entitlements": "resources/entitlements.mac.plist",
|
|
"entitlementsInherit": "resources/entitlements.mac.plist",
|
|
"notarize": true,
|
|
"target": [
|
|
"dmg",
|
|
"zip"
|
|
]
|
|
},
|
|
"win": {
|
|
"icon": "resources/icons/icon.ico",
|
|
"target": [
|
|
"nsis"
|
|
],
|
|
"verifyUpdateCodeSignature": false,
|
|
"artifactName": "${productName}-${version}-win-${arch}.${ext}"
|
|
},
|
|
"linux": {
|
|
"target": [
|
|
"AppImage"
|
|
],
|
|
"category": "Development",
|
|
"icon": "resources/icons/icon.png",
|
|
"executableName": "openchamber",
|
|
"artifactName": "${productName}-${version}-linux-${arch}.${ext}",
|
|
"desktop": {
|
|
"entry": {
|
|
"Name": "OpenChamber",
|
|
"Comment": "Desktop runtime for OpenChamber",
|
|
"Icon": "openchamber",
|
|
"StartupWMClass": "openchamber"
|
|
}
|
|
}
|
|
},
|
|
"nsis": {
|
|
"oneClick": true,
|
|
"perMachine": false,
|
|
"installerIcon": "resources/icons/icon.ico",
|
|
"uninstallerIcon": "resources/icons/icon.ico",
|
|
"installerHeaderIcon": "resources/icons/icon.ico"
|
|
},
|
|
"dmg": {
|
|
"sign": true,
|
|
"title": "${productName} ${version}",
|
|
"backgroundColor": "#FFFCF0",
|
|
"iconSize": 100,
|
|
"iconTextSize": 13,
|
|
"window": {
|
|
"width": 540,
|
|
"height": 340
|
|
},
|
|
"contents": [
|
|
{
|
|
"x": 180,
|
|
"y": 140,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"x": 360,
|
|
"y": 140,
|
|
"type": "link",
|
|
"path": "/Applications"
|
|
}
|
|
]
|
|
},
|
|
"publish": {
|
|
"provider": "github",
|
|
"owner": "openchamber",
|
|
"repo": "openchamber"
|
|
}
|
|
}
|
|
}
|