Ship a standalone Android library module that provides the Bluetooth mesh stack (discovery, connect, relay, messaging) without Tor or Nostr, while keeping upstream sync easy.
- New module:
:bitchat-mesh - Public API: manager-style wrapper (
MeshManager+MeshListener) - Excluded: Tor, Nostr, UI, app-only features
- Copy mesh, crypto, noise, protocol, model, sync, util packages into the library module.
- Replace app-only dependencies with minimal stubs (debug, notifications, state store, meshgraph).
- Keep the app module intact to allow clean upstream merges.
- Add
:bitchat-meshto Gradle settings and create module build file. - Copy core source packages into the module.
- Remove Tor/Nostr references and network relay hooks.
- Provide lightweight stubs for app-only services.
- Add a minimal public API wrapper in
com.permissionless.bitchat.mesh. - Document usage and permissions.
- Library lives in its own module; upstream pulls should not require rebasing app files.
- Mesh changes from upstream can be copied into
:bitchat-meshwith minimal diff. - No changes required in upstream
:appunless you want to migrate the app to use the library.
./gradlew :bitchat-mesh:assembleDebug- Consumer app smoke test for BLE discovery and message relay