docs: align review findings and verification gates

This commit is contained in:
Edison Jwa
2026-06-08 19:52:16 +09:00
parent 8606eb48c8
commit 8487acf167
12 changed files with 354 additions and 51 deletions
+16 -12
View File
@@ -8,8 +8,10 @@ This project follows a Conventional Commits style workflow.
The v0.3.0 milestone transitions Chanora from an internal-beta voice
prototype to a cross-platform baseline client with event-driven UI,
per-user audio controls, non-self client info parity, and CI-hardened
Android / iOS / macOS / Linux builds.
visible per-client audio state, non-self client info parity, and
documented host Rust workspace plus Flutter validation gates. Android
target compile/install/smoke evidence remains blocked locally pending the
required NDK compiler and an authorized ADB target.
### Added
@@ -17,10 +19,9 @@ Android / iOS / macOS / Linux builds.
deltas (client join/leave/move/update, channel add/remove/update)
flow through a typed `ProtocolDelta` enum and update the Flutter UI
in real time. Channel switching is instant.
- **Per-user volume controls.** Each client in the snapshot gets an
independent volume slider persisted in the bridge layer. Avatar
badges show muted/deafened state. Volume adjustments take effect
immediately on the audio mix.
- **Per-client audio state visibility.** Client rows surface
muted/deafened state in avatar badges. Per-user volume UI, persistence,
and mixer wiring remain tracked as follow-up work.
- **Non-self client info parity with Qint.** The Info tab now populates
connection metadata (name, description, created, last connected,
connections, transfer, ping deviation) for other clients via an
@@ -29,9 +30,10 @@ Android / iOS / macOS / Linux builds.
- **Ping deviation in client profiles.** `ping_deviation_milliseconds`
propagated from protocol DTO through bridge API to Dart, with a
conditional l10n row in the client info sheet (en + zh).
- **Apple CoreML Silero VAD** as the preferred voice activity detector
on iOS / macOS when the private `silero-coreml` SwiftPM submodule is
available. WebRTC VAD remains the runtime fallback.
- **Apple CoreML Silero VAD scaffolding/assets** for iOS / macOS when
the private `silero-coreml` SwiftPM package is available. Product
`VoiceActivity` remains reserved/disabled per DEC-030 until a later
baseline enables and verifies it.
- **TeamSpeak address resolver** (`chanora_resolver`) for DNS SRV
lookups and `ts3server://` URI handling.
- **Per-ABI Android APK splitting.** `flutter build apk
@@ -50,8 +52,9 @@ Android / iOS / macOS / Linux builds.
- **iOS / macOS audio lifecycle hardened.** Voice unit restart-in-place,
serialized lifecycle events, WebRTC VAD on iOS, unblocked connect-time
audio startup.
- **Linux native audio path promoted** with ONNX Runtime bundled for
VAD. Desktop voice I/O works on PipeWire / PulseAudio.
- **Linux native audio path promoted** with ONNX Runtime VAD assets
bundled for future `VoiceActivity` work. Desktop voice I/O works on
PipeWire / PulseAudio; product `VoiceActivity` remains disabled.
- **Android audio routing** uses `MODE_IN_COMMUNICATION`, proper
startup permission flow, and system back-button integration.
- **`SnapshotChanged` event removed.** Replaced by the typed delta
@@ -59,7 +62,8 @@ Android / iOS / macOS / Linux builds.
Flutter).
- **Prefetch crate renamed** from the PoC-era name to
`chanora_prefetch`. All docs, specs, and code updated.
- **Build number bumped to 76.**
- **Flutter app version/build bumped to `0.3.0+100`.** Rust workspace
packages remain versioned separately at `0.2.0-beta.1`.
- **Flutter bridge regenerated** for `flutter_rust_bridge` 2.12.0.
### Fixed