Conversation
492bae9 to
2520cbd
Compare
rtibblesbot
left a comment
There was a problem hiding this comment.
Clean fix for the Windows notification icon color inversion (#184). Replaces legacy ShowBalloon() with wx.adv.NotificationMessage, which handles icon rendering correctly across Windows themes. CI passing.
- praise: Good defensive fallback chain and error handling throughout
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Reviewed the pull request diff checking for:
- Correctness: bugs, edge cases, undocumented behavior, resource leaks, hardcoded values
- Design: unnecessary complexity, naming, readability, comment accuracy, redundant state
- Architecture: duplicated concerns, minimal interfaces, composition over inheritance
- Testing: behavior-based assertions, mocks only at hard boundaries, accurate coverage
- Completeness: missing dependencies, unupdated usages, i18n, accessibility, security
- Principles: DRY (same reason to change), SRP, Rule of Three (no premature abstraction)
- Checked CI status and linked issue acceptance criteria
- For UI changes: inspected screenshots for layout, visual completeness, and consistency
| logging.error( | ||
| f"Failed to show notification with NotificationMessage: {notification_error}" | ||
| ) | ||
| self._show_legacy_notification(title, message, timeout) |
There was a problem hiding this comment.
praise: Well-structured fallback chain: NotificationMessage → ShowBalloon → MessageBox. Each layer catches specific exceptions and logs before falling through, so notifications degrade gracefully on older Windows versions or unexpected runtime errors.
| # Cached icon used for notifications | ||
| self._tray_icon = None | ||
| # Keep reference alive while shown | ||
| self._last_notification = None |
There was a problem hiding this comment.
praise: Good call keeping _last_notification as an instance attribute — prevents the NotificationMessage object from being garbage-collected while the notification is still visible.
Summary
Fixes #184
Testing
On Windows 11, go to Settings > Personalization > Colors.
Set "Choose your mode" to Light.
Launch the Kolibri application.
Wait for the "Kolibri is starting..." or "Kolibri Ready" notification to appear.
Observe that the colors of the Kolibri logo within the notification are no longer inverted.
Codex Task