Contributions are open, and adapter PRs are the ones we want most — no prior discussion needed if you follow docs/adapters.md. For daemon/protocol changes, open an issue first so we can agree on the shape before you spend time.
- The footprint budget is law. Anything that adds idle CPU, resident memory, or network I/O to the daemon will be declined regardless of the feature. See docs/architecture.md.
- Protocol changes must update
crates/mb-protocolanddocs/protocol.mdin the same PR, with a version bump if breaking. - No CLA. Contributions are accepted under the project's MIT license (inbound = outbound).
rustup show # toolchain comes from rust-toolchain.toml
cargo test # all crates
cargo run -p microbridged
node adapters/reference-echo/index.mjs # exercise the daemon end-to-endEnd-user install paths are documented in INSTALL.md
(./scripts/install.sh, uninstall, releases).
cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
# menu bar app:
cd apps/microbridge-ui && npm ci && npm run buildOr make ci. CI enforces Rust checks on macOS/Linux and the UI build on Ubuntu.
Push a version tag to publish binaries via GitHub Actions:
git tag v0.1.0
git push origin v0.1.0Assets are attached to the GitHub Release; users can run
./scripts/install-from-release.sh v0.1.0.
main is protected — no direct pushes. Open a PR; squash-merge only.
- PR titles must be Conventional Commits (
feat:,fix:,docs:,adapter:, …) — enforced by CI (PR titleworkflow). - Required checks:
rust (ubuntu-latest),rust (macos-latest),ui. - Resolve review threads before merge.
- One logical change per PR; small PRs merge fast here.
- PRs must say how they were tested — "ran the reference adapter against the daemon and watched the frames" is a fine answer at this stage.
See docs/governance.md.
Privately, please — see SECURITY.md.