feat(sessions): show a pending-question indicator on session rows

Adds a per-session pending-question badge to sidebar rows, driven by the
live directory-store question state through a dedicated per-session
subscription channel so unrelated streaming never re-renders rows.

Collapsed parent rows roll up pending questions of hidden descendants
from their owning directory stores without bootstrapping them. Question
state is cloned on session delete/archive so badges clear when sessions
disappear. Adds the questionChangeCallbacks sync performance counter,
i18n keys for all locales, and unit tests for the subscription channel
and scope selection.

Fixes #2634
This commit is contained in:
Serhii Dziupin
2026-08-05 13:41:48 +03:00
parent 34c221b07f
commit c1ba631964
20 changed files with 343 additions and 21 deletions
+2
View File
@@ -366,6 +366,8 @@ export const dict = {
'sessions.sidebar.session.status.pinned': 'Session épinglée',
'sessions.sidebar.session.status.movingToWorktree': 'Déplacement de la session vers un nouveau worktree',
'sessions.sidebar.session.status.permissionRequired': 'Autorisation requise',
'sessions.sidebar.session.status.questionPendingSingle': '1 question en attente',
'sessions.sidebar.session.status.questionPendingMany': '{count} questions en attente',
'sessions.sidebar.session.status.activeFor': 'Active depuis {duration}',
'sessions.sidebar.session.status.lastTurnDuration': 'Le dernier tour a duré {duration}',
'sessions.sidebar.session.subsessions.collapse': 'Réduire les sous-sessions',