Columba 1.0.0-beta
IMPORTANT
It's important to note that this will be installed as a separate app from previous versions of Columba. This means that when you first install v1.0, you won't see any of your previous chats or identity. You can use the data migration tool in Columba to bring your chats, contacts, and settings over.
Installation
Download the APK matching your device's CPU architecture.
Architecture-specific APKs (recommended — smaller download):
| APK | Architecture | Devices |
|---|---|---|
columba-1.0.0-beta-armeabi-v7a.apk
| armeabi-v7a | Older 32-bit ARM phones & tablets |
columba-1.0.0-beta-arm64-v8a.apk
| arm64-v8a | Most modern Android phones & tablets |
columba-1.0.0-beta-x86_64.apk
| x86_64 | Chromebooks, emulators, some tablets |
columba-1.0.0-beta-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 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:
be05f2e481ffe6108422e46e07e8c37aab3024a6b0fc40972d5cae0bfb047aac columba-1.0.0-beta-arm64-v8a-no-sentry.apk
d47f3a14a4f82697677249ef37bea5068cf6a3d15f6073a252b353287691ca8b columba-1.0.0-beta-arm64-v8a.apk
140a8c0f56edba87fb3c16ad9fba873541d1e9398137e7ddca4606c082f357fd columba-1.0.0-beta-armeabi-v7a-no-sentry.apk
3f3645aa9418617f5c1ba475a90289a7eb5d4458dcd1662f278cb36e69c1f5e8 columba-1.0.0-beta-armeabi-v7a.apk
aa40ff484aa8dc1e0cb6cf94dae6532b33e669d7fb24bde0010de80a236c2c71 columba-1.0.0-beta-universal-no-sentry.apk
00c05e63d6b16832716a3bce84a116f67f8e2bea379f18d4453d2b84acc50c70 columba-1.0.0-beta-universal.apk
48425690829e7a1c872563b3938012e454ac0970fa574c45587ca7f8caad19f4 columba-1.0.0-beta-x86_64-no-sentry.apk
1ba428357d08799b1a5cc47360ca50986c34badb2c4a749cfcd7085b2ed1b164 columba-1.0.0-beta-x86_64.apk
What's New in v1.0
v1.0 of Columba is here! As of this pre-release, there are likely some new bugs, so this 1.0 version is really to indicate a breaking change, and a significant change. v1.0 fully replaces the python reticulum stack with a custom kotlin implementation, made for Columba.
It's important to note that this will be installed as a separate app from previous versions of Columba. This means that when you first install v1.0, you won't see any of your previous chats or identity. You can use the data migration tool in Columba to bring your chats, contacts, and settings over. You can read more in my previous announcement: #800
There are several UI/UX tweaks in this release, notably that nomadnet sites take fewer taps to get to (via filter chips on the Contacts->Network view), and the interface cards have been redesigned to better show the realtime information available to them.
Some notable features made possible by the kotlin migration:
- Interface changes are now hot-reloaded and do not require restarting reticulum
- New battery profile settings feature. Maximum battery mode drastically improves battery life.
- Ramp down the AutoInterface IPv6 broadcasting after network conditions are stable, helps battery life
- APK is now only 28MB, roughly half of previous releases, due to no longer needing the python runtime
Some other nice things I added while I had the hood open
- Dark mode map option
- Layer icon for choosing whether to show discovered interfaces (by type) on the map
- Search and filter options for discovered interfaces
- Proper IFAC support for all interface types
- Disabled Transport by default and moved its toggle to an Advanced card, with explanatory disclaimer above it
Most of the work for this release has gone into the creation of reticulum-kt and lxmf-kt. There are likely still some bugs in the new stack, especially around Transport, so please do open those issues in GitHub if something seems off!
Thanks again for all the support and love for Columba.
What's Changed
- Complete native Reticulum migration and remove Python runtime by @torlando-tech in #762
- Interface discovery: search + filter + IFAC handling by @torlando-tech in #772
- ci: bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #768
- ci: bump actions/github-script from 8 to 9 by @dependabot[bot] in #769
- deps(deps): bump com.squareup.leakcanary:leakcanary-android from 2.13 to 2.14 by @dependabot[bot] in #756
- Default transport node to disabled for new users by @torlando-tech in #777
- Keep foreground notification in sync after :reticulum process restart by @torlando-tech in #775
- deps(deps): bump org.robolectric:robolectric from 4.16 to 4.16.1 by @dependabot[bot] in #755
- Rename com.lxmf.messenger -> network.columba.app by @torlando-tech in #779
- Remove AIDL surface from ReticulumService by @torlando-tech in #780
- Remove Python-era dead code from ReticulumService by @torlando-tech in #781
- Collapse Room migrations — ColumbaDatabase v1 + InterfaceDatabase v1 by @torlando-tech in #782
- Make builds reproducible by @torlando-tech in #783
- Consume Reticulum/LXMF/LXST stack from JitPack (drop submodules) by @torlando-tech in #786
- Wire delivery + transport identities through memory, scrub on-disk copies by @torlando-tech in #785
- Bump LXST-kt to v0.0.3 (JVM 21 target) by @torlando-tech in #787
- Drop files/reticulum/ backup exclusion (take 2, with LXMF ratchets) by @torlando-tech in #790
- About card: AGPLv3 label, catalog-driven protocol versions, settings-flow state preservation by @torlando-tech in #789
- Eliminate plaintext identity-file window in createIdentity/importIdentity paths by @torlando-tech in #791
- Bump LXMF-kt to v0.0.4 by @torlando-tech in #793
- Register MIGRATION_2_3 + destinationRatchetStore in NativeReticulumProtocol by @torlando-tech in #794
- Update and rename LICENSE to LICENSE.md by @serialrf433 in #797
- Route to IdentityUnlockScreen when Keystore-wrapped identity can't be decrypted after restore by @torlando-tech in #796
- fix: harden Room DB against process-kill corruption (COLUMBA-8C) by @torlando-tech in #799
- fix: ignore CancellationException in rapid interface toggles by @torlando-tech in #801
- fix: remove TestHostActivity launcher entry and LeakCanary icon by @torlando-tech in #743
- fix: route all PRAGMAs through db.query() so Android accepts them by @torlando-tech in #803
- fix: pass IFAC passphrase through to TCPClientInterface factory by @torlando-tech in #804
- fix: render image/file/audio-only messages instead of skipping as telemetry by @torlando-tech in #805
- fix: render file attachments sent in LXMF positional wire format by @torlando-tech in #806
- Bump reticulum-kt to v0.0.8 by @torlando-tech in #808
- Surface announce filters as sticky chip rows; rebrand Nodes → Sites by @torlando-tech in #807
- fix: guard PRAGMA journal_mode and synchronous against Room transactions by @sentry[bot] in #809
- Fix ANR when answering LXST call on slow transports by @torlando-tech in #811
- Restore long-press → delete on interface cards by @torlando-tech in #812
- Refresh interface online status when library state changes by @torlando-tech in #813
- Stop interface-card subtitle from repeating the type label by @torlando-tech in #814
- Bump reticulum-kt to v0.0.10 by @torlando-tech in #815
- NativeInterfaceFactory owns its own coroutine scope by @torlando-tech in #818
- Plumb received-side RSSI/SNR/interface/hop fields to MessageEntity by @torlando-tech in #819
- Propagate LXMessage packet metadata through the receive pipeline by @torlando-tech in #820
- Bump reticulum-kt to v0.0.11 (BLE per-packet RSSI) + local composite-build dev loop by @torlando-tech in #826
- Remove .drop(1) from interface online observer to close fast-transition race by @torlando-tech in #827
- Bump reticulum-kt to v0.0.12 (expire path on link establishment failure) by @torlando-tech in #828
- Dispatch MapViewModel.loadInterfaceMarkers to IO to avoid main-thread Room read by @torlando-tech in #829
- Bump LXMF-kt to v0.0.6 (send-hang fix) + dependencySubstitution for JitPack-collapsed libs by @torlando-tech in #830
- Add Edit action to interface-card long-press menu by @torlando-tech in #831
- Give interface cards the same semantic icon mapping as announce cards by @torlando-tech in #832
- Unify IFAC network-access UI across all interface wizards by @torlando-tech in #833
- Implement TCPServer branch in NativeInterfaceFactory by @torlando-tech in #834
- Bump reticulum-kt to v0.0.13 (BLE handshake concurrency fix) by @torlando-tech in #835
- Move map interface filters behind a layers icon by @torlando-tech in #838
- Add map style picker (Auto / Light / Dark) to the layers sheet by @torlando-tech in #839
- Bump LXMF-kt to v0.0.7 (processingScope silent-drop fix) by @torlando-tech in #840
- Render Micron links on form lines in the NomadNet browser by @torlando-tech in #841
- Auto-linkify bare http/https URLs in the NomadNet browser by @torlando-tech in #842
- fix: prevent spontaneous scroll jumps when reading old messages by @torlando-tech in #668
- fix: replace continuous GPS with on-demand one-shot in Group Tracker by @MatthieuTexier in #746
- Move Transport Node toggle to a new Advanced settings card by @torlando-tech in #846
- Bump LXMF-kt to v0.0.8 — DIRECT double-delivery + dedup keys fixes by @torlando-tech in #848
- Bump reticulum-kt v0.0.14 + LXMF-kt v0.0.9 — multi-hop link race fixes + version alignment by @torlando-tech in #849
Full Changelog: v0.10.6-beta...v1.0.0-beta