68 lines
2.2 KiB
Markdown
68 lines
2.2 KiB
Markdown
# Task List
|
|
|
|
## In Progress
|
|
|
|
(none)
|
|
|
|
## Pending
|
|
|
|
(none)
|
|
|
|
## Completed
|
|
|
|
### Phase 4 -- Robustness
|
|
|
|
- [x] Audio device hot-swap (DeviceMonitor polling + pipeline rebuild)
|
|
- [x] Widget tests (41 tests: StatusBar breakpoints, ChannelTree navigation, volume/truncate helpers)
|
|
|
|
|
|
### Phase E -- Polish
|
|
|
|
- [x] Deduplicate `_detect_config_changes` with `dataclasses.asdict()`
|
|
- [x] Suppress PTT chatlog spam for hold-mode
|
|
- [x] Add `-> None` return annotations throughout
|
|
- [x] Cache `users`/`channels` in `MumbleClient` with dirty flag
|
|
|
|
### Phase D -- Test Coverage
|
|
|
|
- [x] Add `ReconnectManager` unit tests (8 tests)
|
|
- [x] Add `InputHistory` unit tests (11 tests)
|
|
- [x] Add `_strip_html` edge case tests (13 tests)
|
|
- [x] Add config `_load_section` / `load_config` tests (5 tests)
|
|
- [x] Refactor `test_audio.py` to use public interfaces
|
|
- [x] Add `stop()` queue drain test
|
|
|
|
### Phase C -- Architecture
|
|
|
|
- [x] Cache `_find_root()` result in `ChannelTree.set_state()`
|
|
- [x] Extract `InputHistory` class
|
|
- [x] Extract `_make_client()` factory (4 duplicate sites)
|
|
- [x] Extract `ReconnectManager` to `reconnect.py` (`threading.Event`)
|
|
|
|
### Phase A -- Safety
|
|
|
|
- [x] Replace `_strip_html` regex with `html.parser` stripper
|
|
- [x] Add defensive config loading (filter unknown TOML keys)
|
|
- [x] Guard `join_channel`/`send_text` against `KeyError`
|
|
|
|
### Phase B -- Performance
|
|
|
|
- [x] Replace `_apply_gain` struct with `array` module (numpy unavailable)
|
|
- [x] Replace `time.sleep(0.005)` polling with `queue.get(timeout=)`
|
|
- [x] Drain audio queues on `stop()`
|
|
|
|
### Earlier Work
|
|
|
|
- [x] Wire TUI to MumbleClient (connect on startup, display state)
|
|
- [x] Implement text message send/receive in chat log
|
|
- [x] Channel tree population from server data
|
|
- [x] Audio pipeline integration with MumbleClient
|
|
- [x] PTT wiring (key events -> audio.capturing toggle)
|
|
- [x] Chat input history navigation (up/down arrows)
|
|
- [x] Channel navigation and join from sidebar
|
|
- [x] User status indicators (mute/deaf)
|
|
- [x] Volume control (F2/F3, gain 0.0-2.0, status bar display)
|
|
- [x] Server certificate handling (certfile/keyfile config)
|
|
- [x] Config file hot-reload (F5, safe/restart change detection)
|
|
- [x] Reconnection handling with auto-retry and backoff
|