bitchat @ v1.5.0
integrity
- size
- 8.2 MiB
- downloaded
- last checked
release notes
- audio notes and images in mesh chat
- new mesh routing algorithm
- new tor framework (arti)
- security audit fixes
What's Changed
- Add voice notes and images over BLE mesh (audio + image only) by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/823
- Remove
presentationDetentsas default is alreadylargeby @qalandarov in https://github.com/permissionlesstech/bitchat/pull/826 - Extract sanitization logic into an extension + add tests by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/827
- fix: update georelays workflow no longer commits to main by @a1denvalu3 in https://github.com/permissionlesstech/bitchat/pull/829
- Improve geohash media gating and relay refresh by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/831
- PeerID 24/n: Nostr Transport and Embedding by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/830
- PeerID 25/n:
ReadReceiptby @qalandarov in https://github.com/permissionlesstech/bitchat/pull/832 - PeerID 26/n:
FingerprintViewby @qalandarov in https://github.com/permissionlesstech/bitchat/pull/833 - PeerID 27/n:
ContentViewandMeshPeerListby @qalandarov in https://github.com/permissionlesstech/bitchat/pull/835 - Fix camera icon in DM sheets by consolidating sheet presentations by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/834
- Fix GeoRelay prefetch isolation by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/837
- PeerID 28/n:
ChatViewModel.getShortIDForNoiseKeyby @qalandarov in https://github.com/permissionlesstech/bitchat/pull/836 - PeerID 29/n: BLEService + remove dupe funcs from #823 by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/838
- PeerID 30/n: Update some leftovers + case normalization by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/839
- PeerID 31/n: Remove String interop to be explicit by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/840
- Minor cleanup by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/842
- Extract MimeTypes into a separate file + add tests by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/843
- No fallback mime-type + remove dead code by @qalandarov in https://github.com/permissionlesstech/bitchat/pull/844
- Improve mesh media throughput by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/845
- Prevent duplicate action emote echoes by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/852
- Add type-aware REQUEST_SYNC sync rounds by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/853
- Simplify validation, compression heuristics, and notification scheduling by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/841
- Prevent mesh self-sync duplicates by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/856
- Improve background BLE stability and nearby alerts by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/864
- Extract public timeline helpers and rate limiter by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/869
- Extract public message pipeline from ChatViewModel by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/870
- Add source-based routing support by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/862
- Fix verification persistence on iOS when app backgrounds by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/822
- Remove redundant conditional compilation directive by @jithin-renji in https://github.com/permissionlesstech/bitchat/pull/863
- Add localizable strings in show commands view by @Viniciuss-Moreira in https://github.com/permissionlesstech/bitchat/pull/828
- Test Vector Support for Noise XX Handshake by @nadimkobeissi in https://github.com/permissionlesstech/bitchat/pull/885
- Correct the scheme name for macOS target. by @xingheng in https://github.com/permissionlesstech/bitchat/pull/879
- Improve error handling in NostrTransport by @Volgat in https://github.com/permissionlesstech/bitchat/pull/884
- Fix: Replace precondition() crashes with throwing errors in crypto code by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/888
- Refactor: Break circular dependency between CommandProcessor and ChatViewModel by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/889
- Extract GeohashParticipantTracker from ChatViewModel by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/890
- Extract MessageFormattingEngine from ChatViewModel by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/891
- Replace Thread.sleep with cooperative RunLoop delay by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/892
- Consolidate message deduplication into shared MessageDeduplicator by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/893
- Refactor: Simplify ChatViewModel - Phase 1 by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/894
- Add ChatViewModel testability infrastructure and unit tests by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/896
- Fix Swift 6 concurrency warnings by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/897
- Refactor ChatViewModel: extract logic to services by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/898
- Refactor ChatViewModel and fix private chat bugs by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/901
- fix(macos): Propagate environment objects to sheet presentations by @81451 in https://github.com/permissionlesstech/bitchat/pull/900
- Refactor MessageRouter to use generic Transport abstraction by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/902
- refactor: consolidate KeychainHelper into KeychainManager by @malkovitc in https://github.com/permissionlesstech/bitchat/pull/916
- fix(build): exclude allowBluetoothHFP on iOS Simulator by @malkovitc in https://github.com/permissionlesstech/bitchat/pull/918
- fix: harden hex string parsing by @malkovitc in https://github.com/permissionlesstech/bitchat/pull/919
- perf: optimize MessageDeduplicator performance by @malkovitc in https://github.com/permissionlesstech/bitchat/pull/920
- fix: clear DH shared secrets after Noise handshake operations by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/928
- fix: add thread safety to NostrTransport read receipt queue by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/929
- fix: eliminate flaky FragmentationTests with proper async synchronization by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/931
- Implement Geohash Presence (Heartbeats) by @callebtc in https://github.com/permissionlesstech/bitchat/pull/940
- feat: Source routing v2 by @callebtc in https://github.com/permissionlesstech/bitchat/pull/938
- chore: pin swift-secp256k1 to exact version 0.21.1 by @csjones in https://github.com/permissionlesstech/bitchat/pull/934
- fix BCH-01-002: prevent DoS via file storage exhaustion by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/942
- fix BCH-01-004: rate-limit subscription-triggered announces by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/943
- fix(security): reduce timestamp validation window to ±5 minutes [BCH-01-011] by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/944
- fix(security): improve keychain error handling [BCH-01-009] by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/945
- fix(security): prevent notifications from blocked users [BCH-01-012] by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/946
- fix(security): clear iOS app switcher snapshots on panic reset [BCH-01-013] by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/947
- BCH-01-010: Noise Protocol spec compliance improvements by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/948
- fix: update georelays weekly workflow by @a1denvalu3 in https://github.com/permissionlesstech/bitchat/pull/949
- Fix compiler warnings for unmutated variables in BLEService by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/950
- Fix main actor isolation error in clearAppSwitcherSnapshots by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/951
- Fix asymmetric voice/media delivery in private chats by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/952
- Remove security warning from AppInfo view by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/953
- Fix READ receipt status not updating to blue checks by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/954
- Fix topology update running before announce verification by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/955
- Update Tor to 0.4.8.21 with size optimization by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/956
- Revert Noise nonce size to 4 bytes for backward compatibility by @callebtc in https://github.com/permissionlesstech/bitchat/pull/957
- Replace C Tor with Rust Arti by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/958
- Remove dormant wake attempt on Tor foreground restart by @jackjackbits in https://github.com/permissionlesstech/bitchat/pull/959
New Contributors
- @jithin-renji made their first contribution in https://github.com/permissionlesstech/bitchat/pull/863
- @Viniciuss-Moreira made their first contribution in https://github.com/permissionlesstech/bitchat/pull/828
- @nadimkobeissi made their first contribution in https://github.com/permissionlesstech/bitchat/pull/885
- @xingheng made their first contribution in https://github.com/permissionlesstech/bitchat/pull/879
- @Volgat made their first contribution in https://github.com/permissionlesstech/bitchat/pull/884
- @81451 made their first contribution in https://github.com/permissionlesstech/bitchat/pull/900
- @malkovitc made their first contribution in https://github.com/permissionlesstech/bitchat/pull/916
Full Changelog: https://github.com/permissionlesstech/bitchat/compare/v1.4.4...v1.5.0
download
unix · zip
curl -fL -o v1.5.0.zip https://ratatoskr.space/pkg/bitchat/v1.5.0.zip
printf '%s %s\n' 'a5bc87239800de08a5bede264f1bd2a6318f2070695e8deeca26568142adf99d' 'v1.5.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/bitchat/v1.5.0.zip"
$out = "v1.5.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "a5bc87239800de08a5bede264f1bd2a6318f2070695e8deeca26568142adf99d") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.5.0.tar.gz https://ratatoskr.space/pkg/bitchat/v1.5.0.tar.gz
printf '%s %s\n' '7d8ab25ac3018a01688c21675233e141e2bfabc393ce15efb3cefb4bec5a2dd7' 'v1.5.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/bitchat/v1.5.0.tar.gz"
$out = "v1.5.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7d8ab25ac3018a01688c21675233e141e2bfabc393ce15efb3cefb4bec5a2dd7") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.5.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/bitchat/v1.5.0.zip
printf '%s %s\n' 'a5bc87239800de08a5bede264f1bd2a6318f2070695e8deeca26568142adf99d' 'v1.5.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/bitchat/v1.5.0.zip"
$out = "v1.5.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "a5bc87239800de08a5bede264f1bd2a6318f2070695e8deeca26568142adf99d") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.5.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/bitchat/v1.5.0.tar.gz
printf '%s %s\n' '7d8ab25ac3018a01688c21675233e141e2bfabc393ce15efb3cefb4bec5a2dd7' 'v1.5.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/bitchat/v1.5.0.tar.gz"
$out = "v1.5.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7d8ab25ac3018a01688c21675233e141e2bfabc393ce15efb3cefb4bec5a2dd7") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1.5.0.zip | zip | 8.6 MiB |
blake3-24 acba4c0143b2d7db94f0c14540cc8199cfee0cf3a24de219
sha256 a5bc87239800de08a5bede264f1bd2a6318f2070695e8deeca26568142adf99d
sha1 05f147cfee0a998557d18837e14585e490adb59e
|
| v1.5.0.tar.gz | tar.gz | 8.5 MiB |
blake3-24 165dfdaf8bee1f43d8496c2d07ccfb721c557db2c6b40ccd
sha256 7d8ab25ac3018a01688c21675233e141e2bfabc393ce15efb3cefb4bec5a2dd7
sha1 3359d1b84cfac0de12997b4b992fd177d422b2b0
|
install
bazel
http_archive(
name = "bitchat",
urls = ["https://ratatoskr.space/pkg/bitchat/v1.5.0.tar.gz"],
integrity = "sha256-fYqyWsMBigFojCFnUjPhQeK/q8OTzhXvs877S+xaLdc=",
strip_prefix = "bitchat-v1.5.0",
)
zig
.url = "https://ratatoskr.space/pkg/bitchat/v1.5.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
name = "bitchat",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/bitchat/v1.5.0.tar.gz"],
integrity = "sha256-fYqyWsMBigFojCFnUjPhQeK/q8OTzhXvs877S+xaLdc=",
strip_prefix = "bitchat-v1.5.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/bitchat/v1.5.0.tar.gz",