# Common dev / build entry points. Run `just` with no args to list.

# Run the full local stack — daemon on 127.0.0.1:7071 plus Vite on :5173,
# ordered and health-gated by process-compose. Ctrl-C stops everything.
dev:
    nix run .#dev

# Build the maestro binary together with the SPA bundle its daemon embeds.
web:
    pnpm -C web install --frozen-lockfile
    pnpm -C web build
    cargo build -p maestro --release

# Run the frontend in dev mode against a local daemon — Vite serves it with
# HMR, and `/api/*` is proxied directly to the daemon at 127.0.0.1:7070
# (see vite.config.ts).
web-dev:
    pnpm -C web install
    pnpm -C web dev

# Typecheck the frontend without building.
web-typecheck:
    pnpm -C web install --frozen-lockfile
    pnpm -C web typecheck

# Build the Android debug APK and copy it next to the android/ project root.
apk:
    cd android && ./gradlew assembleDebug
    cp android/app/build/outputs/apk/debug/app-debug.apk android/app-debug.apk

# Full workspace build + tests.
test:
    cargo fmt --all -- --check
    cargo clippy --all-targets -- -D warnings
    cargo test --all

# Format every Rust source.
fmt:
    cargo fmt --all
