Files
tuimble/TASKLIST.md
2026-02-25 09:05:06 +01:00

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