Commit Graph

6 Commits

Author SHA1 Message Date
Alexander edf8d5b160 feat: wire which-key popup into TUI with persistent display until resolution
Popup renders after prefix key (SPC, g) and stays visible indefinitely
until sequence completes, Escape cancels, or invalid key clears state.
No timeout — matches Doom Emacs behavior where which-key waits for user.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-10 13:28:27 +02:00
Alexander 1c1dadf5cd feat: wire evil-keys dispatcher into event loop and action handlers
Replace 3 hardcoded keys with full trie-based dispatch. Dispatcher created
in main.rs, handle_action() implements all 18 AppAction variants including
GotoFirst/GotoLast per focus pane, NextTab/PrevTab cycling, and HalfPage scroll.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-10 10:59:43 +02:00
Alexander 5bee7092d3 feat: add insta snapshot testing for TUI components
- Add insta dev-dependency for visual regression testing
- Create lib.rs to expose modules for integration tests
- Add snapshot tests for progress_bar, topbar, library, help modal
- Add unit tests for LibraryState navigation
- Move all tests to tests/ directory (proper Rust convention)
- Make build.rs skip proto compilation when protoc unavailable
- Add docs/testing-possible-solutions.md with testing strategies
2026-05-09 11:35:10 +02:00
Alexander e77e854d2e feat: add gRPC client with config-based server address and album support
- Add tonic/prost gRPC client connecting to music-agregator service
- Add config.yaml for configurable server host/port
- Add build.rs for proto compilation from music-agregator
- Update Artist/Album models to match proto with MonitorState enum
- Convert album list from GetArtists response
- Fix album click selection with correct layout offsets
- Improve monitor state icons for better visibility
2026-05-08 23:10:15 +02:00
Alexander 620bd374de refactor: replace vim keybindings with mouse navigation, remove mock data
- Remove all sample/mock data (artists, albums, tracks, queue, history, calendar)
- Delete input module (vim.rs, leader.rs) and related UI (which_key, cmdline)
- Add mouse support: click tabs, click list items, scroll wheel navigation
- Show real disk space via nix::statvfs instead of hardcoded value
- Simplify topbar/statusbar by removing mode display and key hints
- Hide album/track sections when no artist is selected
2026-05-08 22:16:38 +02:00
Alexander e68342c93a init: Rust/Ratatui TUI project scaffold with nix flake 2026-05-08 12:31:19 +02:00