Skip to content

Development

ankurCES edited this page Jun 4, 2026 · 2 revisions

Development

Layout

crates/            the Rust workspace (see README for the per-crate map)
blugo/             the Flutter phone app (outside the cargo workspace)
crates/blumi-web/frontend/   the React + Vite + TS web UI
docs/screenshots/  images used by the README
.github/workflows/ci.yml     CI (Rust gate + Flutter gate)

Build & test

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --all --check

The web UI's built dist/ is committed and embedded via rust-embed, so cargo build needs no JS toolchain. To work on the web UI:

cd crates/blumi-web/frontend && npm install && npm run build

The phone app:

cd blugo && flutter pub get && flutter analyze && flutter test

CI

.github/workflows/ci.yml runs on every push to main and on PRs:

  • rustcargo fmt --check, clippy --all-targets --all-features -D warnings, test --all-features (ubuntu, stable toolchain).
  • flutterflutter analyze + flutter test in blugo/ (Flutter 3.44.1).

Keep both green. Note CI runs on Linux, so platform-gated code (e.g. macOS-only launchd helpers) must be #[cfg]-guarded to avoid dead-code under -D warnings.

Conventions

  • Per-change gate green before committing; Rust feature work merges to main via --no-ff.
  • Commits authored by ankurCES; include the trailer Co-Authored-By: Blumi.
  • Secrets (settings.json, keystores, key.properties) are gitignored — never commit them.

Where things live

  • Agent loop / session actor: crates/blumi-core.
  • Tools: crates/blumi-tools (+ self-management tools in crates/blumi-skills).
  • HTTP/SSE API: crates/blumi-web (handlers in src/api.rs, routes/state in src/lib.rs).
  • Gateway command + service mgmt + grid: crates/blumi/src/{serve.rs,web.rs,grid/,discovery.rs}.
  • TUI: crates/blumi-tui.

Clone this wiki locally