# Software Architecture Document ## Overview The current application is a single desktop client crate built around `iced` and `tsclientlib`. ## Architecture ```text User -> iced UI (`src/iced-app/src/main.rs`) -> tsclientlib sync connection/state -> optional local audio pipeline (`audio.rs`, `noise_cancel.rs`) -> TeamSpeak server ``` ## Major Components ### UI Layer - `main.rs` - Handles navigation, connection flow, channel/client/chat rendering, settings UI ### TeamSpeak Integration - `tsclientlib` - Connection setup, state mirror, channel moves, text messages, client updates, voice packet send/receive ### Audio Layer - `audio.rs` - `cpal` input/output, Opus encode, simple voice activation logic ### Noise Reduction - `noise_cancel.rs` - Supports `None`, `nnnoiseless`, and `sonora` ### Identity Import - `identity.rs` - Reads TeamSpeak `settings.db` and imports `identity_secret_key` ## Removed Architecture The following older architecture is no longer part of the product: - Tauri application shell - Custom `tscore` protocol implementation - Custom `tsaudio` audio engine - Custom `tsdb` persistence layer - Shared internal model crate used only by the removed stack