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
@@ -531,6 +531,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.status.pinned': 'Przypięta sesja',
'sessions.sidebar.session.status.movingToWorktree': 'Przenoszenie sesji do nowego worktree',
'sessions.sidebar.session.status.permissionRequired': 'Wymagane uprawnienie',
'sessions.sidebar.session.status.questionPendingSingle': '1 oczekujące pytanie',
'sessions.sidebar.session.status.questionPendingMany': 'Liczba oczekujących pytań: {count}',
'sessions.sidebar.session.status.activeFor': 'Aktywna od {duration}',
'sessions.sidebar.session.status.lastTurnDuration': 'Ostatnia tura trwała {duration}',
'sessions.sidebar.session.subsessions.collapse': 'Zwiń pod-sesje',