This website requires JavaScript.
be160f5edd
fix(ui,core): auto-VoiceState on connect + StatefulWidget dialogs (no PTT after join, save-bookmark crash)
EdisonJwa
2026-05-16 21:09:54 +08:00
f0016155aa
feat(ui,ios): replace audio_router with audio_session + custom VoIP-style picker
EdisonJwa
2026-05-16 20:53:00 +08:00
0c1fd1c2e3
fix(ui,ios): use TextField.onTapOutside instead of outer GestureDetector (fixes _dependents.isEmpty assert + keyboard lag)
EdisonJwa
2026-05-16 19:18:54 +08:00
6955547cec
fix(ui,ios): switch tap-outside-unfocus to HitTestBehavior.opaque (eliminate keyboard race lag)
EdisonJwa
2026-05-16 18:59:13 +08:00
1ceb47f1e3
fix(ui,ios): remove _kickFocus microtask refocus (500-1000 ms keyboard lag)
EdisonJwa
2026-05-16 18:55:00 +08:00
7c62d14dd8
feat(ui,ios): inline mode+tail into voice sheet, fix Unknown audio route, tap-outside unfocus
EdisonJwa
2026-05-16 18:44:48 +08:00
79f83604da
fix(ui,ios): apply community workaround for flutter/flutter#181474 (iOS 26 keyboard stale-focus)
EdisonJwa
2026-05-16 18:31:48 +08:00
23bd1c7930
fix(ui,ios): force TextInput.show on first tap (keyboard-up-on-first-tap)
EdisonJwa
2026-05-16 18:23:57 +08:00
b8e9c8549e
feat(ui,ios,android): audio output route picker + collapse voice controls into single modal
EdisonJwa
2026-05-16 18:18:43 +08:00
fa94b9438f
feat(ui): URL-shaped keyboard + lowercase enforcement for server host
EdisonJwa
2026-05-16 18:05:41 +08:00
4ee2b3850a
fix(ios): rename allowBluetooth -> allowBluetoothHFP (iOS 26 SDK)
EdisonJwa
2026-05-16 17:56:25 +08:00
0466000733
fix(ios): defer AVAudioSession.setActive(true) to didBecomeActive
EdisonJwa
2026-05-16 17:53:49 +08:00
020be77faf
fix(ui,ios): AppBar OVERFLOWED-BY strip + first-tap TextField via Listener
EdisonJwa
2026-05-16 17:42:05 +08:00
a93109ac37
fix(ios): rebuild chanora_bridge.framework on every Xcode build, not just pod install
EdisonJwa
2026-05-16 17:31:43 +08:00
f1f81a3d7e
fix(core,bridge,ios): voice_join survives audio-engine failure; iOS log file
EdisonJwa
2026-05-16 17:16:17 +08:00
3b08ea9d32
feat(ui,mobile): Plan E voice UI -- status chip + bottom-anchored PTT + AppBar mutes
EdisonJwa
2026-05-16 16:57:08 +08:00
7c0e5caa92
fix(ui,ios): first-tap on TextField now opens the keyboard
EdisonJwa
2026-05-16 15:50:27 +08:00
d4c04b6a72
fix(ui,audio,ios,macos): eight P0 mobile fixes
EdisonJwa
2026-05-16 15:41:08 +08:00
278df25fd7
feat(ui,ptt): on-screen touch-and-hold PTT button for iOS / iPadOS / Android
EdisonJwa
2026-05-16 15:15:38 +08:00
f5d3810f5f
feat(ios,macos): Apple privacy manifest (PrivacyInfo.xcprivacy)
EdisonJwa
2026-05-16 16:03:39 +09:00
1f729284b3
feat(flutter,ios): vendor chanora_bridge as a CocoaPods framework
EdisonJwa
2026-05-16 15:57:36 +09:00
6d094f3dbe
docs(verification,index): iPad p0 acceptance checklist + 0.9.9 index row
EdisonJwa
2026-05-16 14:41:33 +08:00
f0ddb160a0
fix(protocol,audio,ios): native-tls instead of rustls+aws-lc-rs
EdisonJwa
2026-05-16 15:32:08 +09:00
41d5a4b91b
docs(verification,index): macOS + iOS p0 acceptance checklists + 0.9.8 index row
EdisonJwa
2026-05-16 13:50:57 +08:00
f3320715ea
feat(audio,ios): AVAudioSession PlayAndRecord+voiceChat in AppDelegate
EdisonJwa
2026-05-16 13:50:43 +08:00
383b707e7c
feat(audio,macos): live CGEventTap PTT capture (SDD-085)
EdisonJwa
2026-05-16 13:50:28 +08:00
e3d7017dd9
feat(macos,ios): entitlements + permission strings + bundle-glue script
EdisonJwa
2026-05-16 14:26:13 +09:00
ade50488d9
feat(audio,macos): live IOHIDCheckAccess for Input Monitoring permission
EdisonJwa
2026-05-16 14:09:47 +09:00
4d57d189c9
feat(flutter,macos,ios): scaffold platform Xcode projects via flutter create
EdisonJwa
2026-05-16 14:07:33 +09:00
cd402f164a
docs(verification,index): linux p0 acceptance checklist + 0.9.7 index row
EdisonJwa
2026-05-16 12:15:24 +08:00
25b5bb3a6d
fix(ui): wide-mode banner placement + channel-pill overflow
EdisonJwa
2026-05-16 12:15:13 +08:00
d9c330c23b
feat(audio,linux): output via SDL2; cpal stays on Windows/macOS
EdisonJwa
2026-05-16 12:15:00 +08:00
8acd456af1
feat(protocol): per-platform TS3 client_version selection
EdisonJwa
2026-05-16 12:14:37 +08:00
73066749e3
fix(audio,linux): isolate zbus blocking probe on a fresh OS thread
EdisonJwa
2026-05-16 12:14:28 +08:00
6df5ea960e
chore: ignore opencode.json agent-local config
EdisonJwa
2026-05-16 12:14:19 +08:00
61798e5bdf
docs(verification,index): update test counts + add 0.9.6 row for rc.8 acceptance
EdisonJwa
2026-05-16 10:13:22 +08:00
01003b3448
refactor(protocol): clarify pending_moves expiry sweep
EdisonJwa
2026-05-16 10:10:03 +08:00
2511b24982
fix(audio,protocol,ui): TC-2.3 + TC-10 + TC-13 + channel tree hierarchy
EdisonJwa
2026-05-16 03:27:25 +08:00
0b6ea11077
docs(verification): windows-p0-acceptance.md — human-side rc.8 sign-off
EdisonJwa
2026-05-16 02:11:21 +08:00
881321595e
test(ptt): use capital 'Space' in set_binding_updates_descriptor_watch
EdisonJwa
2026-05-16 02:06:02 +08:00
606d594dc9
fix(audio,windows): init_tx is SyncSender not Sender (windows-only build fix)
EdisonJwa
2026-05-16 01:55:31 +08:00
181b3368d4
fix(audio,voice,log): six P0 issues from Korean Windows test
EdisonJwa
2026-05-16 01:52:47 +08:00
bb3c82e2d5
chore(version): bump to v1.0.0-rc.8 (post-rc.7 v1 audio + PTT lifecycle work)
EdisonJwa
2026-05-16 01:07:00 +08:00
45fec2310e
fix(ptt): disable missed-key-up watchdog on P0 (DEC-031, supersedes DEC-028)
EdisonJwa
2026-05-16 01:04:40 +08:00
6d4975bd6e
fix(ptt,ui): Continuous mode no longer self-disables after 30 s; rename PTT label to Mic
EdisonJwa
2026-05-16 00:57:10 +08:00
21945979a3
test(audio,ptt): comprehensive Windows P0 unit-test suite (L0-L11)
EdisonJwa
2026-05-16 00:47:10 +08:00
7596f8a9dc
fix(ui,voice): display 'Space' (not blank) in bind dialog; cut PTT poll latency
EdisonJwa
2026-05-16 00:31:57 +08:00
87cff52c0a
test(ptt): acceptance tests for press-on / release-off shape
EdisonJwa
2026-05-16 00:21:58 +08:00
82b99ebcff
feat(ui,voice): add speaker mute button to VoiceBar
EdisonJwa
2026-05-16 00:18:18 +08:00
33d80894d0
feat(ptt,audio): wire PTT key edges through ReleaseTailTimer (SDD-096)
EdisonJwa
2026-05-16 00:05:54 +08:00
64878e3a7d
fix(ui,voice): consolidate to single Voice settings entry point
EdisonJwa
2026-05-15 23:52:23 +08:00
8cd919cffc
fix(audio,storage,ui): allow PTT binding before audio is running
EdisonJwa
2026-05-15 23:45:20 +08:00
6a41a0b4db
fix(ui,voice): five Voice Bar / settings UX bugs
EdisonJwa
2026-05-15 23:34:53 +08:00
7f4874f4c0
chore(bridge): regenerate FRB bindings for log_file_path_str
EdisonJwa
2026-05-15 23:25:50 +08:00
6a077ac7a1
feat(bridge): tee tracing output to platform log file + log_file_path_str API
EdisonJwa
2026-05-15 23:18:57 +08:00
ba444d94bd
feat(audio,bridge,flutter): v1 audio + PTT lifecycle implementation (SDD-094..097)
EdisonJwa
2026-05-15 23:05:37 +08:00
dfa84ee7bb
docs(spec): baseline 0.9.5 — v1 audio + PTT lifecycle redesign
EdisonJwa
2026-05-15 22:46:51 +08:00
f9d20d8585
fix(audio,windows): adapt Raw Input + hook backends to windows-rs 0.54 API shape
EdisonJwa
2026-05-15 22:08:02 +08:00
77c2a1def4
feat(audio,windows): real Raw Input + low-level hook global PTT (SDD-083 / SDD-084)
EdisonJwa
2026-05-15 22:01:28 +08:00
8e04a1e2a6
fix(storage): file is durable DEK source; keyring is accelerator only
EdisonJwa
2026-05-15 21:25:29 +08:00
5c413ba199
fix(protocol): sort channels by TS3 linked-list order, not by numeric value
EdisonJwa
2026-05-15 20:38:51 +08:00
feceacfdad
feat(flutter): surface bound PTT key label in capability badge (SDD-091 follow-up)
EdisonJwa
2026-05-15 20:35:42 +08:00
9831624079
feat(ptt): close P0 unit-boundary gaps (SDD-088 / SDD-090 / SDD-091)
EdisonJwa
2026-05-15 17:45:03 +08:00
63f2901a6a
docs(traceability): close SRS-200 SAD/SDD coverage gap (P0 audit follow-up)
EdisonJwa
2026-05-15 17:02:26 +08:00
03f5d6bca3
fix(p0): close three P0 coverage gaps after rc.5 audit
EdisonJwa
2026-05-15 16:50:48 +08:00
82d012a46b
feat(ptt): live Linux GNOME-Wayland portal session flow (DEC-025)
EdisonJwa
2026-05-15 16:43:45 +08:00
5199e3d005
feat(ptt): full desktop backend ladder + missed-key-up watchdog (gen2 v0.9.3 follow-up)
EdisonJwa
2026-05-15 15:38:42 +08:00
7b21916049
feat(ptt): code-side initial split — transmit_active / capability badge / sanitizer
EdisonJwa
2026-05-15 15:02:03 +08:00
02ffadfa52
docs(ptt): land Baseline Candidate v0.9.3 — capability-based desktop PTT
EdisonJwa
2026-05-15 14:51:22 +08:00
b932dc1405
feat(legal): land cargo-about + cargo-deny + Flutter license inventory
EdisonJwa
2026-05-15 14:00:16 +08:00
50768a8f48
feat(mvp): v1.0.0-rc.1 — keyring-backed DEK, encrypted bookmarks, MVP release-gate docs
EdisonJwa
2026-05-15 02:24:42 +08:00
780fd7eca2
feat(beta): External Beta — passwords, channel join, mute, bookmarks, encrypted identity
EdisonJwa
2026-05-15 01:59:27 +08:00
fd181c014c
feat(audio): A.5 — surface mobile voice-preset + effects toggles in AudioEngineConfig
EdisonJwa
2026-05-15 01:28:23 +08:00
43a3c9ba76
feat(events): A.4 — emit SnapshotChanged from the watchdog probe
EdisonJwa
2026-05-15 01:27:57 +08:00
d2d9ba0a5b
feat(diagnostics): A.3 — redacted in-memory log sink + user-initiated export
EdisonJwa
2026-05-15 01:26:49 +08:00
71ecb83781
feat(storage): A.2 — persist TS3 identity across app restarts
EdisonJwa
2026-05-15 01:25:07 +08:00
f52d702e27
feat(core): A.6.1 — use OS connectivity signals to drive reconnect
EdisonJwa
2026-05-15 01:07:21 +08:00
0bef61aea2
feat(core): A.6 — supervisor reconnect with watchdog and event stream
EdisonJwa
2026-05-15 01:06:07 +08:00
bc0da50cdb
feat(protocol): A.1 — fix hostname resolution on Android and iOS
EdisonJwa
2026-05-15 00:17:13 +08:00
1324f478fe
docs(release): add iOS build instructions + shell helper
EdisonJwa
2026-05-14 23:49:58 +08:00
c81ccfd9a9
feat(android): produce v0.2.0-beta.1 Android APK with voice in/out
EdisonJwa
2026-05-14 23:40:58 +08:00
8094ec7277
docs(release): add Windows build instructions + PowerShell helper
EdisonJwa
2026-05-14 23:02:56 +08:00
9790005c3e
feat(beta): wire voice in/out end-to-end with push-to-talk (v0.2.0-beta.1)
v0.2.0-beta.1
EdisonJwa
2026-05-14 22:43:57 +08:00
53b176b722
docs(governance): record Alpha milestone in PoC results summary (v0.5.0)
EdisonJwa
2026-05-14 21:37:49 +08:00
4915ec0a1b
feat(alpha): wire connect→snapshot→disconnect end-to-end (v0.1.0-alpha.1)
v0.1.0-alpha.1
EdisonJwa
2026-05-14 21:37:06 +08:00
e0f34009d9
docs(governance): record product scaffolding paths (DEC-022)
EdisonJwa
2026-05-14 21:02:16 +08:00
974dda9601
feat(scaffold): create product workspace + Rust crates + Flutter app
EdisonJwa
2026-05-14 21:01:59 +08:00
0f418f1d7e
feat(legal): resolve DEC-020 — dual-license under Apache-2.0 OR MIT
EdisonJwa
2026-05-14 20:53:04 +08:00
a0d1c35461
docs(governance): owner confirmation on remaining 17 decisions (register v0.9.5)
EdisonJwa
2026-05-14 20:46:29 +08:00
4c64517e45
docs(governance): promote audio PoC to PASS; close mobile-Android half
EdisonJwa
2026-05-14 18:25:03 +08:00
ec21a880d2
feat(poc/audio): add Android mobile audio spike
EdisonJwa
2026-05-14 18:24:53 +08:00
eca93a141e
build(repo): gitignore Android/Gradle build artifacts
EdisonJwa
2026-05-14 18:24:33 +08:00
271d23faf7
docs(governance): record PoC outcomes, owner decisions, and audit evidence
EdisonJwa
2026-05-14 12:34:13 +08:00
181b3d329d
docs(poc): add PoC index and record PoC outcomes in CHANGELOG
EdisonJwa
2026-05-14 12:27:13 +08:00
d5b53996bc
feat(poc/audio): add audio capture/playback spike (partial — desktop only)
EdisonJwa
2026-05-14 12:27:04 +08:00
06ec6f2965
feat(poc/diagnostics): add diagnostics-redaction spike
EdisonJwa
2026-05-14 12:26:49 +08:00
52e8d43f69
feat(poc/storage): add sqlite-storage spike
EdisonJwa
2026-05-14 12:26:36 +08:00
50c95b61ad
feat(poc/storage): add secure-storage spike (Linux)
EdisonJwa
2026-05-14 12:26:23 +08:00
2bbad5feb9
feat(poc/bridge): add flutter_rust_bridge hello spike
EdisonJwa
2026-05-14 12:26:09 +08:00
02c11ead7e
feat(poc/protocol): add tsclientlib connect spike
EdisonJwa
2026-05-14 12:25:48 +08:00