691176e1d5824bc5572fe0f977aff0e5de5fa6f8
Remote manifests were validated before mutation, but preparation, chunk writes, sentinel transactions, and ownership recovery later reopened ambient paths. A link or reparse-point swap between those steps could redirect a mutation outside the validated game root. Introduce a retained ConfinedGameRoot capability backed by cap-primitives. Carry typed validated destinations into chunk plans, walk every component without following links, and perform payload, sentinel, stale-file, abort, and recovery mutations relative to the retained handle. File writes and verification use the same opened handle, while final durability syncs payload files and unique parent directories before committing version.ini. Make ownership-record publication phase-aware as well. A directory-sync failure after record rename now stops before payload mutation without performing an unsafe old-sentinel rollback. Record the capability-root, bounded-handle, hard-link, and unproven Windows durability tradeoffs in the decision log. Test Plan: - `just clippy` -- passed - `just test` -- passed; 185 peer tests and the full workspace are green - `just fmt` -- Rust, TOML, and Prettier completed; command remains nonzero on 39 pre-existing rumdl issues outside this change - `git diff --cached --check` -- passed
lanspread
Peer-to-peer game library sharing for LAN parties. Peers discover each other on the local network via mDNS, exchange library metadata over QUIC, and let users browse and download games from each other. Ships as a Tauri desktop app.
Build / install
Install Rust, Deno, and just first, then bootstrap the project:
just setup
That installs the Tauri CLI with cargo install tauri-cli and installs the
Deno/npm dependencies from crates/lanspread-tauri-deno-ts.
Run the desktop app in development mode:
just run
Build without bundling:
just build
Create production bundles:
just bundle
Important just commands
just setup- install the Tauri CLI and frontend dependencies.just run- run the Tauri app in dev mode.just build- build the app without bundling.just bundle- create production bundles.just fmt- format Rust, TOML, and the justfile.just clippy- lint the Rust workspace.just test- run workspace tests.just frontend-test- run frontend tests.just peer-cli-build- build the JSONL peer test harness.just peer-cli-image- build the peer harness Docker image.just peer-cli-run NAME- run one peer harness container.
Languages
Rust
54.5%
JavaScript
15%
TypeScript
11.8%
Python
8.5%
CSS
8.2%
Other
1.9%