-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat: Bounty: Deeplinks support + Raycast Extension #1555
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: Bounty: Deeplinks support + Raycast Extension #1555
Conversation
| ] | ||
| } | ||
| } | ||
| "$schema": "../node_modules/@tauri-apps/cli/schema.json", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This rewrites tauri.conf.json from the repo's current Tauri v2 format into a v1-style config (tauri.allowlist, package, etc). If desktop is still on Tauri v2, this is likely to fail to parse/build. Might be safer to keep the existing v2 structure and only add the new deeplink schemes under plugins.deep-link.desktop.schemes.
| "startDragging": true | ||
| }, | ||
| "fs": { | ||
| "all": true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
allowlist.fs.all: true (plus path/os/dialog/notification/globalShortcut all enabled) is extremely permissive. If this is intentional, can we scope it down to the minimal set of APIs needed for deeplinks?
| } | ||
| ] | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: add a trailing newline so this file doesn't show \ No newline at end of file.
| } | |
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
13 files reviewed, 13 comments
| "allowlist": { | ||
| "all": false, | ||
| "shell": { | ||
| "all": false, | ||
| "open": true | ||
| }, | ||
| "window": { | ||
| "all": false, | ||
| "close": true, | ||
| "hide": true, | ||
| "show": true, | ||
| "maximize": true, | ||
| "minimize": true, | ||
| "unmaximize": true, | ||
| "unminimize": true, | ||
| "startDragging": true | ||
| }, | ||
| "fs": { | ||
| "all": true, | ||
| "scope": ["$HOME/**", "$RESOURCE/**"] | ||
| }, | ||
| "path": { | ||
| "all": true | ||
| }, | ||
| "os": { | ||
| "all": true | ||
| }, | ||
| "dialog": { | ||
| "all": true | ||
| }, | ||
| "notification": { | ||
| "all": true | ||
| }, | ||
| "globalShortcut": { | ||
| "all": true | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The allowlist configuration is Tauri v1 syntax and was completely removed in Tauri v2. In v2, permissions are managed through the new capability system with manifest files. This entire section will cause errors.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 14:49
Comment:
The `allowlist` configuration is Tauri v1 syntax and was completely removed in Tauri v2. In v2, permissions are managed through the new capability system with manifest files. This entire section will cause errors.
How can I resolve this? If you propose a fix, please make it concise.| "icons/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "identifier": "com.cap.desktop", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bundle identifier changed from so.cap.desktop.dev to com.cap.desktop. This would require re-signing and could break existing installations.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 66:66
Comment:
Bundle identifier changed from `so.cap.desktop.dev` to `com.cap.desktop`. This would require re-signing and could break existing installations.
How can I resolve this? If you propose a fix, please make it concise.| "macOS": { | ||
| "entitlements": null, | ||
| "exceptionDomain": "", | ||
| "frameworks": [], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The frameworks array was changed from ["../../../target/native-deps/Spacedrive.framework"] to empty []. The Spacedrive framework is required for the desktop app functionality.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 71:71
Comment:
The `frameworks` array was changed from `["../../../target/native-deps/Spacedrive.framework"]` to empty `[]`. The Spacedrive framework is required for the desktop app functionality.
How can I resolve this? If you propose a fix, please make it concise.| "providerShortName": null, | ||
| "signingIdentity": null | ||
| }, | ||
| "resources": [], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The resources were changed from a detailed mapping of background assets and Rive files to an empty array []. The app requires these bundled resources:
assets/backgrounds/macOS/*assets/backgrounds/blue/*,dark/*,orange/*,purple/*../src/assets/rive/*.riv
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 75:75
Comment:
The `resources` were changed from a detailed mapping of background assets and Rive files to an empty array `[]`. The app requires these bundled resources:
- `assets/backgrounds/macOS/*`
- `assets/backgrounds/blue/*`, `dark/*`, `orange/*`, `purple/*`
- `../src/assets/rive/*.riv`
How can I resolve this? If you propose a fix, please make it concise.| "security": { | ||
| "csp": null | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Security CSP was removed (changed from a detailed CSP string to null). The original CSP allowed specific sources:
default-src 'self' ws: ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost blob: data:; media-src 'self' asset: http://asset.localhost; script-src 'self' 'unsafe-eval' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'
This was required for the asset protocol to work properly.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 84:86
Comment:
Security CSP was removed (changed from a detailed CSP string to `null`). The original CSP allowed specific sources:
```
default-src 'self' ws: ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost blob: data:; media-src 'self' asset: http://asset.localhost; script-src 'self' 'unsafe-eval' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'
```
This was required for the asset protocol to work properly.
How can I resolve this? If you propose a fix, please make it concise.| "beforeBuildCommand": "pnpm build", | ||
| "beforeDevCommand": "pnpm dev:ui", | ||
| "devPath": "http://localhost:3001", | ||
| "distDir": "../dist" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Build commands are incorrect. Changed:
beforeDevCommand:pnpm localdevtopnpm dev:uidevUrl: port 3002 to port 3001beforeBuildCommand:pnpm turbo build --filter @cap/desktoptopnpm buildfrontendDist:../.output/publicto../dist
Per package.json, the desktop app uses vinxi with localdev script on port 3002, and builds to ../.output/public.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 4:7
Comment:
Build commands are incorrect. Changed:
- `beforeDevCommand`: `pnpm localdev` to `pnpm dev:ui`
- `devUrl`: port 3002 to port 3001
- `beforeBuildCommand`: `pnpm turbo build --filter @cap/desktop` to `pnpm build`
- `frontendDist`: `../.output/public` to `../dist`
Per `package.json`, the desktop app uses `vinxi` with `localdev` script on port 3002, and builds to `../.output/public`.
How can I resolve this? If you propose a fix, please make it concise.| { | ||
| "$schema": "https://schema.tauri.app/config/2", | ||
| "productName": "Cap - Development", | ||
| "identifier": "so.cap.desktop.dev", | ||
| "mainBinaryName": "Cap - Development", | ||
| "build": { | ||
| "beforeDevCommand": "pnpm localdev", | ||
| "devUrl": "http://localhost:3002", | ||
| "beforeBuildCommand": "pnpm turbo build --filter @cap/desktop", | ||
| "frontendDist": "../.output/public" | ||
| }, | ||
| "app": { | ||
| "macOSPrivateApi": true, | ||
| "security": { | ||
| "csp": "default-src 'self' ws: ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost blob: data:; media-src 'self' asset: http://asset.localhost; script-src 'self' 'unsafe-eval' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'", | ||
| "assetProtocol": { | ||
| "enable": true, | ||
| "scope": [ | ||
| "$APPDATA/**", | ||
| "**/*.jpg", | ||
| "**/*.webp", | ||
| "$RESOURCE/**", | ||
| "**/*.riv", | ||
| "$HOME/**" | ||
| ] | ||
| } | ||
| } | ||
| }, | ||
| "plugins": { | ||
| "updater": { "active": false, "pubkey": "" }, | ||
| "deep-link": { | ||
| "desktop": { | ||
| "schemes": ["cap-desktop"] | ||
| } | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "createUpdaterArtifacts": true, | ||
| "targets": "all", | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/macos/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "resources": { | ||
| "assets/backgrounds/macOS/*": "assets/backgrounds/macOS/", | ||
| "assets/backgrounds/blue/*": "assets/backgrounds/blue/", | ||
| "assets/backgrounds/dark/*": "assets/backgrounds/dark/", | ||
| "assets/backgrounds/orange/*": "assets/backgrounds/orange/", | ||
| "assets/backgrounds/purple/*": "assets/backgrounds/purple/", | ||
| "../src/assets/rive/*.riv": "assets/rive/" | ||
| }, | ||
| "macOS": { | ||
| "dmg": { | ||
| "background": "assets/dmg-background.png", | ||
| "appPosition": { | ||
| "x": 180, | ||
| "y": 140 | ||
| }, | ||
| "applicationFolderPosition": { | ||
| "x": 480, | ||
| "y": 140 | ||
| } | ||
| }, | ||
| "frameworks": ["../../../target/native-deps/Spacedrive.framework"] | ||
| }, | ||
| "windows": { | ||
| "nsis": { | ||
| "headerImage": "assets/nsis-header.bmp", | ||
| "sidebarImage": "assets/nsis-sidebar.bmp", | ||
| "installerIcon": "icons/icon.ico" | ||
| }, | ||
| "wix": { | ||
| "upgradeCode": "79f4309d-ca23-54df-b6f9-826a1d783676", | ||
| "bannerPath": "assets/wix-banner.bmp", | ||
| "dialogImagePath": "assets/wix-dialog.bmp" | ||
| } | ||
| }, | ||
| "fileAssociations": [ | ||
| { | ||
| "ext": ["cap"], | ||
| "name": "Cap Project", | ||
| "mimeType": "application/x-cap-project", | ||
| "role": "Editor" | ||
| } | ||
| ] | ||
| } | ||
| } | ||
| "$schema": "../node_modules/@tauri-apps/cli/schema.json", | ||
| "build": { | ||
| "beforeBuildCommand": "pnpm build", | ||
| "beforeDevCommand": "pnpm dev:ui", | ||
| "devPath": "http://localhost:3001", | ||
| "distDir": "../dist" | ||
| }, | ||
| "package": { | ||
| "productName": "Cap", | ||
| "version": "../package.json" | ||
| }, | ||
| "tauri": { | ||
| "allowlist": { | ||
| "all": false, | ||
| "shell": { | ||
| "all": false, | ||
| "open": true | ||
| }, | ||
| "window": { | ||
| "all": false, | ||
| "close": true, | ||
| "hide": true, | ||
| "show": true, | ||
| "maximize": true, | ||
| "minimize": true, | ||
| "unmaximize": true, | ||
| "unminimize": true, | ||
| "startDragging": true | ||
| }, | ||
| "fs": { | ||
| "all": true, | ||
| "scope": ["$HOME/**", "$RESOURCE/**"] | ||
| }, | ||
| "path": { | ||
| "all": true | ||
| }, | ||
| "os": { | ||
| "all": true | ||
| }, | ||
| "dialog": { | ||
| "all": true | ||
| }, | ||
| "notification": { | ||
| "all": true | ||
| }, | ||
| "globalShortcut": { | ||
| "all": true | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "category": "DeveloperTool", | ||
| "copyright": "", | ||
| "deb": { | ||
| "depends": [] | ||
| }, | ||
| "externalBin": [], | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "identifier": "com.cap.desktop", | ||
| "longDescription": "", | ||
| "macOS": { | ||
| "entitlements": null, | ||
| "exceptionDomain": "", | ||
| "frameworks": [], | ||
| "providerShortName": null, | ||
| "signingIdentity": null | ||
| }, | ||
| "resources": [], | ||
| "shortDescription": "", | ||
| "targets": "all", | ||
| "windows": { | ||
| "certificateThumbprint": null, | ||
| "digestAlgorithm": "sha256", | ||
| "timestampUrl": "" | ||
| } | ||
| }, | ||
| "security": { | ||
| "csp": null | ||
| }, | ||
| "updater": { | ||
| "active": false | ||
| }, | ||
| "windows": [ | ||
| { | ||
| "fullscreen": false, | ||
| "height": 600, | ||
| "resizable": true, | ||
| "title": "Cap", | ||
| "width": 800 | ||
| } | ||
| ], | ||
| "systemTray": { | ||
| "iconPath": "icons/icon.png", | ||
| "iconAsTemplate": true | ||
| }, | ||
| "protocols": [ | ||
| { | ||
| "name": "cap-auth", | ||
| "schemes": ["cap-auth"] | ||
| }, | ||
| { | ||
| "name": "cap-deeplink", | ||
| "schemes": ["cap"] | ||
| } | ||
| ] | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing app.macOSPrivateApi: true configuration. Per apps/desktop/src-tauri/Cargo.toml:23, the app depends on macos-private-api feature and uses tauri-nspanel (line 136) which requires this flag in the config.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 1:114
Comment:
Missing `app.macOSPrivateApi: true` configuration. Per `apps/desktop/src-tauri/Cargo.toml:23`, the app depends on `macos-private-api` feature and uses `tauri-nspanel` (line 136) which requires this flag in the config.
How can I resolve this? If you propose a fix, please make it concise.| { | ||
| "$schema": "https://schema.tauri.app/config/2", | ||
| "productName": "Cap - Development", | ||
| "identifier": "so.cap.desktop.dev", | ||
| "mainBinaryName": "Cap - Development", | ||
| "build": { | ||
| "beforeDevCommand": "pnpm localdev", | ||
| "devUrl": "http://localhost:3002", | ||
| "beforeBuildCommand": "pnpm turbo build --filter @cap/desktop", | ||
| "frontendDist": "../.output/public" | ||
| }, | ||
| "app": { | ||
| "macOSPrivateApi": true, | ||
| "security": { | ||
| "csp": "default-src 'self' ws: ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost blob: data:; media-src 'self' asset: http://asset.localhost; script-src 'self' 'unsafe-eval' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'", | ||
| "assetProtocol": { | ||
| "enable": true, | ||
| "scope": [ | ||
| "$APPDATA/**", | ||
| "**/*.jpg", | ||
| "**/*.webp", | ||
| "$RESOURCE/**", | ||
| "**/*.riv", | ||
| "$HOME/**" | ||
| ] | ||
| } | ||
| } | ||
| }, | ||
| "plugins": { | ||
| "updater": { "active": false, "pubkey": "" }, | ||
| "deep-link": { | ||
| "desktop": { | ||
| "schemes": ["cap-desktop"] | ||
| } | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "createUpdaterArtifacts": true, | ||
| "targets": "all", | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/macos/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "resources": { | ||
| "assets/backgrounds/macOS/*": "assets/backgrounds/macOS/", | ||
| "assets/backgrounds/blue/*": "assets/backgrounds/blue/", | ||
| "assets/backgrounds/dark/*": "assets/backgrounds/dark/", | ||
| "assets/backgrounds/orange/*": "assets/backgrounds/orange/", | ||
| "assets/backgrounds/purple/*": "assets/backgrounds/purple/", | ||
| "../src/assets/rive/*.riv": "assets/rive/" | ||
| }, | ||
| "macOS": { | ||
| "dmg": { | ||
| "background": "assets/dmg-background.png", | ||
| "appPosition": { | ||
| "x": 180, | ||
| "y": 140 | ||
| }, | ||
| "applicationFolderPosition": { | ||
| "x": 480, | ||
| "y": 140 | ||
| } | ||
| }, | ||
| "frameworks": ["../../../target/native-deps/Spacedrive.framework"] | ||
| }, | ||
| "windows": { | ||
| "nsis": { | ||
| "headerImage": "assets/nsis-header.bmp", | ||
| "sidebarImage": "assets/nsis-sidebar.bmp", | ||
| "installerIcon": "icons/icon.ico" | ||
| }, | ||
| "wix": { | ||
| "upgradeCode": "79f4309d-ca23-54df-b6f9-826a1d783676", | ||
| "bannerPath": "assets/wix-banner.bmp", | ||
| "dialogImagePath": "assets/wix-dialog.bmp" | ||
| } | ||
| }, | ||
| "fileAssociations": [ | ||
| { | ||
| "ext": ["cap"], | ||
| "name": "Cap Project", | ||
| "mimeType": "application/x-cap-project", | ||
| "role": "Editor" | ||
| } | ||
| ] | ||
| } | ||
| } | ||
| "$schema": "../node_modules/@tauri-apps/cli/schema.json", | ||
| "build": { | ||
| "beforeBuildCommand": "pnpm build", | ||
| "beforeDevCommand": "pnpm dev:ui", | ||
| "devPath": "http://localhost:3001", | ||
| "distDir": "../dist" | ||
| }, | ||
| "package": { | ||
| "productName": "Cap", | ||
| "version": "../package.json" | ||
| }, | ||
| "tauri": { | ||
| "allowlist": { | ||
| "all": false, | ||
| "shell": { | ||
| "all": false, | ||
| "open": true | ||
| }, | ||
| "window": { | ||
| "all": false, | ||
| "close": true, | ||
| "hide": true, | ||
| "show": true, | ||
| "maximize": true, | ||
| "minimize": true, | ||
| "unmaximize": true, | ||
| "unminimize": true, | ||
| "startDragging": true | ||
| }, | ||
| "fs": { | ||
| "all": true, | ||
| "scope": ["$HOME/**", "$RESOURCE/**"] | ||
| }, | ||
| "path": { | ||
| "all": true | ||
| }, | ||
| "os": { | ||
| "all": true | ||
| }, | ||
| "dialog": { | ||
| "all": true | ||
| }, | ||
| "notification": { | ||
| "all": true | ||
| }, | ||
| "globalShortcut": { | ||
| "all": true | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "category": "DeveloperTool", | ||
| "copyright": "", | ||
| "deb": { | ||
| "depends": [] | ||
| }, | ||
| "externalBin": [], | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "identifier": "com.cap.desktop", | ||
| "longDescription": "", | ||
| "macOS": { | ||
| "entitlements": null, | ||
| "exceptionDomain": "", | ||
| "frameworks": [], | ||
| "providerShortName": null, | ||
| "signingIdentity": null | ||
| }, | ||
| "resources": [], | ||
| "shortDescription": "", | ||
| "targets": "all", | ||
| "windows": { | ||
| "certificateThumbprint": null, | ||
| "digestAlgorithm": "sha256", | ||
| "timestampUrl": "" | ||
| } | ||
| }, | ||
| "security": { | ||
| "csp": null | ||
| }, | ||
| "updater": { | ||
| "active": false | ||
| }, | ||
| "windows": [ | ||
| { | ||
| "fullscreen": false, | ||
| "height": 600, | ||
| "resizable": true, | ||
| "title": "Cap", | ||
| "width": 800 | ||
| } | ||
| ], | ||
| "systemTray": { | ||
| "iconPath": "icons/icon.png", | ||
| "iconAsTemplate": true | ||
| }, | ||
| "protocols": [ | ||
| { | ||
| "name": "cap-auth", | ||
| "schemes": ["cap-auth"] | ||
| }, | ||
| { | ||
| "name": "cap-deeplink", | ||
| "schemes": ["cap"] | ||
| } | ||
| ] | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing file associations configuration. The original config registered .cap file extension with:
"fileAssociations": [{
"ext": ["cap"],
"name": "Cap Project",
"mimeType": "application/x-cap-project",
"role": "Editor"
}]Without this, .cap files won't open with the app.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 1:114
Comment:
Missing file associations configuration. The original config registered `.cap` file extension with:
```json
"fileAssociations": [{
"ext": ["cap"],
"name": "Cap Project",
"mimeType": "application/x-cap-project",
"role": "Editor"
}]
```
Without this, `.cap` files won't open with the app.
How can I resolve this? If you propose a fix, please make it concise.| { | ||
| "$schema": "https://schema.tauri.app/config/2", | ||
| "productName": "Cap - Development", | ||
| "identifier": "so.cap.desktop.dev", | ||
| "mainBinaryName": "Cap - Development", | ||
| "build": { | ||
| "beforeDevCommand": "pnpm localdev", | ||
| "devUrl": "http://localhost:3002", | ||
| "beforeBuildCommand": "pnpm turbo build --filter @cap/desktop", | ||
| "frontendDist": "../.output/public" | ||
| }, | ||
| "app": { | ||
| "macOSPrivateApi": true, | ||
| "security": { | ||
| "csp": "default-src 'self' ws: ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost blob: data:; media-src 'self' asset: http://asset.localhost; script-src 'self' 'unsafe-eval' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'", | ||
| "assetProtocol": { | ||
| "enable": true, | ||
| "scope": [ | ||
| "$APPDATA/**", | ||
| "**/*.jpg", | ||
| "**/*.webp", | ||
| "$RESOURCE/**", | ||
| "**/*.riv", | ||
| "$HOME/**" | ||
| ] | ||
| } | ||
| } | ||
| }, | ||
| "plugins": { | ||
| "updater": { "active": false, "pubkey": "" }, | ||
| "deep-link": { | ||
| "desktop": { | ||
| "schemes": ["cap-desktop"] | ||
| } | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "createUpdaterArtifacts": true, | ||
| "targets": "all", | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/macos/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "resources": { | ||
| "assets/backgrounds/macOS/*": "assets/backgrounds/macOS/", | ||
| "assets/backgrounds/blue/*": "assets/backgrounds/blue/", | ||
| "assets/backgrounds/dark/*": "assets/backgrounds/dark/", | ||
| "assets/backgrounds/orange/*": "assets/backgrounds/orange/", | ||
| "assets/backgrounds/purple/*": "assets/backgrounds/purple/", | ||
| "../src/assets/rive/*.riv": "assets/rive/" | ||
| }, | ||
| "macOS": { | ||
| "dmg": { | ||
| "background": "assets/dmg-background.png", | ||
| "appPosition": { | ||
| "x": 180, | ||
| "y": 140 | ||
| }, | ||
| "applicationFolderPosition": { | ||
| "x": 480, | ||
| "y": 140 | ||
| } | ||
| }, | ||
| "frameworks": ["../../../target/native-deps/Spacedrive.framework"] | ||
| }, | ||
| "windows": { | ||
| "nsis": { | ||
| "headerImage": "assets/nsis-header.bmp", | ||
| "sidebarImage": "assets/nsis-sidebar.bmp", | ||
| "installerIcon": "icons/icon.ico" | ||
| }, | ||
| "wix": { | ||
| "upgradeCode": "79f4309d-ca23-54df-b6f9-826a1d783676", | ||
| "bannerPath": "assets/wix-banner.bmp", | ||
| "dialogImagePath": "assets/wix-dialog.bmp" | ||
| } | ||
| }, | ||
| "fileAssociations": [ | ||
| { | ||
| "ext": ["cap"], | ||
| "name": "Cap Project", | ||
| "mimeType": "application/x-cap-project", | ||
| "role": "Editor" | ||
| } | ||
| ] | ||
| } | ||
| } | ||
| "$schema": "../node_modules/@tauri-apps/cli/schema.json", | ||
| "build": { | ||
| "beforeBuildCommand": "pnpm build", | ||
| "beforeDevCommand": "pnpm dev:ui", | ||
| "devPath": "http://localhost:3001", | ||
| "distDir": "../dist" | ||
| }, | ||
| "package": { | ||
| "productName": "Cap", | ||
| "version": "../package.json" | ||
| }, | ||
| "tauri": { | ||
| "allowlist": { | ||
| "all": false, | ||
| "shell": { | ||
| "all": false, | ||
| "open": true | ||
| }, | ||
| "window": { | ||
| "all": false, | ||
| "close": true, | ||
| "hide": true, | ||
| "show": true, | ||
| "maximize": true, | ||
| "minimize": true, | ||
| "unmaximize": true, | ||
| "unminimize": true, | ||
| "startDragging": true | ||
| }, | ||
| "fs": { | ||
| "all": true, | ||
| "scope": ["$HOME/**", "$RESOURCE/**"] | ||
| }, | ||
| "path": { | ||
| "all": true | ||
| }, | ||
| "os": { | ||
| "all": true | ||
| }, | ||
| "dialog": { | ||
| "all": true | ||
| }, | ||
| "notification": { | ||
| "all": true | ||
| }, | ||
| "globalShortcut": { | ||
| "all": true | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "category": "DeveloperTool", | ||
| "copyright": "", | ||
| "deb": { | ||
| "depends": [] | ||
| }, | ||
| "externalBin": [], | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "identifier": "com.cap.desktop", | ||
| "longDescription": "", | ||
| "macOS": { | ||
| "entitlements": null, | ||
| "exceptionDomain": "", | ||
| "frameworks": [], | ||
| "providerShortName": null, | ||
| "signingIdentity": null | ||
| }, | ||
| "resources": [], | ||
| "shortDescription": "", | ||
| "targets": "all", | ||
| "windows": { | ||
| "certificateThumbprint": null, | ||
| "digestAlgorithm": "sha256", | ||
| "timestampUrl": "" | ||
| } | ||
| }, | ||
| "security": { | ||
| "csp": null | ||
| }, | ||
| "updater": { | ||
| "active": false | ||
| }, | ||
| "windows": [ | ||
| { | ||
| "fullscreen": false, | ||
| "height": 600, | ||
| "resizable": true, | ||
| "title": "Cap", | ||
| "width": 800 | ||
| } | ||
| ], | ||
| "systemTray": { | ||
| "iconPath": "icons/icon.png", | ||
| "iconAsTemplate": true | ||
| }, | ||
| "protocols": [ | ||
| { | ||
| "name": "cap-auth", | ||
| "schemes": ["cap-auth"] | ||
| }, | ||
| { | ||
| "name": "cap-deeplink", | ||
| "schemes": ["cap"] | ||
| } | ||
| ] | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing asset protocol configuration. The original had:
"security": {
"assetProtocol": {
"enable": true,
"scope": ["$APPDATA/**", "**/*.jpg", "**/*.webp", "$RESOURCE/**", "**/*.riv", "$HOME/**"]
}
}This is required for the app to access local assets. Per Cargo.toml:24, the app uses protocol-asset feature.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 1:114
Comment:
Missing asset protocol configuration. The original had:
```json
"security": {
"assetProtocol": {
"enable": true,
"scope": ["$APPDATA/**", "**/*.jpg", "**/*.webp", "$RESOURCE/**", "**/*.riv", "$HOME/**"]
}
}
```
This is required for the app to access local assets. Per `Cargo.toml:24`, the app uses `protocol-asset` feature.
How can I resolve this? If you propose a fix, please make it concise.| { | ||
| "$schema": "https://schema.tauri.app/config/2", | ||
| "productName": "Cap - Development", | ||
| "identifier": "so.cap.desktop.dev", | ||
| "mainBinaryName": "Cap - Development", | ||
| "build": { | ||
| "beforeDevCommand": "pnpm localdev", | ||
| "devUrl": "http://localhost:3002", | ||
| "beforeBuildCommand": "pnpm turbo build --filter @cap/desktop", | ||
| "frontendDist": "../.output/public" | ||
| }, | ||
| "app": { | ||
| "macOSPrivateApi": true, | ||
| "security": { | ||
| "csp": "default-src 'self' ws: ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost blob: data:; media-src 'self' asset: http://asset.localhost; script-src 'self' 'unsafe-eval' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'", | ||
| "assetProtocol": { | ||
| "enable": true, | ||
| "scope": [ | ||
| "$APPDATA/**", | ||
| "**/*.jpg", | ||
| "**/*.webp", | ||
| "$RESOURCE/**", | ||
| "**/*.riv", | ||
| "$HOME/**" | ||
| ] | ||
| } | ||
| } | ||
| }, | ||
| "plugins": { | ||
| "updater": { "active": false, "pubkey": "" }, | ||
| "deep-link": { | ||
| "desktop": { | ||
| "schemes": ["cap-desktop"] | ||
| } | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "createUpdaterArtifacts": true, | ||
| "targets": "all", | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/macos/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "resources": { | ||
| "assets/backgrounds/macOS/*": "assets/backgrounds/macOS/", | ||
| "assets/backgrounds/blue/*": "assets/backgrounds/blue/", | ||
| "assets/backgrounds/dark/*": "assets/backgrounds/dark/", | ||
| "assets/backgrounds/orange/*": "assets/backgrounds/orange/", | ||
| "assets/backgrounds/purple/*": "assets/backgrounds/purple/", | ||
| "../src/assets/rive/*.riv": "assets/rive/" | ||
| }, | ||
| "macOS": { | ||
| "dmg": { | ||
| "background": "assets/dmg-background.png", | ||
| "appPosition": { | ||
| "x": 180, | ||
| "y": 140 | ||
| }, | ||
| "applicationFolderPosition": { | ||
| "x": 480, | ||
| "y": 140 | ||
| } | ||
| }, | ||
| "frameworks": ["../../../target/native-deps/Spacedrive.framework"] | ||
| }, | ||
| "windows": { | ||
| "nsis": { | ||
| "headerImage": "assets/nsis-header.bmp", | ||
| "sidebarImage": "assets/nsis-sidebar.bmp", | ||
| "installerIcon": "icons/icon.ico" | ||
| }, | ||
| "wix": { | ||
| "upgradeCode": "79f4309d-ca23-54df-b6f9-826a1d783676", | ||
| "bannerPath": "assets/wix-banner.bmp", | ||
| "dialogImagePath": "assets/wix-dialog.bmp" | ||
| } | ||
| }, | ||
| "fileAssociations": [ | ||
| { | ||
| "ext": ["cap"], | ||
| "name": "Cap Project", | ||
| "mimeType": "application/x-cap-project", | ||
| "role": "Editor" | ||
| } | ||
| ] | ||
| } | ||
| } | ||
| "$schema": "../node_modules/@tauri-apps/cli/schema.json", | ||
| "build": { | ||
| "beforeBuildCommand": "pnpm build", | ||
| "beforeDevCommand": "pnpm dev:ui", | ||
| "devPath": "http://localhost:3001", | ||
| "distDir": "../dist" | ||
| }, | ||
| "package": { | ||
| "productName": "Cap", | ||
| "version": "../package.json" | ||
| }, | ||
| "tauri": { | ||
| "allowlist": { | ||
| "all": false, | ||
| "shell": { | ||
| "all": false, | ||
| "open": true | ||
| }, | ||
| "window": { | ||
| "all": false, | ||
| "close": true, | ||
| "hide": true, | ||
| "show": true, | ||
| "maximize": true, | ||
| "minimize": true, | ||
| "unmaximize": true, | ||
| "unminimize": true, | ||
| "startDragging": true | ||
| }, | ||
| "fs": { | ||
| "all": true, | ||
| "scope": ["$HOME/**", "$RESOURCE/**"] | ||
| }, | ||
| "path": { | ||
| "all": true | ||
| }, | ||
| "os": { | ||
| "all": true | ||
| }, | ||
| "dialog": { | ||
| "all": true | ||
| }, | ||
| "notification": { | ||
| "all": true | ||
| }, | ||
| "globalShortcut": { | ||
| "all": true | ||
| } | ||
| }, | ||
| "bundle": { | ||
| "active": true, | ||
| "category": "DeveloperTool", | ||
| "copyright": "", | ||
| "deb": { | ||
| "depends": [] | ||
| }, | ||
| "externalBin": [], | ||
| "icon": [ | ||
| "icons/32x32.png", | ||
| "icons/128x128.png", | ||
| "icons/128x128@2x.png", | ||
| "icons/icon.icns", | ||
| "icons/icon.ico" | ||
| ], | ||
| "identifier": "com.cap.desktop", | ||
| "longDescription": "", | ||
| "macOS": { | ||
| "entitlements": null, | ||
| "exceptionDomain": "", | ||
| "frameworks": [], | ||
| "providerShortName": null, | ||
| "signingIdentity": null | ||
| }, | ||
| "resources": [], | ||
| "shortDescription": "", | ||
| "targets": "all", | ||
| "windows": { | ||
| "certificateThumbprint": null, | ||
| "digestAlgorithm": "sha256", | ||
| "timestampUrl": "" | ||
| } | ||
| }, | ||
| "security": { | ||
| "csp": null | ||
| }, | ||
| "updater": { | ||
| "active": false | ||
| }, | ||
| "windows": [ | ||
| { | ||
| "fullscreen": false, | ||
| "height": 600, | ||
| "resizable": true, | ||
| "title": "Cap", | ||
| "width": 800 | ||
| } | ||
| ], | ||
| "systemTray": { | ||
| "iconPath": "icons/icon.png", | ||
| "iconAsTemplate": true | ||
| }, | ||
| "protocols": [ | ||
| { | ||
| "name": "cap-auth", | ||
| "schemes": ["cap-auth"] | ||
| }, | ||
| { | ||
| "name": "cap-deeplink", | ||
| "schemes": ["cap"] | ||
| } | ||
| ] | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing macOS DMG and Windows installer customizations. The original config had custom images for:
- DMG background (
assets/dmg-background.png) - NSIS header/sidebar images
- WIX banner/dialog images
- Upgrade code for WIX installer
These are important for branding and proper installer behavior.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 1:114
Comment:
Missing macOS DMG and Windows installer customizations. The original config had custom images for:
- DMG background (`assets/dmg-background.png`)
- NSIS header/sidebar images
- WIX banner/dialog images
- Upgrade code for WIX installer
These are important for branding and proper installer behavior.
How can I resolve this? If you propose a fix, please make it concise.
Summary
Fixes #1540
Changes
apps/desktop/src-tauri/tauri.conf.jsonDetails
Action: REPLACE_FILE
🤖 Generated by Opus Agent
Greptile Overview
Greptile Summary
This PR completely replaces the Tauri v2 configuration with an incompatible Tauri v1 configuration, which will break the desktop app build and runtime.
Critical Issues:
allowlistsyntax (removed in v2)app.macOSPrivateApi: true(required for NSPanel features perCargo.toml).capfile associationsso.cap.desktop.devtocom.cap.desktop(breaks existing installations)cap-desktoptocap-authandcap(may break existing links)What Was Intended:
The PR title suggests adding deeplink support, but the original config already had proper Tauri v2 deeplink configuration via
plugins.deep-link. This PR appears to have been generated by an automated tool that used outdated Tauri v1 templates.Recommendation:
Revert this PR entirely and keep the original Tauri v2 configuration. If deeplink schemes need to be modified, only update the
plugins.deep-link.desktop.schemesarray in the existing config.Confidence Score: 0/5
Important Files Changed
Sequence Diagram
sequenceDiagram participant User participant OS as Operating System participant App as Cap Desktop App participant Plugin as Tauri Deep Link Plugin participant Handler as Deep Link Handler User->>OS: Click deeplink (cap-desktop://...) OS->>App: Launch/Focus app with URL App->>Plugin: Register deep link schemes Plugin->>Plugin: Check scheme registration alt Tauri v2 (Correct) Plugin->>Handler: Parse URL with registered scheme Handler->>App: Route to appropriate view App->>User: Display content else Tauri v1 (This PR - Broken) Plugin->>Plugin: ERROR: Invalid config syntax Plugin->>App: Fail to register schemes App->>User: Deep link doesn't work end Note over App,Plugin: v2 uses plugins.deep-link config<br/>v1 uses tauri.protocols (incompatible)(2/5) Greptile learns from your feedback when you react with thumbs up/down!