Add user operations and maintainer guides covering Desktop/headless setup, migration, backup, service management, troubleshooting, privacy, dependency policy, soak, release candidates, and cutover rollback.\n\nRecord a requirement-level P7 evidence matrix with Linux measurements and explicitly leave Windows, macOS, real-user migration, long-duration soak, prerelease, and authorized release gates unresolved. Update goal and P7 plan status without claiming completion.\n\nVerified current Linux release binaries by rebuilding the deb and passing packaging/linux/smoke-deb.sh; cargo deny and actionlint also pass.
1.8 KiB
Rust standalone development
The standalone rewrite is a pure Rust Cargo workspace. Building and testing it does not require Node.js, Python, a JVM, Electron, or a WebView runtime.
Toolchain
Install Rust 1.92 or newer with rustfmt and clippy. The repository's rust-toolchain.toml selects the stable toolchain and these components automatically when using rustup.
Common commands
cargo check --workspace
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
cargo deny check
The binaries can be inspected with:
cargo run -p arxiv-dailyd -- --help
cargo run -p arxiv-dailyctl -- --help
cargo run -p arxiv-daily -- --help
Headless setup and operational commands are documented in Headless daemon and CLI.
Desktop, migration, backup, privacy, and troubleshooting are documented in Standalone operations. Architecture maintenance, soak tests, dependency policy, and release-candidate gates are documented in Standalone maintenance.
The compatibility tests use committed, synthetic fixtures under fixtures/legacy/; they never read a live Obsidian Vault.
Workspace boundaries
apps/daemon: background process and sole business-data writer;apps/cli: headless control client;apps/desktop: native egui desktop client;crates/domain: stable domain types and validation;crates/protocol: loopback Control API DTOs;crates/storage: redb, atomic files, imports, exports, and migrations;crates/platform: cross-platform application paths;- other crates isolate application, pipeline, scheduling, search, and client concerns.
Do not make Desktop or CLI read redb directly. They communicate with arxiv-dailyd through the versioned Control API.