Development

Local Development

Run the TUI, desktop app, checks, generated data refreshes, and no-download builds locally.

Local Development

TUI

Run the terminal UI from the repository root:

cargo run

Run standard Rust checks:

cargo fmt --check
cargo test
cargo clippy --all-targets --all-features

List normalized project/tool rows without opening the TUI:

cargo run -- --list-projects

Desktop App

Install desktop frontend dependencies once:

cd desktop
pnpm install

Launch the Tauri development app:

pnpm run tauri:dev

Run desktop checks and builds:

pnpm run check
pnpm run build
pnpm tauri build --target aarch64-apple-darwin --bundles app --ci
cd src-tauri
cargo check

Generated Pricing And Currency Data

Refresh the embedded pricing books:

cargo run -- --refresh-prices

Refresh the checked-in Frankfurter-derived currency snapshot:

cargo run -- --generate-currency-json

Do not hand-edit costs/exchange-rates.json, costs/pricing-upstream.json, or src/pricing/snapshot.json; use the refresh commands so generated data stays consistent. Curated pricing overrides and source extraction rules live in costs/pricing-overrides.json and costs/pricing-sources.json.

The pricing books are also refreshed by .github/workflows/refresh-pricing.yml weekly and on manual dispatch. The currency snapshot uses .github/workflows/refresh-currency.yml weekly and on manual dispatch.

No-Download Builds

Default TUI and desktop builds include confirmed Config-page downloads for exchange-rates.json, pricing-upstream.json, and pricing-overrides.json, plus confirmed Copilot quota sync. Build with --no-default-features when you need a no-download binary; those builds keep ingestion local-only and report Config-page downloads and Copilot quota sync as unavailable.