Columba

com.lxmf.messenger
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

Columba is a simple messaging and voice app for the [Reticulum](https://github.com/markqvist/Reticulum) network on Android. Send [LXMF](https://github.com/markqvist/LXMF) messages and make [LXST](https://github.com/markqvist/LXST/tree/master/LXST) voice calls without relying on the internet, cell towers, or any central servers.

First release: Mar 13, 2026, 3 total releases.

Most recent release: Apr 26, 2026.

Website Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Apr 26, 2026 0.10.10
    ## Columba 0.10.10 ### Installation Download the APK matching your device's CPU architecture. **Architecture-specific APKs (recommended — smaller download):** | APK | Architecture | Devices | |-----|-------------|---------| | `columba-0.10.10-armeabi-v7a.apk` | armeabi-v7a | Older 32-bit ARM phones & tablets | | `columba-0.10.10-arm64-v8a.apk` | arm64-v8a | Most modern Android phones & tablets |
    More…
    | `columba-0.10.10-x86_64.apk` | x86_64 | Chromebooks, emulators, some tablets | | `columba-0.10.10-universal.apk` | All | Universal fallback (larger download) | **Telemetry variants:** Each architecture also has a `-no-sentry` variant without crash reporting for maximum privacy. > **Not sure which to pick?** Most Android phones use **arm64-v8a**. If unsure, use the **universal** APK. ### Verification See [SECURITY.md](https://github.com/torlando-tech/columba/blob/main/SECURITY.md) for verification instructions. **Signing Certificate Fingerprints:** ``` SHA-256: 02:2B:12:20:48:63:A3:1F:BF:07:5B:C9:F9:34:1E:33:52:78:80:2E:80:C9:27:A4:75:46:E4:7E:2F:4A:0C:5F SHA-1: 0A:6B:AE:58:4E:D7:B5:D0:35:8B:3C:7B:65:11:D6:3A:81:21:0D:CE ``` **SHA256 Checksums:** ``` 8ef4736ff8c3a905c9a9b212657f4d4978e486487da2313ceb5ddf833983c9dd columba-0.10.10-arm64-v8a-no-sentry.apk 37615629553682ce7cc0e62af6a5e6ea7200bc63a0535b8455680c84e2e52cd2 columba-0.10.10-arm64-v8a.apk 866ff341413cff6e41feb59661d8ef4217a7f10698138d582038daca830938e2 columba-0.10.10-armeabi-v7a-no-sentry.apk 6dab927d4737de9b9f1136e976c2bcf204aebc4fb9158b2fa14eb4cabf3adc36 columba-0.10.10-armeabi-v7a.apk ae2c7a660e248345c3f7a5ee0b1804fe058c0956bdc86e5e2d52cd11a9180629 columba-0.10.10-universal-no-sentry.apk 0fb5027e5a7512bbd9217a2f8b67ecba3981d0984f3762762c00d1aa57fe2cde columba-0.10.10-universal.apk 4a39c7b6a3834927f89acff2580179e3b54574aa2a8d3b2edebcc98fd54445e7 columba-0.10.10-x86_64-no-sentry.apk 94a52cd66ac89ad7d2c9ce94460cc48b2a16ef6e8fdd290bedc73b48ca38f734 columba-0.10.10-x86_64.apk ``` ### What's Changed See the release notes below for details. ## What's Changed * fix: unblock LXMF send path on RNS 1.1.9 (known_destinations + path API + stamp callback) by @torlando-tech in https://github.com/torlando-tech/columba/pull/851 **Full Changelog**: https://github.com/torlando-tech/columba/compare/v0.10.9...v0.10.10
  • Apr 26, 2026 0.10.9
    ## Columba 0.10.9 ### Installation Download the APK matching your device's CPU architecture. **Architecture-specific APKs (recommended — smaller download):** | APK | Architecture | Devices | |-----|-------------|---------| | `columba-0.10.9-armeabi-v7a.apk` | armeabi-v7a | Older 32-bit ARM phones & tablets | | `columba-0.10.9-arm64-v8a.apk` | arm64-v8a | Most modern Android phones & tablets |
    More…
    | `columba-0.10.9-x86_64.apk` | x86_64 | Chromebooks, emulators, some tablets | | `columba-0.10.9-universal.apk` | All | Universal fallback (larger download) | **Telemetry variants:** Each architecture also has a `-no-sentry` variant without crash reporting for maximum privacy. > **Not sure which to pick?** Most Android phones use **arm64-v8a**. If unsure, use the **universal** APK. ### Verification See [SECURITY.md](https://github.com/torlando-tech/columba/blob/main/SECURITY.md) for verification instructions. **Signing Certificate Fingerprints:** ``` SHA-256: 02:2B:12:20:48:63:A3:1F:BF:07:5B:C9:F9:34:1E:33:52:78:80:2E:80:C9:27:A4:75:46:E4:7E:2F:4A:0C:5F SHA-1: 0A:6B:AE:58:4E:D7:B5:D0:35:8B:3C:7B:65:11:D6:3A:81:21:0D:CE ``` **SHA256 Checksums:** ``` 0030b86e0285f486bf2f1dd9a7ab59681efd0aa1b0802416d4cdf979cf2ef4f4 columba-0.10.9-arm64-v8a-no-sentry.apk 55677de3fa877b3ae42ece6bb4f2050794fb07fa47dc0690393f0ab659aa3ede columba-0.10.9-arm64-v8a.apk 229b4da5e7d8a1a58ce72b2f2c690d33794c1492f472ff1706366c4245f953b6 columba-0.10.9-armeabi-v7a-no-sentry.apk 593306d0d734d10e5755ccdc4f64325c81706fd456d248a34f13d81d535c3652 columba-0.10.9-armeabi-v7a.apk 9cb0ad1b1a15cc437f7e876464c498dec1c436259c1d3d81779191ce07c1d14a columba-0.10.9-universal-no-sentry.apk 8fe3306e5b627ecdf269edc7cb5f1dfa210a664c2656c2a08668ef82299d491e columba-0.10.9-universal.apk 09277c84d56f770d3ac3bb1389feb32ded422d51c4e93ceb38d872c0f3520931 columba-0.10.9-x86_64-no-sentry.apk a19c7cb1956d8eb38145d9dd55518128df722e6ecc8350aaaef44620735d5328 columba-0.10.9-x86_64.apk ``` ## Important Note This will be the last release of the Python RNS backed version of Columba. The next stable release will be v1.0, which will replace all python with kotlin code. This will also be a new "app" on your Android devices, appearing alongside the v0.x version of Columba. You can read more about this here: https://github.com/torlando-tech/columba/discussions/800 ### What's new in v0.10: - Nomadnet browser. Accessed by filtering the Contacts->Network view for Nodes, and tapping one to browse. Supports three different reading modes, depending on whether you want preserved ASCII art, or an optimized reading experience - Create a wifi hotspot and share the Columba APK with others locally, peer to peer - Block incoming messages from peers. Optionally blackhole them too when transport is enabled. - Add an Offline banner when the Reticulum service is offline - New map pin clustering when pins are too close together to be rendered without overlapping, feat @MatthieuTexier - New button in chat view when the other person is sharing their location with you, to let you view their location on the map, feat @MatthieuTexier - Background permission flow, feat @MatthieuTexier - RNode flasher expanded to allow CE and custom rnode firmware sources - Get a notification when RNode device is disconnected - Show outbound interface in message details - Add IFAC params to RNode interfaces - Automatically add IFAC params to discovered interfaces when copying config, feat @taprootmx - Add map pins for discovered interfaces if they include their coordinates - Bumped RNS to 1.1.9 - Lots of bugfixes ## What's Changed * deps: bump Chaquopy 16.1.0 → 17.0.0 for Gradle 9 compat by @torlando-tech in https://github.com/torlando-tech/columba/pull/643 * feat(map): declutter overlapping contact markers by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/572 * feat: add background location permission flow in Location Sharing settings by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/600 * feat: add 'Locate on Map' to Chats, Messaging, and Contacts screens by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/597 * fix: prevent binder buffer exhaustion causing crash loop by @torlando-tech in https://github.com/torlando-tech/columba/pull/652 * feat: add offline mode banner (#623) by @torlando-tech in https://github.com/torlando-tech/columba/pull/626 * fix: show notifications when app backgrounded on active conversation by @torlando-tech in https://github.com/torlando-tech/columba/pull/649 * fix: sort messages by local receive time to prevent clock-drift reordering by @torlando-tech in https://github.com/torlando-tech/columba/pull/645 * ci: split module tests into separate job to prevent shard 0 timeouts by @torlando-tech in https://github.com/torlando-tech/columba/pull/655 * Prevent duplicate message notifications on service restart by @torlando-tech in https://github.com/torlando-tech/columba/pull/650 * feat: add block & blackhole peer protection by @torlando-tech in https://github.com/torlando-tech/columba/pull/601 * feat: clean up stale announces, add PHONE NodeType and cross-link buttons by @torlando-tech in https://github.com/torlando-tech/columba/pull/581 * feat: add WiFi hotspot sharing for APK distribution without existing network by @torlando-tech in https://github.com/torlando-tech/columba/pull/632 * ci: trigger CI on release/* branches by @torlando-tech in https://github.com/torlando-tech/columba/pull/660 * fix: catch SecurityException when location permission revoked while backgrounded by @torlando-tech in https://github.com/torlando-tech/columba/pull/662 * feat: multiple firmware sources + custom firmware in RNode flasher (#485) by @torlando-tech in https://github.com/torlando-tech/columba/pull/582 * feat: RNode disconnect notification by @torlando-tech in https://github.com/torlando-tech/columba/pull/628 * fix: path persistence + proactive path resolution by @torlando-tech in https://github.com/torlando-tech/columba/pull/665 * chore: bump GitHub Actions dependencies to latest versions by @torlando-tech in https://github.com/torlando-tech/columba/pull/667 * feat: show outbound interface in message details (#646) by @torlando-tech in https://github.com/torlando-tech/columba/pull/666 * feat: NomadNet browser with Micron rendering, URL bar, and URI handler by @torlando-tech in https://github.com/torlando-tech/columba/pull/671 * ci: Bump reactivecircus/android-emulator-runner from 2.36.0 to 2.37.0 by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/682 * fix: prevent crash on corrupted interface in edit dialog by @torlando-tech in https://github.com/torlando-tech/columba/pull/710 * fix: replace modal restart dialog with inline banner by @torlando-tech in https://github.com/torlando-tech/columba/pull/711 * fix: preserve settings state when combine flow re-fires (#688) by @torlando-tech in https://github.com/torlando-tech/columba/pull/712 * feat: add IFAC network_name and passphrase support for RNode interfaces by @torlando-tech in https://github.com/torlando-tech/columba/pull/718 * fix: prevent identity file loss and add opportunistic key backup by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/717 * test: add regression tests for identity recovery edge cases by @torlando-tech in https://github.com/torlando-tech/columba/pull/720 * fix: prevent initial camera from overriding Locate on Map by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/715 * fix: show address for auto-discovered backbone interfaces by @torlando-tech in https://github.com/torlando-tech/columba/pull/722 * fix: handle inline field=value variables in Micron links by @torlando-tech in https://github.com/torlando-tech/columba/pull/723 * feat: improve NomadNet page request reliability and status reporting by @torlando-tech in https://github.com/torlando-tech/columba/pull/724 * feat: add NomadNet file download support by @torlando-tech in https://github.com/torlando-tech/columba/pull/725 * Add micron parser audit comparing Columba against NomadNet and micron-parser-js by @torlando-tech in https://github.com/torlando-tech/columba/pull/678 * fix: prevent stale page request from overwriting current page by @torlando-tech in https://github.com/torlando-tech/columba/pull/726 * feat: render discovered interfaces as map pins with type filtering by @torlando-tech in https://github.com/torlando-tech/columba/pull/729 * fix: prevent announce list scroll jumps when new announces arrive by @torlando-tech in https://github.com/torlando-tech/columba/pull/727 * chore: upgrade to Gradle 9.4.1 and AGP 9.1.0 by @torlando-tech in https://github.com/torlando-tech/columba/pull/730 * fix: deduplicate path requests with hasPath guard by @torlando-tech in https://github.com/torlando-tech/columba/pull/735 * ci: bump gradle/actions from 5 to 6 by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/731 * deps(deps): Bump the compose group with 2 updates by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/684 * deps(deps): Bump cameraX from 1.5.2 to 1.5.3 by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/685 * ci: bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/732 * fix: scope MapViewModel announce query to location senders by @torlando-tech in https://github.com/torlando-tech/columba/pull/737 * Fix/sentry gradle hang by @torlando-tech in https://github.com/torlando-tech/columba/pull/776 * fix: harden Room DB against process-kill corruption (COLUMBA-8C) by @torlando-tech in https://github.com/torlando-tech/columba/pull/798 * fix: route all PRAGMAs through db.query() so Android accepts them by @torlando-tech in https://github.com/torlando-tech/columba/pull/802 * Backport: guard PRAGMA journal_mode and synchronous against Room transactions by @torlando-tech in https://github.com/torlando-tech/columba/pull/810 * fix: limit startup path requests to 3 most recent conversations by @torlando-tech in https://github.com/torlando-tech/columba/pull/742 * Bump Python RNS to 1.1.9 (rebased fork + upstream IFAC autoconnect fix) by @torlando-tech in https://github.com/torlando-tech/columba/pull/845 * Auto-populate IFAC network name on discovered interfaces (fixes #770) by @torlando-tech in https://github.com/torlando-tech/columba/pull/844 * Fix BleGattServer NPE on null-boxed offset (COLUMBA-6Q) by @torlando-tech in https://github.com/torlando-tech/columba/pull/843 **Full Changelog**: https://github.com/torlando-tech/columba/compare/v0.9.18...v0.10.9
  • Mar 13, 2026 0.9.19
    ## Columba 0.9.19 ### Installation Download the APK matching your device's CPU architecture. **Architecture-specific APKs (recommended — smaller download):** | APK | Architecture | Devices | |-----|-------------|---------| | `columba-0.9.19-armeabi-v7a.apk` | armeabi-v7a | Older 32-bit ARM phones & tablets | | `columba-0.9.19-arm64-v8a.apk` | arm64-v8a | Most modern Android phones & tablets |
    More…
    | `columba-0.9.19-x86_64.apk` | x86_64 | Chromebooks, emulators, some tablets | | `columba-0.9.19-universal.apk` | All | Universal fallback (larger download) | **Telemetry variants:** Each architecture also has a `-no-sentry` variant without crash reporting for maximum privacy. > **Not sure which to pick?** Most Android phones use **arm64-v8a**. If unsure, use the **universal** APK. ### Verification See [SECURITY.md](https://github.com/torlando-tech/columba/blob/main/SECURITY.md) for verification instructions. **Signing Certificate Fingerprints:** ``` SHA-256: 02:2B:12:20:48:63:A3:1F:BF:07:5B:C9:F9:34:1E:33:52:78:80:2E:80:C9:27:A4:75:46:E4:7E:2F:4A:0C:5F SHA-1: 0A:6B:AE:58:4E:D7:B5:D0:35:8B:3C:7B:65:11:D6:3A:81:21:0D:CE ``` **SHA256 Checksums:** ``` 18adbe9d03f2e9e89c6f1e59b8bc88f79441119a7b277a1e57de4040c848cdd7 columba-0.9.19-arm64-v8a-no-sentry.apk 30bec96047e871a9cc8a01a16234f56170a006cd67a182ef51fe35310823b60c columba-0.9.19-arm64-v8a.apk 73b658ac3a342934e8681e58425463cd1aa0f07e5f405415972daea9361aa8bc columba-0.9.19-armeabi-v7a-no-sentry.apk 3a23521019e90f8a2723013d93247e3a0d84136908e56cb5d5e92e73d377a80d columba-0.9.19-armeabi-v7a.apk e7681343660b348651416ddec8be956961bd7d993cb44895548037196e41450b columba-0.9.19-universal-no-sentry.apk 73e7c4162c7b4a081b4c4c22271e60e61c71ee749b3805641bb025d079548056 columba-0.9.19-universal.apk da8be60e8bd39803b7fc241dfbf3c957bf67837c0040f6c162c90ce220ce3c99 columba-0.9.19-x86_64-no-sentry.apk 386bc51dbe83f8dfee8d710fbcb0693e2e2f19ee37f17c7ee5793131da903603 columba-0.9.19-x86_64.apk ``` ### What's Changed v0.9.x adds these features: * Add APK sharing feature with local HTTP server and QR code * Add QR code dialog UX improvements - share and scan ID QR codes from the Chats view * Add **experimental** Tor/Orbot SOCKS5 proxy support for .onion addresses * security: Encrypt migration export files with AES-256-GCM by @MatthieuTexier * Improve message input UX with adaptive attachment buttons by @MatthieuTexier * Add filtering by interface options for announce notifications * Replace share intent with SAF file save dialog for exports * Add draft message auto-save feature for conversations * Add option to unset group host in location sharing settings * Add MBTiles file import functionality to offline maps * Add viewport persistence and default offline map region support * fix: support raster MBTiles import (as exported from MeshChatX) and derive center from bounds * feat: add image sharing from external apps by @MatthieuTexier * feat: double-back-to-exit on root tab screens by @MatthieuTexier * security: Encrypted Reticulum identity key storage * perf: reduce battery drain * feat: add message deletion by @MatthieuTexier in #557 Lots of bug fixes went into this release, here are some of the notable ones: * fix: path persistence + proactive path resolution by [@torlando-tech](https://github.com/torlando-tech) in [#664](https://github.com/torlando-tech/columba/pull/664) * fix: show notifications when app backgrounded on active conversation by @torlando-tech in #648 * fix: BLE shutdown cleanup + battery-tunable power settings by @torlando-tech in https://github.com/torlando-tech/columba/pull/609 * fix: notification tap not opening app or conversation by @torlando-tech in #631 * fix: stop changing phone's Bluetooth device name during BLE advertising by @torlando-tech in #630 See the release notes below for details. ## What's Changed * docs: add Strangler Fig migration skill for Python extraction by @torlando-tech in https://github.com/torlando-tech/columba/pull/466 * fix: move URL regex off main thread in MessagingScreen by @torlando-tech in https://github.com/torlando-tech/columba/pull/468 * Encrypt migration export files with AES-256-GCM by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/467 * Improve message input UX with adaptive attachment buttons by @torlando-tech in https://github.com/torlando-tech/columba/pull/429 * Add filtering options for announce notifications by @torlando-tech in https://github.com/torlando-tech/columba/pull/426 * Replace share intent with SAF file save dialog for exports by @torlando-tech in https://github.com/torlando-tech/columba/pull/425 * Add draft message auto-save feature for conversations by @torlando-tech in https://github.com/torlando-tech/columba/pull/433 * fix: disable RNodeCompanionService on pre-API 31 devices by @torlando-tech in https://github.com/torlando-tech/columba/pull/471 * Add LocationCompat utility for graceful GMS fallback on devices without Play Services by @torlando-tech in https://github.com/torlando-tech/columba/pull/469 * fix: Oboe SIGSEGV on OpenSL ES + speaker toggle for native stream by @torlando-tech in https://github.com/torlando-tech/columba/pull/470 * Add option to unset group host in location sharing settings by @torlando-tech in https://github.com/torlando-tech/columba/pull/473 * Add MBTiles file import functionality to offline maps by @torlando-tech in https://github.com/torlando-tech/columba/pull/428 * Add viewport persistence and default offline map region support by @torlando-tech in https://github.com/torlando-tech/columba/pull/427 * fix: support raster MBTiles import and derive center from bounds by @torlando-tech in https://github.com/torlando-tech/columba/pull/474 * Add APK sharing feature with local HTTP server and QR code by @torlando-tech in https://github.com/torlando-tech/columba/pull/430 * Add Password keyboard type to password input fields by @torlando-tech in https://github.com/torlando-tech/columba/pull/475 * feat: add image sharing from external apps by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/435 * feat: double-back-to-exit on root tab screens by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/457 * Add Tor/Orbot SOCKS5 proxy support for .onion addresses by @torlando-tech in https://github.com/torlando-tech/columba/pull/424 * feat: full-screen incoming call screen with ringtone & vibration by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/452 * feat: Encrypted Reticulum identity key storage by @torlando-tech in https://github.com/torlando-tech/columba/pull/276 * fix: make announce filter dialog scrollable on short displays by @torlando-tech in https://github.com/torlando-tech/columba/pull/483 * fix: keep geohash field and Next button visible when keyboard opens by @torlando-tech in https://github.com/torlando-tech/columba/pull/492 * fix: don't request Bluetooth permission for USB-connected RNodes by @torlando-tech in https://github.com/torlando-tech/columba/pull/494 * fix: add post-flash firmware verification by @torlando-tech in https://github.com/torlando-tech/columba/pull/497 * fix: nRF52 DFU flashing and frequency band detection by @torlando-tech in https://github.com/torlando-tech/columba/pull/506 * fix: use build-time config for copyright year by @torlando-tech in https://github.com/torlando-tech/columba/pull/510 * fix: remove OLED references and fix flaky CI submodule checkout by @torlando-tech in https://github.com/torlando-tech/columba/pull/509 * ReviewConfigStep.kt - remove the word OLED by @serialrf433 in https://github.com/torlando-tech/columba/pull/499 * fix: QR scanning fails on LineageOS due to camera row stride mismatch by @torlando-tech in https://github.com/torlando-tech/columba/pull/500 * fix: resolve DeadObjectException, OOM, and ANR from Sentry by @torlando-tech in https://github.com/torlando-tech/columba/pull/502 * fix: send pending file notification eagerly on propagation fallback by @torlando-tech in https://github.com/torlando-tech/columba/pull/514 * fix: use Dispatchers.IO for EventHandler coroutines by @torlando-tech in https://github.com/torlando-tech/columba/pull/516 * Add QR code dialog UX improvements by @torlando-tech in https://github.com/torlando-tech/columba/pull/518 * feat: message font zoom via text size dialog in conversation view by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/505 * perf: reduce battery drain by 88% fewer timer wake-ups by @torlando-tech in https://github.com/torlando-tech/columba/pull/504 * fix: announce interface identification when transport disabled by @torlando-tech in https://github.com/torlando-tech/columba/pull/519 * fix: shutdown now stops foreground service (#455) by @torlando-tech in https://github.com/torlando-tech/columba/pull/521 * fix: move AIDL binder calls off main thread to prevent ANR (COLUMBA-3X) by @torlando-tech in https://github.com/torlando-tech/columba/pull/524 * fix: RNode announces via BLE shown with Bluetooth icon by @torlando-tech in https://github.com/torlando-tech/columba/pull/525 * fix: restore foreground notification after user swipe on Android 13+ by @torlando-tech in https://github.com/torlando-tech/columba/pull/527 * fix: eliminate BLE keepalive coroutine accumulation (COLUMBA-40) by @torlando-tech in https://github.com/torlando-tech/columba/pull/530 * fix: strip URI scheme prefixes from hostname input by @torlando-tech in https://github.com/torlando-tech/columba/pull/532 * fix: prevent delivered message status from regressing by @torlando-tech in https://github.com/torlando-tech/columba/pull/535 * fix: strip port from pasted URLs, sanitize RNode/UDP hosts by @torlando-tech in https://github.com/torlando-tech/columba/pull/537 * fix: use colon count instead of IPv6 regex for port-stripping guard by @torlando-tech in https://github.com/torlando-tech/columba/pull/539 * Enhance README with voice app details and new features by @torlando-tech in https://github.com/torlando-tech/columba/pull/541 * fix: move app initialization off main thread to prevent ANR (COLUMBA-26) by @torlando-tech in https://github.com/torlando-tech/columba/pull/544 * fix: debounce reachable count to prevent binder saturation by @torlando-tech in https://github.com/torlando-tech/columba/pull/548 * fix: prevent LazyColumn duplicate key crash (#542) by @torlando-tech in https://github.com/torlando-tech/columba/pull/550 * fix: detect all nRF52 bootloader PIDs during DFU flash by @torlando-tech in https://github.com/torlando-tech/columba/pull/553 * fix: wipe nRF52 EEPROM before provisioning to initialize LittleFS by @torlando-tech in https://github.com/torlando-tech/columba/pull/555 * fix: remove hardcoded VID filter from nRF52 EEPROM wipe reconnect by @torlando-tech in https://github.com/torlando-tech/columba/pull/556 * fix: add @JvmOverloads to KotlinUSBBridge.connect() for USB RNode by @torlando-tech in https://github.com/torlando-tech/columba/pull/561 * fix: use ContextCompat.startForegroundService to support API 24+ by @torlando-tech in https://github.com/torlando-tech/columba/pull/563 * feat: add message deletion by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/557 * fix: move BackHandler inside root tab composables for correct priority by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/559 * fix: include host device location in hosted group telemetry stream by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/562 * feature: check for updates via GitHub Releases API by @torlando-tech in https://github.com/torlando-tech/columba/pull/568 * fix: use arm64-v8a filename so Obtainium selects 64-bit APK by @torlando-tech in https://github.com/torlando-tech/columba/pull/576 * fix: prevent ANR and file picker crash (COLUMBA-4E/4F/4H/4J) by @torlando-tech in https://github.com/torlando-tech/columba/pull/578 * fix: update AGP 8.13, Lifecycle 2.10, Chaquopy 16.1 to fix NullSafeMutableLiveData lint crash by @torlando-tech in https://github.com/torlando-tech/columba/pull/580 * Fix Contacts crash caused by duplicate LazyColumn keys by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/583 * fix: hot-add AutoInterface on network change by @torlando-tech in https://github.com/torlando-tech/columba/pull/587 * ci: bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/588 * fix: resolve 4 Sentry issues — ANRs, OOM, duplicate keys by @torlando-tech in https://github.com/torlando-tech/columba/pull/584 * Fix duplicate contact key crash and normalize hex hashes by @torlando-tech in https://github.com/torlando-tech/columba/pull/585 * Fix crash on invalid lat/lon input in offline map download by @torlando-tech in https://github.com/torlando-tech/columba/pull/590 * Fix setup wizard showing on upgrade from pre-0.9.0 by @torlando-tech in https://github.com/torlando-tech/columba/pull/591 * fix: Group Tracker: host allowlist, self-echo, host picker stability, background location by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/593 * fix: truncate collector address in debug log by @torlando-tech in https://github.com/torlando-tech/columba/pull/595 * deps(deps): Bump org.maplibre.gl:android-sdk from 11.13.5 to 12.3.1 by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/207 * deps(deps): bump com.composables:icons-lucide-android from 1.1.0 to 2.2.1 by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/167 * deps(deps): bump the kotlin group across 1 directory with 4 updates by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/312 * deps(deps): bump the compose group with 2 updates by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/364 * fix: resolve map 0,0 fallback race condition on cold start by @torlando-tech in https://github.com/torlando-tech/columba/pull/611 * fix: rethrow CancellationException in AnnounceStreamViewModel by @torlando-tech in https://github.com/torlando-tech/columba/pull/613 * fix: wire up 'Check for Updates' to fetch tile version by @torlando-tech in https://github.com/torlando-tech/columba/pull/602 * fix: BLE shutdown cleanup + battery-tunable power settings by @torlando-tech in https://github.com/torlando-tech/columba/pull/609 * fix: improve BLE BATTERY_SAVER discovery reliability by @torlando-tech in https://github.com/torlando-tech/columba/pull/622 * Defer bulk peer identity restore after prioritizing contacts by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/604 * fix: prevent map viewport race on tab switch with no location by @torlando-tech in https://github.com/torlando-tech/columba/pull/627 * fix: post-call navigation after cold start by @MatthieuTexier in https://github.com/torlando-tech/columba/pull/629 * fix: stop changing phone's Bluetooth device name during BLE advertising by @torlando-tech in https://github.com/torlando-tech/columba/pull/630 * fix: notification tap not opening app or conversation by @torlando-tech in https://github.com/torlando-tech/columba/pull/631 * Remove dead name-based dedup code after PR #630 by @torlando-tech in https://github.com/torlando-tech/columba/pull/633 * fix: disable Python tracemalloc in release builds by @torlando-tech in https://github.com/torlando-tech/columba/pull/639 * deps(deps): bump the kotlin group with 2 updates by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/634 * deps(deps): bump the testing group with 2 updates by @dependabot[bot] in https://github.com/torlando-tech/columba/pull/635 * fix: CI flaky tests and dependency resolution retry (backport) by @torlando-tech in https://github.com/torlando-tech/columba/pull/651 * fix: show notifications when app backgrounded on active conversation by @torlando-tech in https://github.com/torlando-tech/columba/pull/648 * fix: prevent binder buffer exhaustion causing crash loop by @torlando-tech in https://github.com/torlando-tech/columba/pull/654 * fix: sort messages by received time (backport to v0.9.x) by @torlando-tech in https://github.com/torlando-tech/columba/pull/656 * fix: prevent duplicate notifications on restart (backport to v0.9.x) by @torlando-tech in https://github.com/torlando-tech/columba/pull/658 * ci: trigger CI on release/* branches by @torlando-tech in https://github.com/torlando-tech/columba/pull/661 * fix: remove broken cherry-pick artifacts that prevent compilation by @torlando-tech in https://github.com/torlando-tech/columba/pull/659 * fix: catch SecurityException when location permission revoked while backgrounded by @torlando-tech in https://github.com/torlando-tech/columba/pull/663 * fix: path persistence + proactive path resolution by @torlando-tech in https://github.com/torlando-tech/columba/pull/664 **Full Changelog**: https://github.com/torlando-tech/columba/compare/v0.8.19...v0.9.19