v1.4.2: LXMF interop fix, UI redesign, radio defaults

- Fix LXMF wire format: standardize on opportunistic [src:16][sig:64][content]
- Fix LXMF signature: sign(dest||src||packed) per spec, remove message_hash
- Fix MsgPack interop: handle both str and bin types for title/content
- Radio defaults changed to Balanced preset (SF9/BW250k/CR5/TX14)
- Messages screen: sorted by most recent, preview with You:/Them:, green unread dot, timestamps
- Status bar: replace LoRa/BLE/WiFi text with signal bars (green=connected, red=offline)
- Home screen: remove Unread info (shown in Messages tab)
- Contacts screen added (Friends tab)
- Identity manager: multi-slot identity support with per-slot display names
- Message store: fix peer hash truncation, SD directory creation, .bak file leak
- Settings: check for updates, active identity display, info diagnostics
This commit is contained in:
dude.eth
2026-03-07 17:03:34 -07:00
parent 07025bfa23
commit a32182140d
33 changed files with 962 additions and 203 deletions
+8 -1
View File
@@ -67,7 +67,14 @@ void TCPClientInterface::loop() {
}
void TCPClientInterface::send_outgoing(const RNS::Bytes& data) {
if (!_online || !_client.connected()) return;
if (!_online) {
Serial.printf("[TCP] TX BLOCKED (offline) %d bytes to %s:%d\n", (int)data.size(), _host.c_str(), _port);
return;
}
if (!_client.connected()) {
Serial.printf("[TCP] TX BLOCKED (disconnected) %d bytes to %s:%d\n", (int)data.size(), _host.c_str(), _port);
return;
}
sendFrame(data.data(), data.size());
Serial.printf("[TCP] TX %d bytes to %s:%d\n", (int)data.size(), _host.c_str(), _port);