Janez T
af2e969640
Update release checker to GitHub API
2026-03-05 08:05:55 +01:00
Janez T
b12567f613
Add trace button and raw packets
2026-03-05 08:02:39 +01:00
Janez T
13b91e3cc9
Add packet trace storage flow
2026-03-05 07:50:42 +01:00
Janez T
40d786eb25
Add trace button to message bubble
2026-03-05 07:45:16 +01:00
Janez T
b6aa0bcfaa
Bump iOS project version
2026-03-05 07:36:21 +01:00
Janez T
f31083694f
Fix DM private media sending
2026-03-04 19:55:53 +01:00
Janez T
1460bdb51f
fix: remove all auto-retry image fetch, user-initiated only
...
- No automatic IR1 requests; fragments arrive only when user taps load
- Bubble sends IR1 with missing indices only if partial session exists
(partial resume: only missing fragments requested, not the whole image)
- 30s timeout resets the loading spinner so user can tap retry again
- Saves LoRa airtime by never transmitting IR1 without explicit user action
2026-03-04 19:47:01 +01:00
Janez T
537d98e2d4
fix: image transfer 10s idle timeout with partial resume
...
- Replace 1.2s fixed retry with 10s idle debounce timer
- Timer resets on every received fragment (debounce)
- Timer also starts on IE1 envelope receipt (handles pull-only senders)
- IR1 always requests only missing indices (partial resume)
- Attempt counter no longer resets per fragment; bounded to 5 retries
- Max attempts raised to 5 (was 4)
2026-03-04 19:42:18 +01:00
Janez T
7ffc46438f
fix: disable voice recording on web via kIsWeb guard
2026-03-04 19:21:43 +01:00
Janez T
efab2cd057
fix: stub codec2 FFI for web build using conditional exports
2026-03-04 19:19:40 +01:00
Janez T
d6077d1588
ci: add web build and GitHub Pages deployment
2026-03-04 19:16:15 +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
c6b3b86c2f
feat: add iOS TestFlight link README
...
ref:
2026-03-04 13:30:59 +01:00
Janez T
d1e6aaafbe
feat: update README protocol media details
...
ref:
2026-03-04 13:27:25 +01:00
Janez T
3036ba620c
Add codec2 avif meshcore details
2026-03-04 13:25:54 +01:00
Janez Troha
9854dd2034
Add Chinese translation
...
Add new Chinese translation
2026-03-04 12:48:37 +01:00
MGJ
e9a08fab4d
Add new Chinese translation
2026-03-04 15:02:39 +08:00
Janez Troha
9814c95cee
Update demo video section in README
...
Updated demo video link and thumbnail in README.
2026-03-02 10:46:53 +01:00
Janez T
85ebf51bcb
Add MeshCore SAR demo link
2026-03-02 10:44:52 +01:00
Janez T
e85e290265
Update MeshCoreBleService calls
2026-03-02 10:33:49 +01:00
Janez T
a8c4bee976
Fix missing MeshCoreBleService APIs
v2026.0302.1
2026-03-02 10:09:09 +01:00
Janez T
c176bd92a9
Tweak AVIF tuning and preferences
2026-03-02 09:42:14 +01:00
Janez T
4d0c45c11c
Include client repeat info
2026-03-02 09:02:20 +01:00
Janez T
aa2a194b0b
Refresh README with GitHub style
2026-03-02 08:52:57 +01:00
Janez T
b59144e2d7
Polish README and codec2 vendor
2026-03-02 08:41:10 +01:00
Janez T
0f550fb428
Update README feature list
2026-03-02 08:38:39 +01:00
Janez T
e13143aead
Add retry for failed media packets
2026-03-02 08:04:16 +01:00
Janez T
790c205541
Add resend mechanism for media
2026-03-01 19:29:09 +01:00
Janez T
a0c4cdeede
Add voice image packet retry
2026-03-01 19:25:19 +01:00
Janez T
0e7ba5572d
Improve image zoom quality
2026-03-01 19:17:09 +01:00
Janez T
be7fe6c4b0
Fix null-aware marker usage
2026-03-01 14:04:41 +01:00
Janez T
8a91e7bf89
fix: pin codec2 ref
...
ref:
2026-03-01 13:58:26 +01:00
Janez T
b0039feeb7
Adjust timezone dependency method
2026-03-01 12:59:25 +01:00
Janez T
0dc15ef098
Update codec2_flutter ref
2026-03-01 11:22:13 +01:00
Janez T
e43b386029
Build latest Android apk
2026-03-01 11:20:14 +01:00
Janez T
98718c8476
fix: use git codec2 flutter
...
ref:
2026-03-01 11:09:39 +01:00
Janez T
cb154a86fd
fix: use git meshcore client
...
ref:
2026-03-01 11:08:29 +01:00
Janez T
9dd100fd61
fix: use local meshcore client
...
ref:
2026-03-01 11:07:19 +01:00
Janez T
474fd02635
fix: retain voice codec settings now
...
ref:
2026-03-01 11:00:30 +01:00
Janez T
daeb8aeb9c
Use env vars for iOS artifact names
2026-02-28 20:16:02 +01:00
Janez T
6a83624823
Install CMake 3.18.1 for Flutter
2026-02-28 20:06:52 +01:00
Janez T
0dd408e60d
Install CMake 3.18.1 for Flutter
2026-02-28 20:02:36 +01:00
Janez T
f7d4c024d4
fix: revert iOS AppDelegate to standard Flutter template
...
FlutterImplicitEngineDelegate and FlutterImplicitEngineBridge are not
part of the stable Flutter SDK (3.35.x). Use the standard AppDelegate
pattern with GeneratedPluginRegistrant.register(with: self) instead.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-28 19:57:41 +01:00
Janez T
1597d66439
Refactor voice support and add Greek localization
...
- Updated voice support to only include iOS, removing MacOS support.
- Added Greek (el) to the list of supported locales in LocalePreferences.
- Enhanced localization strings for Greek language.
- Modified Podfile to exclude C source files from the macOS build of codec2_flutter, as voice messages are iOS-only.
2026-02-28 19:39:20 +01:00
Janez T
f78d56ccb1
fix: update meshcore_client lockfile after history rewrite
2026-02-28 19:30:08 +01:00
Janez T
c04354e483
fix: add GStreamer deps for Linux build, update codec2_flutter to vendored source
2026-02-28 19:27:48 +01:00
Janez T
d959c5e32d
fix: update codec2_flutter lockfile to include Android namespace fix
2026-02-28 19:26:07 +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
3e5b2ac0de
fix: release signing fallback in ci
...
ref:
2026-02-28 14:40:12 +01:00
Janez T
fbe714e637
docs: add artifact download steps
...
ref:
2026-02-28 14:40:04 +01:00