callebtc and GitHub
33b5814b7a
Sign mesh message ( #353 )
...
* sign BLE packets
* fix x
2025-08-30 12:45:36 +02:00
callebtc and GitHub
550520795f
UI geohash notifications ( #325 )
...
* location name in notifications
* remove tests
* panic nostr
* mentions with hashes, otherwise none
* fix timestamps
* parse geohashes in messages
* works
* fix country name
* mention notifications work
2025-08-28 17:47:47 +02:00
callebtc and GitHub
6fe6e049ad
Nip17 dms to extend the mesh ( #313 )
...
* favorite each other
* show favorites as system messsages
* wip show glove when offline but mayb edoesnt work
* send and receive works
* wip kinda works but no
* getting there
* kinda
* show offline peers in peer list
* kinda wonky but almost works
* fixes
* nostr user goes offline works
* nostr -> mesh works
* handoff works
* background message processing
* read works
* seen message store was missing
2025-08-25 18:38:10 +02:00
47c40fb9f3
fix nip-17 ( #305 )
...
* NIP-59 stuff
* nip-17 ios to androing works, android to ios still wip
* fix impl
* ios compat
* default relays for DMs
* delivery ack works
* delivery ack
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com >
2025-08-24 19:06:29 +02:00
callebtc and GitHub
7243d841a3
Nostr geohash ( #276 )
...
* first nostr build
* add test file
* internet access
* fix relay manager
* fix serialization
* demo service - remove later
* fix nostr
* event dedupe
* dedupe
* ui wip
* can send messages
* subscription works
* works
* favs
* works
* delete chat on change
* fix mentions
* remove autojoin channels
* styling
* adjust colors
* ui changes
* live updates working
* use local timestamp
* message history in background
* robust
* fixes
* nicknames refresh optimization
* nostr service
* refactor nostr
* style
* geohash works
* centralize colors
* refactoring
* disable DMs for now: click on peer nickname doesnt open chat list in geohash mode
* use local time
* less logging
* robustness
* scroll nickname
* adjust some text
2025-08-22 19:09:18 +02:00
callebtc and GitHub
c5a3368b9f
Sign announcements ( #267 )
...
* wip
* announcements WIP
* works
* restore mainnet
2025-08-20 13:24:52 +02:00
callebtc and GitHub
4acfafb998
fix fragmentation baby ( #266 )
2025-08-19 11:16:23 +02:00
callebtc and GitHub
9795e2ce8a
Changes bitchat protocol ( #265 )
...
* create payload
* compiles and can send messages
* identityannouncement
* DMs work, read receipt not sent yet
* works
* delete old code
* simplify
* working
* fragment wip
* compression wip
* use zlib compression
* clean
* nice
* mesh
* remove comments
2025-08-18 21:16:27 +02:00
lollerfirst and GitHub
72af724588
add sendPeriodicBroadcastAnnounce to startServices ( #243 )
2025-08-11 19:45:15 +02:00
callebtc and GitHub
67c91b0559
remove system messages for connect / disconnect ( #241 )
...
* remove system messages for connect / disconnect
* fix tests
2025-08-07 11:58:06 +03:00
callebtc and GitHub
4d0419c536
Touches ( #205 )
...
* touch
* increase TTL of announcements
* ui touches
2025-07-31 06:28:31 +02:00
callebtc and GitHub
4cb5932fd0
improve identity announcements ( #198 )
...
* improve identity announcements
* touches
* signing noise id
* panic mode delete signing key
2025-07-31 06:26:41 +02:00
callebtc and GitHub
c9aba00478
Dm header icons reactive ( #190 )
...
* header reactive to noise session
* favorite button reactive
* icon change
* nice
2025-07-25 19:50:40 +02:00
callebtc and GitHub
34b3d8dd82
Init handshake on dm ( #187 )
...
* kinda working
* establish handshake if not done yet
* add handshakerequest packet
* read receipt
2025-07-25 19:11:45 +02:00
callebtc and GitHub
565e4ab33c
Fix delivery acks and read receipts ( #186 )
...
* delivery ack and read receipt
* handle deliveryack
* fix uppercase id
* fix read receipts too
2025-07-25 17:54:12 +02:00
callebtc and GitHub
534be7e613
Refactor fingerprint manager ( #185 )
...
* centralized fingerprint manager
* centralized fingerprintmanager
* update fingerprint only if no collision
2025-07-25 15:43:19 +02:00
callebtc and GitHub
9b7009137c
Handle only packets addressed to me ( #184 )
...
* skip private packets not to us
* logs
2025-07-25 02:32:36 +02:00
callebtc and GitHub
167237f7c0
Centralized relay manager ( #182 )
...
* noise: send nonce
* broadcast manager
* add missing file
2025-07-25 01:46:27 +02:00
callebtc and GitHub
bc14b9f179
Periodidc broadcast announce ( #183 )
...
* noise: send nonce
* periodidc broadcast announce
2025-07-25 01:38:53 +02:00
callebtc and GitHub
c3c395832c
Implement Noise XX Handshake Protocol for Direct Messages ( #180 )
...
* noise
* works?
* noise
* temporary
* better
* wip: use subnet
* better
* barely working
* werk
* subnet
* fix peer ID
* 8 byte peer ID
* wip noise
* wip fixes for noise
* std lib for noise
* noise handshake one step further
* buffers
* use fork
* fix imports
* simplify counter
* remove trash
* hashing
* no prologue
* nice
* wip, use noise encryption
* peer ID hex
* simplify session manager
* heavy logging
* use singleton
* Fix Noise session race condition with elegant per-peer actor serialization
- Use Kotlin coroutine actors for per-peer packet processing
- Each peer gets dedicated actor that processes packets sequentially
- Eliminates race conditions in session management without complex locking
- Single surgical change in PacketProcessor - minimal, maintainable
- Leverages Kotlin's native concurrency primitives
* decrypt correctly
* iniator works now
* clean code and fix signature to null
* better
* no signature in private message
* small fixes
* refactor ack
* refactor but untested
* messages working
* wip ack
* wip fix ack
* more logging
* pending tracker
* keep pending connections on errors
* less logging
* refactor model
* refactor frombinarydata
* idendityannouncement refactor and update to new binary protocol
* fix keys
* refix keys
* dms work
* revert to mainnet
* do not change bluetooth adapter name
* keep code but uncomment
* clean up comments
* cleanup comments
2025-07-24 12:01:46 +02:00
callebtc
e0f727647a
chore: refactor
2025-07-14 00:24:00 +02:00
callebtc
7ecdb1426b
revert comment
2025-07-14 00:18:15 +02:00
callebtc
193918d81a
track rssi correctly
2025-07-14 00:13:45 +02:00
callebtc
f909f01fec
integrate into main
2025-07-13 23:23:15 +02:00
callebtc
f9a639af2d
Merge branch 'main' into fix/android-ios-fragmentation-compatibility
2025-07-13 23:18:00 +02:00
callebtc
0e2614d3eb
fix build
2025-07-13 22:52:50 +02:00
callebtc
362f9b0ff2
log
2025-07-13 22:39:41 +02:00
callebtc
f40283694d
logs
2025-07-13 22:35:18 +02:00
callebtc
cac3b9ec6c
better logging of device id
2025-07-13 22:18:31 +02:00
callebtc
725dc01352
fix null delegate
2025-07-13 22:06:43 +02:00
callebtc
f7c68d2ff2
fix
2025-07-13 21:38:39 +02:00
callebtc
a68e14133b
wip refactor
2025-07-13 21:34:31 +02:00
callebtc and GitHub
d25d3bf991
Merge branch 'main' into fix/android-ios-fragmentation-compatibility
2025-07-13 21:25:11 +02:00
callebtc
930081bba0
add location services check
2025-07-13 20:27:43 +02:00
callebtc
887ca0119e
Merge branch 'main' into adjust-scan-intervals
2025-07-13 19:43:58 +02:00
callebtc
2cf6bf19b1
Merge branch 'main' into routingOpt
2025-07-13 17:20:49 +02:00
callebtc
2a0f84b53b
adjust scan intervals and reduce logging
2025-07-13 17:16:31 +02:00
callebtc
d54d470614
more logging
2025-07-12 16:36:00 +02:00
callebtc
035273011f
fix startup
2025-07-12 15:42:37 +02:00
GUVWAF
1b37f46d1e
Fallback to broadcast if direct send fails
2025-07-12 13:18:09 +02:00
GUVWAF
d1085fde0b
Cheap routing optimizations
...
- Don't relay back to sender or relayer
- Only send to connected device if recipientID matches one
- Don't relay our own ACK/read receipt
2025-07-12 13:18:09 +02:00
callebtc
e58cf4fd0d
fix null pointer
2025-07-12 12:53:01 +02:00
ShilohEye
33d273f268
Fix Android fragmentation for iOS/Rust compatibility
...
- Changed MAX_FRAGMENT_SIZE from 500 to 150 bytes to match iOS/Rust
- Fixed fragment ID generation to use 8 random bytes instead of string
- Implemented automatic fragmentation in BluetoothConnectionManager
- Added 20ms delay between fragments to match iOS/Rust implementation
- Updated fragment calculation to account for full packet overhead (34 bytes)
This ensures Android-generated fragments fit within iOS's default 185-byte BLE MTU,
fixing issues with commands like ?ls -la and ?ifconfig failing on iOS devices.
2025-07-10 19:25:52 -04:00
callebtc
b6f281275a
fixed
2025-07-09 21:51:04 +02:00
callebtc
3c0d145406
variable mtu clientside fix
2025-07-09 21:39:12 +02:00
callebtc
90750c2635
disable server, but client works
2025-07-09 21:10:20 +02:00
callebtc
250772a693
silent
2025-07-09 19:49:21 +02:00
callebtc
1d7defcbae
rate limiting
2025-07-09 18:29:49 +02:00
callebtc
dd8aa083b9
power saving
2025-07-09 15:47:54 +02:00
callebtc
d3e258b442
precvent duplicate connections
2025-07-09 15:34:20 +02:00