feat(console): show unread indicator when session task finishes - #7275
Conversation
|
Hi @lalaliat, this is your 72nd Pull Request. 🙌 Join Developer CommunityThanks so much for your contribution! We'd love to invite you to join the official QwenPaw developer group! You can find the Discord and DingTalk group links under the "Developer Community" section on our docs page: We truly appreciate your enthusiasm—and look forward to your future contributions! 😊 We'll review your PR soon. |
✅ QwenPaw AI Review: Passed AI Review — Awaiting Human Review1. Overview
2. BackgroundThis PR adds a "completion attention indicator" to the Console session list. When an agent task finishes, sessions the user isn't currently viewing show a teal dot to signal a new result. Opening the session clears the indicator. The backend persists 3. Core Changes
4. Strengths
5. Issues and SuggestionsHighNone. MediumNone. Low1.
2. Brief window where navigated session may not be in
3.
5.5 Cross-file Impact Analysis
No external call sites outside the PR are affected. The feature is fully self-contained. 6. SummaryThis is a well-engineered feature with clean separation between backend persistence, state management, and UI rendering. The callback-driven
Auto-generated by QwenPaw Review Agent | Triggered by maintainer approval |

Description
Adds a completion attention indicator for chat sessions.
When a task finishes:
The backend now records each session's latest task completion time. The Console stores the latest viewed completion time per agent and session. Existing sessions are treated as viewed during initial migration to avoid marking old history as unread.
Related Issue: #7263
Security Considerations: No security-sensitive behavior, authentication, or configuration changes.
Type of Change
Component(s) Affected
Checklist
pre-commit run --all-fileslocally and it passespytestor as relevant) and they passFor Channel Changes (DingTalk, Lark, QQ, Console, etc.)
./scripts/check-channels.sh(or./scripts/check-channels.sh --changed) and it passestests/contract/channels/test_<channel>_contract.py(REQUIRED)create_instance()with proper channel initializationtests/contract/channels/__init__.py)tests/unit/channels/test_<channel>.pyfor complex internal logicNot applicable: this change does not modify a channel implementation or channel contract.
Testing
The following scenarios are covered:
Evidence