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

2.0 KiB

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

  • Replace _strip_html regex with html.parser stripper
  • Add defensive config loading (filter unknown TOML keys)
  • Guard join_channel/send_text against KeyError

Phase B -- Performance

  • Replace _apply_gain struct with array module (numpy unavailable)
  • Replace time.sleep(0.005) polling with queue.get(timeout=)
  • Drain audio queues on stop()

Earlier Work

  • Wire TUI to MumbleClient (connect on startup, display state)
  • Implement text message send/receive in chat log
  • Channel tree population from server data
  • Audio pipeline integration with MumbleClient
  • PTT wiring (key events -> audio.capturing toggle)
  • Chat input history navigation (up/down arrows)
  • Channel navigation and join from sidebar
  • User status indicators (mute/deaf)
  • Volume control (F2/F3, gain 0.0-2.0, status bar display)
  • Server certificate handling (certfile/keyfile config)
  • Config file hot-reload (F5, safe/restart change detection)
  • Reconnection handling with auto-retry and backoff