Skip to content

Refactor the activity log: two views, a scope-preview popup, one shared state machine - #39

Open
iTerminate wants to merge 5 commits into
release-notes-v0.1.0from
slot-popup-cleanup
Open

Refactor the activity log: two views, a scope-preview popup, one shared state machine#39
iTerminate wants to merge 5 commits into
release-notes-v0.1.0from
slot-popup-cleanup

Conversation

@iTerminate

Copy link
Copy Markdown
Owner

Summary

  • Extract LogbookController (src/hatty/controllers/logbook.py), unifying the previously-duplicated scope/paging/fetch/subscription state machine shared by HACLI's docked activity log panel and GraphPreviewScreen's.
  • Turn the maximized panel into a genuinely interactive, selectable list (LogOptionList) with an inline untruncated detail region, instead of just widening the passive ticker.
  • Replace v's blind scope cycle with LogScopePopup: a preview-then-commit popup listing every scope option with live entity/device names and cap notices.
  • Delete LogEntryPopup — its only job (showing one entry's untruncated text) is now covered by the maximized panel's detail region.

Closes #38.

Test plan

  • Full pytest suite green (1275 passed; one pre-existing, unrelated timing flake in test_media_player_control.py confirmed on isolated re-run)
  • uv run ruff check . clean
  • uv run pyright clean

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant