Janez T
1baab06627
fix: Widen worker stats graph
2026-04-04 20:20:36 +02:00
Janez T
3a28acac2d
feat: Improve live traffic packet help #0
2026-04-01 20:58:13 +02:00
Janez T
e85dccea35
feat: Add location-based DM retries
2026-03-23 15:16:59 +01:00
Janez T
ab05f13de9
fix: Remove contact trails from map #123
2026-03-22 15:48:55 +01:00
Janez T
dc297b0b9f
fix: Tighten device settings layout
2026-03-21 20:44:29 +01:00
Janez T
721fb7e7a2
feat: Add serial compass support #0
2026-03-19 21:38:54 +01:00
Janez T
8da69705ee
fix: Align contact sorting labels #0
2026-03-19 14:06:05 +01:00
Janez T
095458ece4
feat: USB serial companion support (Android)
...
- Add MeshCoreSerialService to meshcore_client (0x3C/0x3E framing)
- Add usb_serial package for Android USB OTG
- Add UsbSerialTransport wrapper for Android
- Add USB tab to connection dialog (scan, select, connect)
- Add ConnectionMode.usb + connectSerial/disconnectSerial
- Web Serial stub (not yet implemented)
- Fix message limits: DM 156→150, Channel 127→160 (firmware MAX_TEXT_LEN=160)
2026-03-17 13:46:50 +01:00
Janez T
fa2b586ab7
i18n: Add 247 missing translation keys across all 13 languages
...
Replace hardcoded English strings in 32 Dart source files with l10n
references. Covers settings labels, UI actions, map/SAR features,
device config, notifications, profiles, spectrum scan, and status
messages for sl, de, hr, pl, es, fr, it, el, ru, tr, uk, zh, pt.
2026-03-17 10:36:58 +01:00
Janez T
993563f059
fix: Prevent invalid map bounds #123
2026-03-16 22:16:36 +01:00
Janez T
420690d683
Enable profiles switch UI
2026-03-16 11:25:51 +01:00
Janez T
fedd7b9a2b
Add custom cave map mode
2026-03-16 10:50:44 +01:00
Janez T
c2e0fa952e
Fix contact add failure
2026-03-15 09:19:59 +01:00
Janez T
6de12225fc
feat: Finish discovery flow
...
ref:
2026-03-14 21:04:23 +01:00
Janez T
6e9e9e397d
Fix RX advert data parsing
2026-03-14 16:34:31 +01:00
Janez T
1e70f52069
Allow overriding contact name
2026-03-13 10:16:04 +01:00
Janez T
53daf2c9a7
Add packet filter stats and hex
2026-03-12 20:54:04 +01:00
Janez T
97addf7ba6
Hide last seen and tweak channels
2026-03-10 09:06:30 +01:00
Janez T
17d7c43745
Implement meshcore-open route reload
2026-03-08 14:26:05 +01:00
Janez T
9ff24c1fcb
Fix invalid objective_c framework
2026-03-08 09:40:10 +01:00
Janez T
1c3af4f927
Upgrade flutter packages and limit
2026-03-07 20:59:01 +01:00
Janez T
3433eae3a6
Remove unused path_provider entry
2026-03-07 20:23:09 +01:00
Janez T
6bfc08f3ae
Keep contact GPS location saved
2026-03-07 18:30:36 +01:00
Janez T
0e4f727e26
Add swarm mode transport doc
2026-03-07 14:13:54 +01:00
Janez T
2bc0e21cf0
Remove 100ms BLE command delay
2026-03-07 09:23:29 +01:00
Janez T
f6c5a3a4ca
Add transmission timing details
2026-03-07 09:05:55 +01:00
Janez T
0e1a56d765
Log contact data without revealing
2026-03-06 20:47:02 +01:00
Janez T
96feb75712
feat: save all pending work
...
ref:
2026-03-06 20:01:56 +01:00
Janez T
84a6f81c26
feat: replace SSE client with direct TCP/WiFi connection
...
- Remove SseClientService and ConnectionMode.sseClient
- Add ConnectionMode.tcp with MeshCoreTcpService (port 5000)
- NetworkScannerService: scan TCP port 5000 via raw Socket.connect
- mDNS service type changed to _meshcore._tcp
- connection_dialog: connect via connectTcp() instead of connectToSseServer()
- home_screen: show WiFi icon and label for TCP mode
- Bump meshcore_client to pick up TCP transport support
2026-03-04 19:11:16 +01:00
Janez T
4d0c45c11c
Include client repeat info
2026-03-02 09:02:20 +01:00
Janez T
474fd02635
fix: retain voice codec settings now
...
ref:
2026-03-01 11:00:30 +01:00
Janez T
f96d8022ac
feat: add Codec2 voice messages over LoRa mesh (iOS/macOS only)
...
Push-to-talk voice messaging using the Codec2 ultra-low-bitrate speech
codec, transmitted as V: prefixed packets over the existing MeshCore
LoRa mesh pipeline.
Voice recording UI (long-press send button or + menu) is gated behind
Platform.isIOS || Platform.isMacOS since the `record` package only
supports microphone capture on those platforms in this build.
Key changes:
- VoiceRecorderService: streams 8kHz mono PCM chunks via `record` package
- VoicePlayerService: decodes Codec2 bytes to WAV and plays via audioplayers
- VoiceCodecService: async Codec2 encode/decode in background isolates
- VoiceProvider: reassembles multi-packet sessions, drives playback
- VoiceMessageBubble: shows packet progress, play/stop controls
- MessagesProvider: detects V: prefix, routes to VoiceProvider
- MessagesTab: PTT long-press gesture + recording indicator (iOS/macOS)
- Message model: isVoice + voiceId fields for session tracking
- Auto-selects codec mode from radio bandwidth (700C/1200/1300 bps)
- codec2_flutter + meshcore_client switched from path to git deps
2026-02-28 19:19:46 +01:00
Janez T
c39e0e1344
refactor: extract BLE protocol stack into meshcore_client package
...
Move BLE communication layer (command queue, frame parser/builder,
protocol constants, data models) into a standalone reusable Dart package
at ../meshcore_client. App model files become thin re-export wrappers,
keeping all existing consumers working without import changes.
2026-02-28 14:09:30 +01:00
Janez T
baf49d27d8
feat: MeshCore SAR - Flutter BLE mesh radio companion app
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-28 10:11:33 +01:00