* Add tests for core modules. Skip TUI.

  Reason: curses-based TUI depends on real terminal behavior and input, making
  automated testing unreliable; it's normally tested manually.
