Files
tuimble/TASKLIST.md
2026-02-24 16:26:02 +01:00

64 lines
2.0 KiB
Markdown

# Task List
## In Progress
(none)
## Pending
### Phase C -- Architecture
- [ ] Extract `ReconnectManager` to `reconnect.py` (includes `threading.Event`)
- [ ] Extract `InputHistory` class
- [ ] Extract `_make_client()` factory (4 duplicate sites)
- [ ] Cache `_find_root()` result in `ChannelTree.set_state()`
### Phase D -- Test Coverage
- [ ] Add `ReconnectManager` unit tests
- [ ] Add `InputHistory` unit tests
- [ ] Add `StatusBar` breakpoint tests (Textual `App.run_test()`)
- [ ] Add `ChannelTree` keyboard navigation tests
- [ ] Add config reload state machine tests
- [ ] Refactor existing tests to use public interfaces
### Phase E -- Polish
- [ ] Deduplicate `_detect_config_changes` with `dataclasses.asdict()`
- [ ] Suppress PTT chatlog spam for hold-mode
- [ ] Add `-> None` return annotations throughout
- [ ] Cache `users`/`channels` in `MumbleClient` with dirty flag
### Backlog
- [ ] Audio device hot-swap
## Completed
### 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