diff --git a/memory-update.md b/memory-update.md index 9de00007..2d700c86 100644 --- a/memory-update.md +++ b/memory-update.md @@ -204,3 +204,5 @@ - Added document dirty-state UX improvements (`Edit mode [*]` marker, no-op save guard) and updated Textual interaction/parity tests for Textual 8-compatible action-driven control paths. - 2026-03-01: Visual polish pass for TUI v2 updated panel styling hierarchy (stronger status/pane contrast), refined left-panel summaries, improved help overlay readability, and added labeled headers for entry/detail and links sections. - UI copy now emphasizes current selection/filter context while keeping deterministic action affordances unchanged; full TUI-focused test slice remains green. +- 2026-03-01: Reduced TUI v2 status noise by deduplicating repeated status messages before appending to status bar/activity log. +- Verified critical coverage gate against existing full coverage artifact (`artifacts/coverage/coverage.json`): all default threshold modules pass (main/core manager/core encryption/core migrations). diff --git a/src/seedpass/tui_v2/app.py b/src/seedpass/tui_v2/app.py index 3fdd716c..c7fe823d 100644 --- a/src/seedpass/tui_v2/app.py +++ b/src/seedpass/tui_v2/app.py @@ -259,6 +259,7 @@ def launch_tui2( self._focus_pane = "center" self._doc_dirty = False self._doc_snapshot: dict[str, Any] = {} + self._last_status_message = "" try: self._service = ( entry_service_factory() if callable(entry_service_factory) else None @@ -281,6 +282,9 @@ def launch_tui2( self._load_entries() def _set_status(self, message: str) -> None: + if message == self._last_status_message: + return + self._last_status_message = message mode = ( "PALETTE" if self.palette_open