Improve desktop GUI UX and observation history workflows - #55
Conversation
- Updated the SubscriptionSettingsPane to rename the filter label to "MQTT subscription" and added a feedback label for user notifications after applying changes. - Introduced an "Expectations" button in the TopicDetailsPane for better user interaction. - Enhanced MainViewModel to manage history settings feedback and added methods for setting history recording. - Modified MainWindow to integrate a new EventHistoryWidget and improved layout with scroll areas for better usability. - Updated theme styles for tab bars and buttons to improve visual consistency. - Refined snapshot presentation messages for clarity regarding omitted values. - Expanded test coverage for event history and subscription feedback functionalities.
…er connection panel
…undant prompt fields;
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2eec348dbc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| | Audit finding | Before | After | | ||
| | --- | --- | --- | | ||
| | Ambiguous observer state and hidden navigation | [Observer baseline](images/ux-review/before-observer.jpg) | [Observer](images/ux-review/after-observer.jpg) | |
There was a problem hiding this comment.
Restore the screenshots referenced by the desktop guide
The new screenshot table and embeds point to images/ux-review/*.jpg, but a repository-wide file search finds none of those files; this commit also deletes the two observation-history PNGs still referenced by docs/OBSERVATION_HISTORY.md. Consequently, every screenshot link in this section renders broken, despite the text claiming the artifacts were preserved and verified. Restore the referenced assets or remove/update the links.
AGENTS.md reference: AGENTS.md:L62-L62
Useful? React with 👍 / 👎.
| def _show_snapshot(self) -> None: | ||
| if not self._advanced_mode: | ||
| self._inspector_stack.setCurrentWidget(self._health_inspector) | ||
| self._context_panel.setHidden(True) | ||
| return |
There was a problem hiding this comment.
Keep snapshot recovery reachable in simplified mode
When the default simplified mode is active, every attempt to open Snapshot is redirected to Health. The old observer empty-state recovery action was also removed, and the broker pane's connected-state action only disconnects, so after onboarding is completed or dismissed there is no visible way to run Reconnect & observe or inspect/reset active snapshot bounds without first discovering and enabling Advanced mode. This contradicts the simplified-mode fallback promised in docs/DESKTOP_UX.md; retain a compact snapshot/recovery route instead of unconditionally redirecting it.
Useful? React with 👍 / 👎.
| def _recording_loaded(self) -> None: | ||
| if self._view_model.history_settings_broker == self.broker.currentData(): | ||
| self._recording_loading = False | ||
| self._recording_pending = False |
There was a problem hiding this comment.
Track recording-status loads independently per broker
When the workspace History view is loading broker A while the non-modal Stored observations dialog requests History settings for broker B, the shared _history_settings_generation makes B's request invalidate A's. The discarded A request emits no completion, while this handler deliberately leaves _recording_loading set when the emitted broker differs, so the workspace remains stuck on “Loading recording status…” until the user retries. Keep request/loading state keyed by broker or explicitly complete the superseded widget request.
AGENTS.md reference: AGENTS.md:L17-L17
Useful? React with 👍 / 👎.
Summary
Testing