4 Commits

Author SHA1 Message Date
e480ea4ea6 fix: switch vortex dependency from fork to upstream
All checks were successful
CI / Format, lint, build, test (push) Successful in 6m1s
CI / Build SRPM (push) Successful in 1m38s
CI / Publish to COPR (push) Successful in 25m1s
Replace grenade/vortex fork (fix-double-panic branch) with upstream
Nehliin/vortex pinned to rev fbb3da44, which includes PR #129 expanding
piece request validation to prevent the double-panic at its root cause.

Also suppress a11y_click_events_have_key_events warning on the overlay
div in AddTorrent.svelte (keyboard dismiss already handled via
svelte:window keydown).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:41:23 +03:00
c19a32a875 docs: document custom-protocol feature in build instructions
All checks were successful
CI / Format, lint, build, test (push) Successful in 6m5s
CI / Build SRPM (push) Successful in 1m55s
CI / Publish to COPR (push) Has been skipped
Without --features custom-protocol, the desktop binary expects a
local Vite dev server instead of embedding the frontend assets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 08:20:28 +03:00
93e6a7939f fix: define custom-protocol feature in src-tauri/Cargo.toml
All checks were successful
CI / Format, lint, build, test (push) Successful in 6m6s
CI / Build SRPM (push) Successful in 1m54s
CI / Publish to COPR (push) Successful in 20m25s
Tauri's custom-protocol feature must be declared in the app crate
and forwarded to the tauri dependency. Without this, cargo rejects
--features custom-protocol.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 20:21:05 +03:00
004fa17f42 fix: enable custom-protocol feature for Tauri RPM build
Tauri only embeds frontend assets when built with the custom-protocol
feature. Without it, generate_context!() skips embedding and the
binary falls back to devUrl (localhost:5173), causing "Connection
refused" when installed from RPM.

cargo tauri build adds this feature automatically, but our spec uses
cargo build directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 19:32:04 +03:00
6 changed files with 24 additions and 18 deletions

20
Cargo.lock generated
View File

@@ -90,7 +90,7 @@ version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -101,7 +101,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
dependencies = [
"anstyle",
"once_cell_polyfill",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -1007,7 +1007,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -1247,7 +1247,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -3811,7 +3811,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -4256,7 +4256,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -4859,7 +4859,7 @@ dependencies = [
"getrandom 0.4.2",
"once_cell",
"rustix",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -5288,7 +5288,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
dependencies = [
"memoffset",
"tempfile",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -5426,7 +5426,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "vortex-bittorrent"
version = "0.6.0"
source = "git+https://github.com/grenade/vortex.git?branch=fix-double-panic#baebe400e801c794ee42759464b5bbcf7ecedfe5"
source = "git+https://github.com/Nehliin/vortex.git?rev=fbb3da4446eaca6ab52f092afbf8566445713b4b#fbb3da4446eaca6ab52f092afbf8566445713b4b"
dependencies = [
"ahash",
"bitvec",
@@ -5741,7 +5741,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]

View File

@@ -17,7 +17,7 @@ serde = { version = "1", features = ["derive"] }
serde_json = "1"
log = { version = "0.4", features = ["release_max_level_info"] }
anyhow = "1"
vortex-bittorrent = { git = "https://github.com/grenade/vortex.git", branch = "fix-double-panic" }
vortex-bittorrent = { git = "https://github.com/Nehliin/vortex.git", rev = "fbb3da4446eaca6ab52f092afbf8566445713b4b" }
mainline = { version = "6", default-features = false, features = ["node"] }
crossbeam-channel = "0.5"
dirs = "6.0"

View File

@@ -45,10 +45,12 @@ The GTK dependencies are only needed for the desktop app. The headless server on
### Desktop App
```bash
pnpm install && pnpm build # build frontend
cargo build --release -p monsoon # build desktop binary (embeds frontend)
pnpm install && pnpm build # build frontend
cargo build --release -p monsoon --features custom-protocol # build desktop binary (embeds frontend)
```
The `custom-protocol` feature is required for release builds -- it tells Tauri to embed the frontend assets into the binary. Without it, the app expects a local Vite dev server.
For development with hot-reload: `cargo install tauri-cli && cargo tauri dev`
### Headless Server

View File

@@ -48,9 +48,9 @@ cat > .cargo/config.toml << 'EOF'
[source.crates-io]
replace-with = "vendored-sources"
[source."git+https://github.com/grenade/vortex.git?branch=fix-double-panic"]
git = "https://github.com/grenade/vortex.git"
branch = "fix-double-panic"
[source."git+https://github.com/Nehliin/vortex.git?rev=fbb3da4446eaca6ab52f092afbf8566445713b4b"]
git = "https://github.com/Nehliin/vortex.git"
rev = "fbb3da4446eaca6ab52f092afbf8566445713b4b"
replace-with = "vendored-sources"
[source.vendored-sources]
@@ -64,8 +64,8 @@ EOF
# Frontends are pre-built and included in the source tarball
# (dist/ for desktop, monsoon-web/dist/ for server web GUI)
# custom-protocol feature tells Tauri to embed frontend assets instead of
# using the dev server URL
# custom-protocol feature tells Tauri to embed frontend assets into the
# binary. Without it, the app expects a local Vite dev server at :5173.
cargo build --release -p monsoon --features custom-protocol
cargo build --release -p monsoon-server

View File

@@ -4,6 +4,9 @@ version.workspace = true
edition.workspace = true
license.workspace = true
[features]
custom-protocol = ["tauri/custom-protocol"]
[build-dependencies]
tauri-build = { version = "2", features = [] }

View File

@@ -33,6 +33,7 @@
<svelte:window on:keydown={handleKeydown} />
<!-- svelte-ignore a11y_click_events_have_key_events -->
<div class="overlay" role="presentation" onclick={onclose}>
<!-- svelte-ignore a11y_interactive_supports_focus a11y_click_events_have_key_events -->
<div