153febe078
First-run host launch now offers a one-time upstream measurement against speed.cloudflare.com/__up via ureq (~5 MB POST, ~5s). The result lives at ~/.config/pixelpass/config.toml under [bandwidth] and feeds the default --max-viewers calculation on subsequent runs. Sticky semantics for the dialog: - Unmeasured: first-run prompt (Run / Skip) - Measured / Skipped: silent — never re-prompts - Failed: ask again on next launch (Retry / give up → Skipped) `pixelpass --reconfigure` re-runs the test unconditionally for users whose connection has changed (new ISP, moved house, etc.). --max-viewers is now Option<u32>. When unset, host startup loads the saved measurement, runs recommended_max_viewers(safe_mbps, bitrate), and surfaces the source in the banner: "max viewers : N (auto: X.X Mbps measured upstream)" — or user-specified / default fallback. User verified end-to-end on 2026-05-21 16:54 EDT: first-run dialog, skip path, run path, --reconfigure refresh, and banner integration all work as expected. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
41 lines
1.3 KiB
TOML
41 lines
1.3 KiB
TOML
[package]
|
|
name = "pixelpass"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
description = "P2P screen sharing CLI over iroh"
|
|
license = "MIT OR Apache-2.0"
|
|
publish = false
|
|
|
|
[[bin]]
|
|
name = "pixelpass"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
iroh = "1.0.0-rc.0"
|
|
tokio = { version = "1", features = ["macros", "rt-multi-thread", "io-util", "net", "signal", "process", "sync", "time"] }
|
|
tokio-util = { version = "0.7", features = ["io"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
anyhow = "1"
|
|
thiserror = "2"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
nix = { version = "0.30", features = ["signal", "process"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
directories = "5"
|
|
ashpd = { version = "0.9", default-features = false, features = ["tokio"] }
|
|
pipewire = "0.9"
|
|
x11rb = { version = "0.13", default-features = false, features = ["allow-unsafe-code"] }
|
|
uuid = { version = "1", features = ["v4"] }
|
|
iroh-tickets = "1.0.0-rc.0"
|
|
dialoguer = { version = "0.12", default-features = false }
|
|
arboard = { version = "3", default-features = false, features = ["wayland-data-control"] }
|
|
ureq = { version = "3", default-features = false, features = ["rustls"] }
|
|
toml = "1"
|
|
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
strip = "symbols"
|