Skip to content

Add notification log and improve toast behavior#812

Merged
SimonHeybrock merged 4 commits intomainfrom
worktree-803-notification-log
Mar 19, 2026
Merged

Add notification log and improve toast behavior#812
SimonHeybrock merged 4 commits intomainfrom
worktree-803-notification-log

Conversation

@SimonHeybrock
Copy link
Copy Markdown
Member

@SimonHeybrock SimonHeybrock commented Mar 17, 2026

Summary

Closes #803

  • Adds a notification log widget to the System Status tab showing full event history with timestamps and severity badges, so long error details are always accessible
  • Toasts become brief alerts: messages truncated to first line / 120 chars, error duration changed from persistent to 30s auto-dismiss, and max-width widened from 300px to 500px
  • Disables the notyf ripple animation that left visible curved edges at wider toast widths
  • Extracts a shared StatusColors palette from duplicated hex values across four widget files
  • Adds visibility gating to SystemStatusWidget (skip refresh when System Status tab is hidden)

Examples

Example with some fake errors and warnings, showing both the notification log width and toasts:

screenshot-2026-03-17T11:04:56

Test plan

  • All 1205 dashboard tests pass
  • Start dashboard with, trigger workflow errors, verify:
    • Toasts are brief and auto-dismiss
    • Full details appear in System Status tab notification log
    • Close button is always reachable on toasts

🤖 Generated with Claude Code

SimonHeybrock and others added 4 commits March 19, 2026 10:03
Resolves #803 — large error messages made notification popups unreachable
because Notyf hard-codes 300px max-width and error toasts were persistent.

Two-tier notification system:
- Toasts are now brief (truncated to 120 chars, first line only) and
  auto-dismiss after 30s for errors (previously persistent)
- Full notification history with timestamps and severity badges is shown
  in a scrollable log on the System Status tab

Other changes:
- Extract shared StatusColors palette from duplicated hex values across
  backend_status_widget, session_status_widget, workflow_status_widget,
  and buttons
- Add visibility gating to SystemStatusWidget (skip refresh when tab
  is hidden, matching WorkflowStatusListWidget pattern)
- Add timestamp and version counter to NotificationQueue for efficient
  change detection
- Widen toast max-width from 300px to 500px via CSS override
datetime.UTC was added in Python 3.12. Replace with
timezone.utc which is available since Python 3.2.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract heading from inline HTML into a Panel pane with proper margins,
matching the pattern used by session and backend status widgets. Remove
the redundant notification count summary. Move notifications to the
bottom of the system status tab. Disable the notyf ripple animation
that left visible curved edges at wider toast widths.
@SimonHeybrock SimonHeybrock force-pushed the worktree-803-notification-log branch from 4ed125b to 911bce1 Compare March 19, 2026 10:05
@SimonHeybrock SimonHeybrock marked this pull request as ready for review March 19, 2026 12:00
@SimonHeybrock SimonHeybrock merged commit 719be2f into main Mar 19, 2026
4 checks passed
@SimonHeybrock SimonHeybrock deleted the worktree-803-notification-log branch March 19, 2026 12:01
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.

Large error messages lead to notification popups that make the "close" button unreachable

1 participant