You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+21-7Lines changed: 21 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ cd src-tauri && cargo test # Run all Rust backend tests
43
43
44
44
### CI
45
45
46
-
GitHub Actions (`build.yml`) runs `npm test` and `cargo test` on all platforms (macOS ARM/Intel, Windows, Linux) for every push and PR.
46
+
GitHub Actions (`build.yml`) runs `npm test` and `cargo test` on all platforms (macOS ARM/Intel, Windows, Linux) for every push and PR. On PRs, a comment is posted with download links for each platform's build artifacts.
47
47
48
48
## Formatting
49
49
@@ -85,17 +85,31 @@ These are documented inline in `config.rs` with WARNING comments.
85
85
86
86
The display-dj CLI sidecar handles all platform-specific display dependencies internally. No external tools need to be installed for display control.
87
87
88
-
The sidecar version is defined in `package.json` under `displayDjCliVersion`. The Rust build script (`src-tauri/build.rs`) reads this at compile time and downloads the matching release from GitHub. The `DISPLAY_DJ_CLI_VERSION` env var can override it (used by CI `workflow_dispatch`).
88
+
### Sidecar binaries
89
89
90
-
For manual builds, download from [display-dj-cli releases](https://github.com/synle/display-dj-cli/releases) or build from source:
90
+
Pre-built sidecar binaries for all 6 platforms are committed in `src-tauri/binaries/`. The build script (`src-tauri/build.rs`) tries to download the latest from GitHub releases first, then falls back to the committed binary if the download fails (offline, timeout, etc.).
91
+
92
+
The sidecar version is defined in `package.json` under `displayDjCliVersion`. The `DISPLAY_DJ_CLI_VERSION` env var can override it (used by CI `workflow_dispatch`).
93
+
94
+
To update the committed binaries after a version bump, run from the project root:
The [display-dj CLI](https://github.com/synle/display-dj-cli) is bundled as a Tauri sidecar. The version is defined in `package.json` under `displayDjCliVersion`. The build script (`src-tauri/build.rs`) downloads the matching release at compile time.
587
+
The [display-dj CLI](https://github.com/synle/display-dj-cli) is bundled as a Tauri sidecar. The version is defined in `package.json` under `displayDjCliVersion`.
588
+
589
+
Pre-built binaries for all 6 platforms are committed to the repo. The build script (`src-tauri/build.rs`) tries to download the latest from GitHub releases first (10s timeout), then falls back to the committed binary if the download fails. This enables offline builds and faster CI.
|`command not found: rustc`| Run `source "$HOME/.cargo/env"` or reopen terminal |
641
+
| First build takes 5+ minutes | Normal. Rust compiles from source. Subsequent runs are ~5-15s |
642
+
| App launched but can't find it | System tray app. macOS: menu bar top-right. Windows: system tray bottom-right. Linux: top panel |
643
+
| "sidecar not found" | Binary missing from `src-tauri/binaries/`. See [sidecar section](#display-dj-cli-sidecar)|
644
+
| "server did not become ready" | Check binary is executable (`chmod +x`), port available (`lsof -i :51337`), test directly |
645
+
| "No displays found" | Run `./src-tauri/binaries/display-dj-server-* list` directly. Linux: check `ddcutil detect`|
646
+
| Dark mode toggle does nothing (Linux) | Requires GNOME. Check `echo $XDG_CURRENT_DESKTOP`|
647
+
| macOS "System Events" permission prompt | Expected on first launch. Volume control uses `osascript` which requires System Events access. Click Allow — only prompts once |
0 commit comments