You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Android-only Modules:**`core:barcode` (CameraX). Shared contracts abstracted into `core:ui/commonMain`.
8
+
-**Android-only Modules:**`core:barcode` (CameraX), `feature:widget` (Glance home-screen widget), `feature:car` (Android Auto via the Car App Library, `google` flavor only), and `baselineprofile` (Macrobenchmark). Shared contracts are abstracted into `core:ui/commonMain`.
|`core:navigation`| Shared navigation keys/routes for Navigation 3 using `@Serializable sealed interface` hierarchies. `DeepLinkRouter` for typed backstack synthesis, and `MeshtasticNavSavedStateConfig` with `subclassesOfSealed()` for automatic polymorphic backstack persistence. |
|`feature/wifi-provision`| KMP WiFi provisioning via BLE (Nymea protocol). Uses `core:ble` Kable abstractions. |
39
40
|`feature/firmware`| Fully KMP firmware update system: Unified OTA (BLE + WiFi), native Nordic Secure DFU protocol (pure KMP), USB/UF2 updates, and `FirmwareRetriever` with manifest-based resolution. Desktop is a first-class target. |
40
41
|`desktopApp/`| Compose Desktop application. Thin host shell relying on feature modules for shared UI. Full Koin DI graph, TCP, Serial/USB, and BLE transports. Versioning via `config.properties` + `GitVersionValueSource`. |
@@ -66,12 +67,7 @@ Agents **MUST** perform these steps automatically at the start of every session
66
67
```
67
68
All `./gradlew` invocations must include `ANDROID_HOME` in the environment. If the SDK cannot be found, ask the user for the path.
68
69
69
-
2.**Proto submodule:**`core/proto/src/main/proto` is a Git submodule containing Protobuf definitions. It must be initialized or builds will fail with proto generation errors:
70
-
```bash
71
-
git submodule update --init
72
-
```
73
-
74
-
3.**Init secrets:** If `local.properties` does not exist, copy `secrets.defaults.properties` to `local.properties`. Without this the `google` flavor build fails:
70
+
2.**Init secrets:** If `local.properties` does not exist, copy `secrets.defaults.properties` to `local.properties`. Without this the `google` flavor build fails:
Copy file name to clipboardExpand all lines: AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ You are an expert Android/KMP engineer. Maintain architectural boundaries, use M
38
38
-**CMP Over Android:** Use `compose-multiplatform` constraints. Pre-format floats with `NumberFormatter.format()`. Use `MeshtasticNavDisplay` and `NavigationBackHandler`.
39
39
-**Zero Lint Tolerance:** Task is incomplete if `detekt` or `spotlessCheck` fails.
40
40
-**Verify Before Push:** Treat any "push" as verify-then-push. CI has failed repeatedly due to skipped local checks.
41
-
-**Never Touch Protos or Secrets:**`core/proto` is an upstream submodule. Secrets are git-ignored.
41
+
-**Never Touch Protos or Secrets:**Protobuf models come from the upstream `org.meshtastic:protobufs` Maven dependency (pinned in `gradle/libs.versions.toml`) — bump the version upstream, never hand-edit generated proto. Secrets are git-ignored.
42
42
-**Privacy First:** Never log or expose PII, location, or cryptographic keys.
Copy file name to clipboardExpand all lines: README.md
+13-2Lines changed: 13 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,16 @@ This is a tool for using Android (and Compose Desktop) with open-source mesh rad
15
15
16
16
If you have questions or feedback please [Join our discussion forum](https://github.com/orgs/meshtastic/discussions) or the [Discord Group](https://discord.gg/meshtastic). We would love to hear from you!
17
17
18
+
## Features
18
19
20
+
Highlights from the latest release:
21
+
22
+
-**Full-text message search** across your conversation history.
23
+
-**Mesh network discovery** to surface nodes and channels around you.
24
+
-**Android Auto** support for hands-free use while driving (`google` flavor).
25
+
-**Air-quality telemetry** — PM1.0, PM2.5, PM10, and CO₂ readings from supported sensors.
26
+
-**Device hardware links** via [msh.to](https://msh.to) for quick access to hardware details.
27
+
-**App Functions / system-AI integration** so on-device assistants can trigger common workflows.
19
28
20
29
## Get Meshtastic
21
30
@@ -76,7 +85,7 @@ The app follows modern Android development practices, built on top of a shared K
76
85
-**State Management:** Unidirectional Data Flow (UDF) with ViewModels, Coroutines, and Flow.
77
86
-**Dependency Injection:** Koin with Koin Annotations (K2 Compiler Plugin).
78
87
-**Navigation:** JetBrains Navigation 3 (Multiplatform routing with RESTful deep linking).
79
-
-**Data Layer:** Repository pattern with Room KMP (local DB), DataStore (prefs), and Protobuf (device comms).
88
+
-**Data Layer:** Repository pattern with Room KMP (local DB), DataStore (prefs), and Protobuf (device comms). Protobuf models are consumed from the upstream `org.meshtastic:protobufs` Maven artifact, pinned in `gradle/libs.versions.toml`.
80
89
81
90
### Bluetooth Low Energy (BLE)
82
91
The BLE stack uses a multiplatform interface-driven architecture. Platform-agnostic interfaces live in `commonMain`, utilizing the **Kable** multiplatform BLE library to handle device communication across all supported targets (Android, Desktop). This provides a robust, Coroutine-based architecture for reliable device communication while remaining fully KMP compatible. See [core/ble/README.md](core/ble/README.md) for details.
@@ -106,7 +115,6 @@ Each module has its own README with details on its responsibilities, API surface
0 commit comments