9b700c7e3fc0d5c91be3b8681eb8614167d8c895
Update and remove-download operations must wait for existing outbound readers to release game files before mutating or deleting the game root. That wait was unbounded, so a stuck transfer guard could leave the game permanently marked as Updating or RemovingDownload and prevent the requested operation from ever starting. Return a structured begin-operation result and put a five-second timeout around the drain wait. If the transfer count does not reach zero, the operation start fails, the active-operation snapshot is cleared, and the caller emits the normal failure event for the attempted operation. The destructive mutation is not allowed to proceed after a timeout. Test Plan: - just test - just clippy - git diff --check Refs: Claude review finding #3
lanspread
Description
Peer-to-peer game library sharing for LAN parties.
- Peers let users browse and download games from each other
- they discover each other on the local network via mDNS
- they exchange library metadata over QUIC
Ships as a Tauri desktop app.
Development
Prerequisites
# install Tauri CLI
cargo install tauri-cli
# install Deno with a package manager or from https://deno.land/
Build or Run
# build
just build
# run
just run
# test
just test
Scripted peer harness
crates/lanspread-peer-cli runs the peer runtime without the GUI and speaks
JSONL on stdin/stdout. It is intended for automated multi-peer smoke tests.
just peer-cli-build
just peer-cli-image
just peer-cli-run alpha
Description
Languages
Rust
64.6%
TypeScript
12.9%
Python
8.9%
CSS
7.6%
JavaScript
4.9%
Other
1%