UAT: TUI in-app notification system entirely absent — toast notifications, banner notifications, notification queue, and DND mode not implemented #2915

Open
opened 2026-04-05 02:47:37 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: feat/tui-notification-system
  • Commit Message: feat(tui): implement in-app notification system (toast, banner, queue, DND)
  • Milestone: v3.7.0
  • Parent Epic: #868

Background and Context

The TUI Notification System was tested against the specification during UAT. The spec (as summarized in the ca-ref-reader output and confirmed in docs/reference/tui.md and the v3.7.0 milestone description) requires a complete in-app notification system with toast notifications, banner notifications, a notification queue, and a Do Not Disturb (DND) mode. None of these components exist in the codebase.

Current Behavior

None of the specified notification system is implemented. A thorough search of the entire repository confirms:

  • No notification widget files exist anywhere in src/cleveragents/tui/
  • No toast widget (toast.py, notification.py, etc.)
  • No banner widget
  • No notification queue manager
  • No DND mode toggle or state
  • The src/cleveragents/tui/widgets/ directory contains only: actor_selection_overlay.py, help_panel_overlay.py, permission_question.py, persona_bar.py, prompt.py, reference_picker.py, slash_command_overlay.py, thought_block.py
  • No feature files exist for notification system testing (no tui_notification*.feature)
  • The app.py compose method does not include any notification widgets

Expected Behavior (from spec)

The TUI specification requires the following notification system components:

Toast Notifications

  • Transient, low-priority informational messages
  • Auto-dismiss after a configurable duration (default: 5 seconds)
  • Can be manually dismissed by clicking on them
  • Maximum of 3 toasts displayed simultaneously; additional toasts are queued

Banner Notifications

  • Persistent, high-priority alerts requiring user attention
  • Must be dismissed manually via a dedicated X button
  • Displayed at the top of the screen, below the header
  • Only one banner shown at a time; subsequent banners are queued

Notification Types

  • Four severity levels: info, warning, error, success
  • Each type has a distinct color and icon for easy identification

Notification Queue Management

  • A central queue manages all incoming notifications
  • Toast queue: max 3 visible at a time, overflow queued
  • Banner queue: max 1 visible at a time, overflow queued

Do Not Disturb (DND) Mode

  • When enabled, suppresses all toast notifications
  • Critical error banners are still displayed even in DND mode

Steps to Reproduce

  1. Review src/cleveragents/tui/widgets/ — no notification-related files exist
  2. Review src/cleveragents/tui/app.py compose() method — no notification widgets composed
  3. Search entire repo for "toast", "banner", "NotificationQueue", "DndMode" — no results

Acceptance Criteria

  • Toast notifications appear, auto-dismiss after 5 seconds (configurable), and can be clicked to dismiss
  • Banner notifications appear below the header and require manual X dismissal
  • Notification queue correctly limits visible toasts to 3 and banners to 1
  • All four notification types (info, warning, error, success) render with distinct colors and icons
  • DND mode suppresses toasts but allows critical error banners through
  • BDD tests cover all notification behaviors with ≥97% coverage
  • All CI quality gates pass

Supporting Information

  • Code Location: src/cleveragents/tui/widgets/ — notification widget files are entirely absent
  • Code Location: src/cleveragents/tui/app.pycompose() method does not include notification widgets
  • Code Location: features/ — no BDD feature files for notification system
  • Related Issue: Issue #1008 ("feat(tui): implement desktop notifications (notifypy/win10toast)") covers OS-level desktop notifications via external libraries. This is a separate concern from the in-TUI notification system (toast/banner widgets rendered within the Textual TUI itself) described in the spec. Both are missing, but this issue specifically tracks the in-TUI notification system.

Subtasks

  • Implement NotificationToast widget with auto-dismiss timer (default 5s, configurable)
  • Implement NotificationBanner widget with manual dismiss X button
  • Implement NotificationQueue manager (max 3 toasts, max 1 banner at a time)
  • Implement four notification severity types: info, warning, error, success with distinct colors and icons
  • Implement DND mode toggle that suppresses toasts but allows critical error banners
  • Integrate notification widgets into app.py compose() method
  • Add BDD feature file features/tui_notification_system.feature with ≥97% coverage
  • Ensure all quality gates pass (nox -e lint, nox -e typecheck, nox -e unit_tests, nox -e coverage_report)

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off
  • Toast notifications appear, auto-dismiss after 5 seconds, and can be clicked to dismiss
  • Banner notifications appear below the header and require manual X dismissal
  • Notification queue correctly limits visible toasts to 3 and banners to 1
  • All four notification types (info, warning, error, success) render with distinct colors and icons
  • DND mode suppresses toasts but allows critical error banners
  • BDD tests cover all notification behaviors
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `feat/tui-notification-system` - **Commit Message**: `feat(tui): implement in-app notification system (toast, banner, queue, DND)` - **Milestone**: v3.7.0 - **Parent Epic**: #868 ## Background and Context The TUI Notification System was tested against the specification during UAT. The spec (as summarized in the ca-ref-reader output and confirmed in `docs/reference/tui.md` and the v3.7.0 milestone description) requires a complete in-app notification system with toast notifications, banner notifications, a notification queue, and a Do Not Disturb (DND) mode. None of these components exist in the codebase. ## Current Behavior **None of the specified notification system is implemented.** A thorough search of the entire repository confirms: - No notification widget files exist anywhere in `src/cleveragents/tui/` - No toast widget (`toast.py`, `notification.py`, etc.) - No banner widget - No notification queue manager - No DND mode toggle or state - The `src/cleveragents/tui/widgets/` directory contains only: `actor_selection_overlay.py`, `help_panel_overlay.py`, `permission_question.py`, `persona_bar.py`, `prompt.py`, `reference_picker.py`, `slash_command_overlay.py`, `thought_block.py` - No feature files exist for notification system testing (no `tui_notification*.feature`) - The `app.py` compose method does not include any notification widgets ## Expected Behavior (from spec) The TUI specification requires the following notification system components: ### Toast Notifications - Transient, low-priority informational messages - Auto-dismiss after a configurable duration (default: 5 seconds) - Can be manually dismissed by clicking on them - Maximum of 3 toasts displayed simultaneously; additional toasts are queued ### Banner Notifications - Persistent, high-priority alerts requiring user attention - Must be dismissed manually via a dedicated `X` button - Displayed at the top of the screen, below the header - Only one banner shown at a time; subsequent banners are queued ### Notification Types - Four severity levels: `info`, `warning`, `error`, `success` - Each type has a distinct color and icon for easy identification ### Notification Queue Management - A central queue manages all incoming notifications - Toast queue: max 3 visible at a time, overflow queued - Banner queue: max 1 visible at a time, overflow queued ### Do Not Disturb (DND) Mode - When enabled, suppresses all toast notifications - Critical `error` banners are still displayed even in DND mode ## Steps to Reproduce 1. Review `src/cleveragents/tui/widgets/` — no notification-related files exist 2. Review `src/cleveragents/tui/app.py` `compose()` method — no notification widgets composed 3. Search entire repo for `"toast"`, `"banner"`, `"NotificationQueue"`, `"DndMode"` — no results ## Acceptance Criteria - Toast notifications appear, auto-dismiss after 5 seconds (configurable), and can be clicked to dismiss - Banner notifications appear below the header and require manual `X` dismissal - Notification queue correctly limits visible toasts to 3 and banners to 1 - All four notification types (`info`, `warning`, `error`, `success`) render with distinct colors and icons - DND mode suppresses toasts but allows critical `error` banners through - BDD tests cover all notification behaviors with ≥97% coverage - All CI quality gates pass ## Supporting Information - **Code Location**: `src/cleveragents/tui/widgets/` — notification widget files are entirely absent - **Code Location**: `src/cleveragents/tui/app.py` — `compose()` method does not include notification widgets - **Code Location**: `features/` — no BDD feature files for notification system - **Related Issue**: Issue #1008 ("feat(tui): implement desktop notifications (notifypy/win10toast)") covers OS-level desktop notifications via external libraries. This is a **separate concern** from the in-TUI notification system (toast/banner widgets rendered within the Textual TUI itself) described in the spec. Both are missing, but this issue specifically tracks the in-TUI notification system. ## Subtasks - [ ] Implement `NotificationToast` widget with auto-dismiss timer (default 5s, configurable) - [ ] Implement `NotificationBanner` widget with manual dismiss `X` button - [ ] Implement `NotificationQueue` manager (max 3 toasts, max 1 banner at a time) - [ ] Implement four notification severity types: `info`, `warning`, `error`, `success` with distinct colors and icons - [ ] Implement DND mode toggle that suppresses toasts but allows critical `error` banners - [ ] Integrate notification widgets into `app.py` `compose()` method - [ ] Add BDD feature file `features/tui_notification_system.feature` with ≥97% coverage - [ ] Ensure all quality gates pass (`nox -e lint`, `nox -e typecheck`, `nox -e unit_tests`, `nox -e coverage_report`) ## Definition of Done This issue is complete when: - [ ] All subtasks above are completed and checked off - [ ] Toast notifications appear, auto-dismiss after 5 seconds, and can be clicked to dismiss - [ ] Banner notifications appear below the header and require manual `X` dismissal - [ ] Notification queue correctly limits visible toasts to 3 and banners to 1 - [ ] All four notification types (`info`, `warning`, `error`, `success`) render with distinct colors and icons - [ ] DND mode suppresses toasts but allows critical `error` banners - [ ] BDD tests cover all notification behaviors - [ ] A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation - [ ] The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly - [ ] The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-05 02:47:41 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: High (confirmed)
  • MoSCoW: Should Have — TUI notification system is spec-required

Valid UAT finding verified during batch triage.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: High (confirmed) - **MoSCoW**: Should Have — TUI notification system is spec-required Valid UAT finding verified during batch triage. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
Reference
cleveragents/cleveragents-core#2915
No description provided.