Columba 0.6.11
Installation
Download the APK below and install on your Android device.
Verification
See 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 Checksum:
6ef211d140c3a0db81feef2f238f0e7219c93c544377d4483544acc65fa9bd5a columba-0.6.11.apk
What's Changed
The first stable release in a while!
What's new since 0.5.x:
- feat: download maps for offline use, based on current location, geohash, coordinates, or city/address search
- feat: send GIFs and stickers in messages, image clipboard paste
- feat: overhaul of image and file attachments. There's now a setting for maximum incoming image/file size. If your sent message exceeds the recipient's set limit, it will attempt to deliver via propagation node. If it does so, the recipient will see a special card inline in the conversation prompting them to download the file directly. This will temporarily remove the file size limit, download the file, and restore the limit afterwards.
- feat: viewing node details for propagation nodes now shows their set file attachment size limit. Auto selecting logic and sorting of the "tap to select a different relay" list will now also prioritize PNs with higher file size limits
- feat: image compression choices of Low/Medium/High/Original. New setting for default selection. Recommended compression side will be displayed based on the Link speed if a Link is available
- feat: Links are now established when opening a conversation, and will remain open for several minutes when navigating away from a conversation. The "Online" indicator now shows Online if there is an active link (in addition to if there was a recent announce heard). Active links also have a link icon indicator next to the Online indicator
- feat: add option to exclude file and image attachments from data exports to reduce export size
- feat/fix: greatly reduce how often Columba announces and sync with PNs by default
- feat: incoming messages can now show details such as time received, hop count, and receiving interface
What was new since 0.4.x:
- Replies
- Emoji Reactions
- Sideband/Meschat compatible profile icons selectable from the Identity section in settings
- Icons used for location sharing
- OLED Black Theme
- Long press destination hash on node details screen to copy
Tons of bugfixes and optimizations along the way. Big shoutout to @serialrf433 and @brothercorvo and everyone else who opened issues to help me find the bugs!
See the release notes below for details.
What's Changed
- Add emoji reactions to Columba messages by @torlando-tech in #147
- fix: resolve shutdown errors and prevent stale wrapper calls by @torlando-tech in #148
- feat: add process persistence improvements inspired by Sideband by @torlando-tech in #156
- deps(deps): bump androidx.compose:compose-bom from 2024.12.01 to 2025.11.01 in the compose group by @dependabot[bot] in #13
- fix(ble): Clear processedIdentityCallbacks on peer disconnect by @torlando-tech in #149
- deps(deps): bump org.msgpack:msgpack-core from 0.9.8 to 0.9.10 by @dependabot[bot] in #57
- feat: make location permission card dismissable on map screen by @torlando-tech in #158
- chore(deps): Update ble-reticulum to include HCI error fix by @torlando-tech in #157
- test: add Room 2.8.4 upgrade validation tests by @torlando-tech in #162
- fix: default location sharing toggle to disabled by @torlando-tech in #159
- fix: display full destination hash on contacts and announces by @torlando-tech in #160
- fix: automatic service rebinding when Android kills the process by @torlando-tech in #138
- feat: clarify interface type descriptions to prevent user confusion by @torlando-tech in #163
- feat: upgrade Kotlin 2.2.21 + fix Material 3 1.4.0 OutlinedButton borders by @torlando-tech in #161
- feat: add true black OLED theme for battery savings by @torlando-tech in #164
- BREAKING CHANGE: fix: use Sideband-compatible telemetry format for location sharing by @torlando-tech in #170
- refactor: use ble-reticulum as GitHub pip dependency by @torlando-tech in #174
- fix: add connection retry for failed BLE connections by @torlando-tech in #171
- fix: add proactive BLE advertising refresh to prevent silent stops by @torlando-tech in #175
- fix: add identity resync for BLE reconnection recovery by @torlando-tech in #176
- feat: Add profile icon support for Sideband/MeshChat interoperability by @torlando-tech in #177
- fix(ble): remove device from scanner cache on disconnect for reconnection by @torlando-tech in #178
- fix: default LoRa wizard interface mode to boundary by @torlando-tech in #183
- fix: Update default interface modes for better mesh behavior by @torlando-tech in #179
- fix(ble): prevent interface/fragmenter loss during MAC rotation by @torlando-tech in #181
- fix: default LoRa wizard interface mode to boundary by @torlando-tech in #187
- feat: long-press destination hash to copy on node details screen by @torlando-tech in #188
- fix: profile icon interoperability with Sideband and map display by @torlando-tech in #189
- fix: remove obsolete ble-reticulum submodule build step by @torlando-tech in #190
- fix: service-side persistence prevents data loss when app killed by @torlando-tech in #192
- fix: allow saving edited LoRa interface with unchanged name by @torlando-tech in #184
- feat: add GIF/sticker support from keyboard and clipboard paste by @torlando-tech in #193
- fix: message context menu keyboard dismissal and large message scaling by @torlando-tech in #195
- Add APK signing certificate verification to releases by @torlando-tech in #199
- Fix formatting in SECURITY.md for clarity by @torlando-tech in #200
- fix: prevent R8 from obfuscating KotlinReticulumBridge methods by @torlando-tech in #201
- fix: filter deprecated LXMF propagation nodes from sync by @torlando-tech in #202
- feat: parse and display propagation node transfer size limits by @torlando-tech in #210
- feat: configurable incoming message size limit with large file attachment support by @torlando-tech in #185
- fix: enable notifications when permission granted on first launch by @torlando-tech in #205
- fix: persist Maps location permission sheet dismissal across navigation by @torlando-tech in #206
- Optimized scroll performance in Discovered Nodes screen by @MikelCalvo in #45
- user manual created by @brothercorvo in #126
- fix: replace deprecated createTempDir with createTempDirectory by @torlando-tech in #213
- feat: add comprehensive settings and profile icon to export/import by @torlando-tech in #211
- feat: add image quality selection with link speed recommendations by @torlando-tech in #219
- fix(ble): load BLEInterface.py from correct package by @torlando-tech in #223
- feat: Implement Issue 220 - Adjust announce and PN sync intervals by @torlando-tech in #222
- feat: add option to exclude file attachments from data export by @torlando-tech in #226
- Add multi-page onboarding wizard with connectivity setup by @torlando-tech in #232
- fix: prevent garbled propagation node names (#233) by @torlando-tech in #234
- Add message info button for received messages and fix back navigation by @torlando-tech in #235
- Fix autorotation deleting chat text and re-showing BLE permission dialog by @torlando-tech in #237
- Fix retry search not actually searching for 48 hours by @torlando-tech in #242
- feat: Add offline maps with HTTP tile download by @torlando-tech in #182
- Add image save/share functionality by @torlando-tech in #244
- Add hop count and receiving interface to received message info by @torlando-tech in #241
- Fix DeadObjectException when switching identities by @torlando-tech in #245
- Fix flaky MessagingViewModel tests by adding exception handling by @torlando-tech in #250
- Only show Bluetooth permission prompt when BLE interface is enabled by @torlando-tech in #248
- fix(data): use contains() for interface type detection by @torlando-tech in #251
- Remove .auto-claude folder from version control by @torlando-tech in #252
- Remove LINK_SPEED_PROBE_DESIGN.md from version control by @torlando-tech in #253
- Fix AutoInterface receiving interface capture and LXMF image field extraction by @torlando-tech in #254
- Add NomadNet APK download instructions by @torlando-tech in #264
- Update UserGuide.md by @serialrf433 in #263
- Add OpenFreeMap/OSM attribution to map screen by @torlando-tech in #265
- fix: hide address search when Google Play Services unavailable by @torlando-tech in #270
- fix: consistent filtering of deprecated propagation nodes in all queries by @torlando-tech in #268
- fix: propagated messages show correct status in Message Details by @torlando-tech in #203
- fix(#266): enable OnBackInvokedCallback for Android 13+ predictive back by @torlando-tech in #272
- fix: don't pass None to LXMF set_outbound_propagation_node() by @torlando-tech in #271
- feat: add comprehensive About section to Settings (#262) by @torlando-tech in #274
- feat: make all Settings cards collapsible by @torlando-tech in #275
- fix: handle null BluetoothAdapter to prevent Interfaces screen crash by @torlando-tech in #277
- fix: resolve multiple notification issues (backport #288) by @torlando-tech in #295
- feat: add crash report feature with manual bug reporting by @torlando-tech in #297
- fix: handle null publicKey in MigrationExporter for pending contacts by @torlando-tech in #309
- Fix display names in chats panel to show nicknames (#307) [v0.6.x backport] by @torlando-tech in #314
- Fix collapsible settings card chevron not tappable (#305) by @torlando-tech in #317
- feat: Add manual announce removal and show user-configured interface names (issue #289) [v0.6.x] by @torlando-tech in #320
- chore: always create releases as drafts by @torlando-tech in #321
- fix: Respect HTTP toggle setting for map tile fetching (#285) by @torlando-tech in #324
- fix: Store peer icons in dedicated table for reliable persistence by @torlando-tech in #327
- fix: Add database migration 31→32 to drop orphaned icon columns from announces table by @torlando-tech in #335
New Contributors
- @brothercorvo made their first contribution in #126
- @serialrf433 made their first contribution in #263
Full Changelog: v0.4.2...v0.6.11