From c5fe32fbb1aaabe9521a535db4daa9f14e89cb1a Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:27:19 +0800 Subject: [PATCH] fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan --- .../src/pages/layout/project-avatar-state.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/app/src/pages/layout/project-avatar-state.ts b/packages/app/src/pages/layout/project-avatar-state.ts index 51a2a28021..ca105af37c 100644 --- a/packages/app/src/pages/layout/project-avatar-state.ts +++ b/packages/app/src/pages/layout/project-avatar-state.ts @@ -2,8 +2,8 @@ import { createMemo, type Accessor } from "solid-js" import { useGlobal } from "@/context/global" import { useNotification } from "@/context/notification" import { usePermission } from "@/context/permission" +import { sessionPermissionRequest, sessionQuestionRequest } from "@/pages/session/composer/session-request-tree" import { ServerConnection } from "@/context/server" -import { sessionPermissionRequest } from "@/pages/session/composer/session-request-tree" export function useSessionTabAvatarState( server: Accessor, @@ -26,15 +26,20 @@ export function useSessionTabAvatarState( return !permission.autoResponds(item, directory()) }) }) - const unread = createMemo(() => { - if (hasPermissions()) return true - if (!connection()) return false - return notification.ensureServerState(server()).session.unseenCount(sessionId()) > 0 + const hasQuestions = createMemo(() => { + const serverSync = sync() + if (!serverSync) return false + const [store] = serverSync.child(directory(), { bootstrap: false }) + return !!sessionQuestionRequest(store.session, serverSync.session.data.question, sessionId()) }) + const needsAttention = createMemo(() => hasPermissions() || hasQuestions()) + const unread = createMemo( + () => needsAttention() || notification.ensureServerState(server()).session.unseenCount(sessionId()) > 0, + ) const loading = createMemo(() => { const serverSync = sync() if (!serverSync) return false - if (hasPermissions()) return false + if (needsAttention()) return false return serverSync.session.data.session_working(sessionId()) }) return { unread, loading }