-
217567383d
fix(ui): timestamps in logs, proper call debounce, no cross-calling
experimental-ui
Siavash Sameni
2026-04-14 19:16:20 +04:00
-
98ed981805
fix(ui): self-call prevention, debounce, codec in stats
Siavash Sameni
2026-04-14 19:10:31 +04:00
-
01a3133544
fix(ui): drawer buttons, stats fields, nicknames
Siavash Sameni
2026-04-14 19:00:09 +04:00
-
25471c694f
feat(ui): voice drawer replaces full-screen call UI
Siavash Sameni
2026-04-14 18:47:40 +04:00
-
a058a83c91
feat(ui): relay list management in settings
Siavash Sameni
2026-04-14 18:37:58 +04:00
-
9b8013ba7f
merge main: PresenceList direct send fix
Siavash Sameni
2026-04-14 18:36:01 +04:00
-
-
defd8eab07
fix(signal): send PresenceList directly to new client after ack
main
Siavash Sameni
2026-04-14 18:20:37 +04:00
-
cc23e829b2
feat(ui): handle PresenceList in lobby — show online users
Siavash Sameni
2026-04-14 18:13:45 +04:00
-
18c204c1ff
merge main: PresenceList signal for lobby
Siavash Sameni
2026-04-14 18:13:15 +04:00
-
-
1120c7b579
feat(signal): PresenceList broadcast for lobby user discovery
Siavash Sameni
2026-04-14 18:12:47 +04:00
-
7e7391fdbb
feat(ui): lobby-first main.ts rewrite for experimental-ui
Siavash Sameni
2026-04-14 17:52:51 +04:00
-
aa0362f318
feat(ui): lobby-first HTML/CSS layout for experimental-ui
Siavash Sameni
2026-04-14 17:43:15 +04:00
-
-
bb23976076
feat(quality): upgrade negotiation + asymmetric quality signals (#28, #29, #30)
Siavash Sameni
2026-04-14 17:25:34 +04:00
-
18e5e75f33
feat(analyzer): encrypted payload decoding in replay mode (#17)
Siavash Sameni
2026-04-14 17:07:43 +04:00
-
488efcb614
feat(ui): birthday attack toggle in settings (default off)
Siavash Sameni
2026-04-14 16:54:22 +04:00
-
8c360186df
feat(nat): wire birthday attack end-to-end into connect flow
Siavash Sameni
2026-04-14 16:50:11 +04:00
-
f06f9073ae
feat(nat): birthday attack module + HardNatBirthdayStart signal (#86, #87)
Siavash Sameni
2026-04-14 16:44:36 +04:00
-
6c49d7436f
feat(ui): direct-only mode setting (no relay fallback)
Siavash Sameni
2026-04-14 16:04:45 +04:00
-
1de280fe04
fix(nat): working NAT tickle + smart filter debug + timeout diags
Siavash Sameni
2026-04-14 15:58:13 +04:00
-
bc6d327ebb
feat(nat): smart candidate filtering + acceptor NAT tickle + 4s timeout
Siavash Sameni
2026-04-14 15:42:02 +04:00
-
c478224d67
fix(ui): remove buffer clear that wiped connect events
Siavash Sameni
2026-04-14 15:25:13 +04:00
-
16dcc75514
fix(ui): move buffer clear from call-end to call-start
Siavash Sameni
2026-04-14 15:17:16 +04:00
-
db5751985e
fix(ui): replace findLast with reverse().find() for WebView compat
Siavash Sameni
2026-04-14 15:06:07 +04:00
-
c0dd6c06ff
feat(debug): per-candidate dial diagnostics in dual-path race
Siavash Sameni
2026-04-14 12:16:34 +04:00
-
6805caae0e
fix(ui): P2P badge showing stale status from previous call
Siavash Sameni
2026-04-14 12:02:06 +04:00
-
5a03da72d3
feat(ui): selectable NAT detection mode + netcheck Tauri command
Siavash Sameni
2026-04-14 11:43:17 +04:00
-
e3e63a40a0
feat(nat): wire hard NAT port prediction into call flow (#85)
Siavash Sameni
2026-04-14 11:39:40 +04:00
-
7b4bce69d5
docs: update all docs for hard NAT detection + relay wiring
Siavash Sameni
2026-04-14 11:33:12 +04:00
-
ec1bdf3cd5
feat(nat): hard NAT port allocation detection + prediction + HardNatProbe signal (#29)
Siavash Sameni
2026-04-14 11:29:35 +04:00
-
ee14862376
docs: add PRD for hard NAT traversal (port prediction + birthday attack)
Siavash Sameni
2026-04-14 11:20:19 +04:00
-
f83361895e
docs: add PRDs for Phase 8 Tailscale-inspired features
Siavash Sameni
2026-04-14 11:08:46 +04:00
-
0857d190ed
chore: rename legacy Android build script to prevent accidental use
Siavash Sameni
2026-04-14 10:42:23 +04:00
-
5d431c0721
fix(android): restore tauri::Emitter import for Docker builder toolchain
Siavash Sameni
2026-04-14 10:34:23 +04:00
-
8fcf1be341
feat(nat): Tailscale-inspired STUN/ICE + port mapping + mid-call re-gathering (#28)
Siavash Sameni
2026-04-14 10:17:17 +04:00
-
9377a9009c
feat(quality): bandwidth probing for upward adaptive quality (#10)
Siavash Sameni
2026-04-13 16:47:21 +04:00
-
4471797edf
docs: update all PRDs and PROGRESS to current state (2026-04-13)
Siavash Sameni
2026-04-13 16:40:56 +04:00
-
425c67a08a
feat(analyzer): replay, HTML report, encrypted decode stub (#15, #16, #17)
Siavash Sameni
2026-04-13 16:31:28 +04:00
-
88ca3e099a
feat: wzp-analyzer binary — protocol analyzer with TUI (#13, #14, #15)
Siavash Sameni
2026-04-13 16:26:46 +04:00
-
1e82811cc1
feat(p2p): adaptive quality on direct calls (#23)
Siavash Sameni
2026-04-13 16:14:06 +04:00
-
81b5522942
refactor: clap CLI parser, safety docs, dead code docs, cross-refs
Siavash Sameni
2026-04-13 15:40:49 +04:00
-
d539a6dfb9
test(federation): 29 tests for federation.rs (was 0), engine dedup PRD
Siavash Sameni
2026-04-13 15:35:04 +04:00
-
ba12aae439
refactor: extract shared engine helpers, federation clone-before-send, constants
Siavash Sameni
2026-04-13 15:22:44 +04:00
-
fdb78e08bd
docs: full codebase refactoring audit with prioritized suggestions
Siavash Sameni
2026-04-13 12:35:59 +04:00
-
3a51db998a
docs: relay concurrency refactor guide + PRD update for DashMap
Siavash Sameni
2026-04-13 12:27:26 +04:00
-
a52b011fb5
feat(relay): replace global Mutex<RoomManager> with DashMap sharding
Siavash Sameni
2026-04-13 12:17:57 +04:00
-
2514151a89
docs: PRD for relay concurrency — per-room lock sharding
Siavash Sameni
2026-04-13 12:01:21 +04:00
-
f265fd772d
docs: relay concurrency model, Opus6k fix, build script fixes
Siavash Sameni
2026-04-13 11:54:37 +04:00
-
9ae9441de4
fix(audio): check capture ring available before read (fixes Opus6k choppy)
Siavash Sameni
2026-04-13 11:46:15 +04:00
-
d9e7e72978
docs: update PROGRESS, PRDs for completed tasks #9, #11, #12, #27
Siavash Sameni
2026-04-13 11:34:01 +04:00
-
8ff0c548a7
fix(audio): update frame_samples on codec profile switch, fix buf sizing
Siavash Sameni
2026-04-13 11:33:02 +04:00
-
f17420aa98
fix(build): sync keystores from persistent cache before build
Siavash Sameni
2026-04-13 11:11:28 +04:00
-
d424515542
feat: 5-tier quality classification, QualityDirective handling, debug tap stats
Siavash Sameni
2026-04-13 10:23:48 +04:00
-
ea5fc17c34
fix(relay): debug tap signal logging, dual_path test regression, PRD updates
Siavash Sameni
2026-04-13 09:54:52 +04:00
-
1a7dd935ee
fix(build): add zipalign + apksigner signing to build.sh
Siavash Sameni
2026-04-12 20:13:20 +04:00
-
a7c2261b70
fix(build): clean stale APKs before build, prefer release APK on upload
Siavash Sameni
2026-04-12 20:08:06 +04:00
-
eca0bb7531
Merge branch 'opus-DRED-v2'
Siavash Sameni
2026-04-12 19:57:35 +04:00
-
-
d249b32ee5
test+docs: add tests for QualityDirective, ParticipantQuality; update docs
opus-DRED-v2
Siavash Sameni
2026-04-12 19:56:46 +04:00
-
22045bc5e6
feat: adaptive quality in desktop, relay quality directive, Oboe state polling
Siavash Sameni
2026-04-12 19:54:04 +04:00
-
766c9df442
feat(dred): continuous DRED tuning, PMTUD, extended Opus6k window
Siavash Sameni
2026-04-12 19:38:37 +04:00
-
6f43415285
merge opus-DRED-v2 into main
Siavash Sameni
2026-04-12 17:41:57 +04:00
-
-
24cc74d93c
fix(audio): clear BT SCO communication device on call end
Siavash Sameni
2026-04-12 17:40:44 +04:00
-
300ea66d13
docs: update DESIGN, ARCHITECTURE, PRDs, PROGRESS for BT + network + build changes
Siavash Sameni
2026-04-12 17:39:59 +04:00
-
114d69e488
fix: use tracing::warn! instead of bare warn! in engine.rs
Siavash Sameni
2026-04-12 17:31:12 +04:00
-
15c237ceea
fix(audio): defer MODE_IN_COMMUNICATION to call start, restore on end
Siavash Sameni
2026-04-12 17:29:59 +04:00
-
a37c8b30fe
fix(native): add missing bt_active field to stall detector config
Siavash Sameni
2026-04-12 17:25:11 +04:00
-
137fe5f084
fix(bluetooth): BT SCO mode skips 48kHz + VoiceCommunication on capture
Siavash Sameni
2026-04-12 17:23:19 +04:00
-
5dfb5b3581
fix(bluetooth): use Shared mode for Oboe + delay restart for BT route
Siavash Sameni
2026-04-12 17:14:06 +04:00
-
fd0ccf8e99
fix(bluetooth): enable Oboe sample rate conversion for BT SCO (8/16kHz)
Siavash Sameni
2026-04-12 17:08:48 +04:00
-
2d4948a7b3
fix(bluetooth): add missing &[] arg to getAvailableCommunicationDevices JNI call
Siavash Sameni
2026-04-12 17:02:57 +04:00
-
19703ff66c
fix(bluetooth): use setCommunicationDevice API on Android 12+
Siavash Sameni
2026-04-12 17:01:33 +04:00
-
7e8dc400dc
fix(bluetooth): wait for SCO link before Oboe restart + detect A2DP devices
Siavash Sameni
2026-04-12 16:46:56 +04:00
-
a798634b3d
fix(signal): add call_id to Hangup — prevents stale hangup killing new calls
Siavash Sameni
2026-04-12 16:39:21 +04:00
-
d89376016a
fix(build): sign release APKs with project keystore (wzp-release.jks)
Siavash Sameni
2026-04-12 16:21:38 +04:00
-
678695776e
fix(build): correct APK output path — target/ is mounted from cache dir
Siavash Sameni
2026-04-12 16:10:03 +04:00
-
4c1ad841e1
feat(android): Bluetooth audio routing + network change detection + per-arch APK builds
Siavash Sameni
2026-04-12 16:07:41 +04:00
-
29cd23fe39
fix(p2p): connection cleanup — 4 fixes for stale/dead connections
Siavash Sameni
2026-04-12 15:11:50 +04:00
-
4d66d3769d
fix(relay): set peer_relay_fp on originating relay when answer arrives
Siavash Sameni
2026-04-12 14:49:34 +04:00
-
002df15c5e
fix(cli): add .. rest pattern for RegisterPresenceAck error arm
Siavash Sameni
2026-04-12 14:32:57 +04:00
-
1eb82d77b8
feat(relay+client): relay reports build version in Ack
Siavash Sameni
2026-04-12 14:27:58 +04:00
-
f843a934fe
fix(relay): forward MediaPathReport across federation
Siavash Sameni
2026-04-12 14:14:30 +04:00
-
b79073c649
Revert "fix(connect): trust direct path on peer report timeout"
Siavash Sameni
2026-04-12 14:10:44 +04:00
-
82b439595c
fix(connect): trust direct path on peer report timeout
Siavash Sameni
2026-04-12 14:07:44 +04:00
-
1904b19d05
fix(direct): validate A-role accepted connection, skip stale ones
Siavash Sameni
2026-04-12 13:50:21 +04:00
-
40955bd11c
debug(media): add connection diagnostics for direct P2P drops
Siavash Sameni
2026-04-12 13:29:58 +04:00
-
7554959baa
fix(ui): show correct P2P Direct / Via Relay badge
Siavash Sameni
2026-04-12 13:22:00 +04:00
-
0b62d3e22f
fix(cli): add missing build_version fields to Offer/Answer
Siavash Sameni
2026-04-12 13:09:26 +04:00
-
4cfcd5117f
fix(connect): install MediaPathReport oneshot BEFORE race starts
Siavash Sameni
2026-04-12 13:06:13 +04:00
-
bd6733b2e5
feat(signal): advertise build version in Offer/Answer
Siavash Sameni
2026-04-12 12:43:55 +04:00
-
7d1b8f1fdc
fix(android): add missing CallSetup pattern fields (.. rest)
Siavash Sameni
2026-04-12 12:09:44 +04:00
-
c2d298beb5
feat(net): Phase 7 — dual-socket IPv4+IPv6 ICE
Siavash Sameni
2026-04-12 11:54:13 +04:00
-
aee41a638d
fix(audio+net): revert dual-stack [::]:0, add Oboe playout stall auto-restart
Siavash Sameni
2026-04-12 11:24:16 +04:00
-
9fb92967eb
fix(net): bind all endpoints to [::]:0 for dual-stack IPv4+IPv6
Siavash Sameni
2026-04-12 11:09:06 +04:00
-
9f2ff6a6ec
fix(android-audio): Fix D+C — stop+prime cycle on every call start
Siavash Sameni
2026-04-12 10:50:58 +04:00
-
134ee3a77f
fix(engine): pass is_direct_p2p explicitly instead of deriving from is_some
Siavash Sameni
2026-04-12 10:34:21 +04:00
-
e61397ca85
fix(connect): remove pre-Phase-6 same-IP heuristic
Siavash Sameni
2026-04-12 10:23:36 +04:00
-
f5542ef822
feat(p2p): Phase 6 — ICE-style path negotiation
Siavash Sameni
2026-04-12 10:03:42 +04:00
-
de007ec2fd
fix(p2p): skip direct P2P when peers are on different public IPs
Siavash Sameni
2026-04-12 09:50:56 +04:00
-
0a973b234b
fix(engine): import tauri::Emitter for AppHandle::emit on Android target
Siavash Sameni
2026-04-12 09:29:56 +04:00
-
026940d492
fix(federation): diagnostic logging for cross-relay media routing
Siavash Sameni
2026-04-12 09:27:34 +04:00
-
0ccf4ed6b5
feat(call): media health watchdog — warn user when no audio arrives
Siavash Sameni
2026-04-12 09:18:38 +04:00