-
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?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,91 +1,114 @@ | ||||||
| { | ||||||
| "$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" | ||||||
|
Comment on lines
+4
to
+7
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Build commands are incorrect. Changed:
Per Prompt To Fix With AIThis 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. |
||||||
| }, | ||||||
| "package": { | ||||||
| "productName": "Cap", | ||||||
| "version": "../package.json" | ||||||
| }, | ||||||
|
Comment on lines
+9
to
+12
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Product name changed from "Cap - Development" to "Cap", and the entire Prompt To Fix With AIThis is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 9:12
Comment:
Product name changed from "Cap - Development" to "Cap", and the entire `package` structure is v1 syntax. In Tauri v2, product name and identifier are at the top level, not nested under `package`.
How can I resolve this? If you propose a fix, please make it concise. |
||||||
| "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, | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||||||
| "scope": ["$HOME/**", "$RESOURCE/**"] | ||||||
| }, | ||||||
| "path": { | ||||||
| "all": true | ||||||
| }, | ||||||
| "os": { | ||||||
| "all": true | ||||||
| }, | ||||||
| "dialog": { | ||||||
| "all": true | ||||||
| }, | ||||||
| "notification": { | ||||||
| "all": true | ||||||
| }, | ||||||
| "globalShortcut": { | ||||||
| "all": true | ||||||
| } | ||||||
|
Comment on lines
+14
to
+49
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The Prompt To Fix With AIThis 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. |
||||||
| }, | ||||||
| "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", | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Bundle identifier changed from Prompt To Fix With AIThis 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. |
||||||
| "longDescription": "", | ||||||
| "macOS": { | ||||||
| "entitlements": null, | ||||||
| "exceptionDomain": "", | ||||||
| "frameworks": [], | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The Prompt To Fix With AIThis 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": [], | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The
Prompt To Fix With AIThis 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. |
||||||
| "shortDescription": "", | ||||||
| "targets": "all", | ||||||
| "windows": { | ||||||
| "certificateThumbprint": null, | ||||||
| "digestAlgorithm": "sha256", | ||||||
| "timestampUrl": "" | ||||||
| } | ||||||
| }, | ||||||
| "security": { | ||||||
| "csp": null | ||||||
| }, | ||||||
|
Comment on lines
+84
to
+86
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Security CSP was removed (changed from a detailed CSP string to This was required for the asset protocol to work properly. Prompt To Fix With AIThis 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. |
||||||
| "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"] | ||||||
| } | ||||||
| ] | ||||||
|
Comment on lines
+103
to
+112
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The deeplink configuration changed from Tauri v2 plugin syntax to v1 The v2 plugin configuration should be: "plugins": {
"deep-link": {
"desktop": {
"schemes": ["cap-desktop"]
}
}
}Additionally, the original config had the deep-link plugin properly configured, and changing the scheme names may break existing deeplinks. Prompt To Fix With AIThis is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 103:112
Comment:
The deeplink configuration changed from Tauri v2 plugin syntax to v1 `protocols` syntax. Also changed schemes from `["cap-desktop"]` to `["cap-auth"]` and `["cap"]`.
The v2 plugin configuration should be:
```json
"plugins": {
"deep-link": {
"desktop": {
"schemes": ["cap-desktop"]
}
}
}
```
Additionally, the original config had the deep-link plugin properly configured, and changing the scheme names may break existing deeplinks.
How can I resolve this? If you propose a fix, please make it concise. |
||||||
| } | ||||||
| } | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nit: add a trailing newline so this file doesn't show
Suggested change
Comment on lines
1
to
+114
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This entire configuration has been replaced with Tauri v1 syntax, but the project uses Tauri v2. The schema reference changed from Tauri v2 to v1, and the structure is completely different (v1 uses Critical missing configurations:
Prompt To Fix With AIThis is a comment left during a code review.
Path: apps/desktop/src-tauri/tauri.conf.json
Line: 1:114
Comment:
This entire configuration has been replaced with Tauri v1 syntax, but the project uses Tauri v2. The schema reference changed from Tauri v2 to v1, and the structure is completely different (v1 uses `tauri.allowlist` which was removed in v2). This will break the build.
Critical missing configurations:
- `app.macOSPrivateApi: true` (required for NSPanel features per `Cargo.toml`)
- Security CSP configuration
- Resource bundling for backgrounds and Rive assets
- macOS frameworks (Spacedrive.framework)
- File associations for `.cap` files
- Correct Tauri v2 plugin syntax
How can I resolve this? If you propose a fix, please make it concise.
Comment on lines
1
to
+114
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing Prompt To Fix With AIThis 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.
Comment on lines
1
to
+114
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing file associations configuration. The original config registered "fileAssociations": [{
"ext": ["cap"],
"name": "Cap Project",
"mimeType": "application/x-cap-project",
"role": "Editor"
}]Without this, Prompt To Fix With AIThis 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.
Comment on lines
1
to
+114
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 Prompt To Fix With AIThis 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.
Comment on lines
1
to
+114
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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:
These are important for branding and proper installer behavior. Prompt To Fix With AIThis 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. |
||||||
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.jsonfrom 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 underplugins.deep-link.desktop.schemes.