diff --git a/application/single_app/config.py b/application/single_app/config.py index 028a6ea81..d28611fe9 100644 --- a/application/single_app/config.py +++ b/application/single_app/config.py @@ -101,7 +101,7 @@ EXECUTOR_TYPE = 'thread' EXECUTOR_MAX_WORKERS = 30 SESSION_TYPE = 'filesystem' -VERSION = "0.261.338" +VERSION = "0.261.340" IS_DEVELOPMENT = is_development_env_enabled() # Opt-out for deployments where App Service Easy Auth is active but the platform diff --git a/application/v2_ui/src/components/chat/PendingActionSlots.tsx b/application/v2_ui/src/components/chat/PendingActionSlots.tsx index 5b01d248c..e6972a81d 100644 --- a/application/v2_ui/src/components/chat/PendingActionSlots.tsx +++ b/application/v2_ui/src/components/chat/PendingActionSlots.tsx @@ -34,6 +34,7 @@ import type { ChatMessage } from '../../lib/types'; import { useChatStore } from '../../stores/chatStore'; import { usePendingActions, usePendingActionsStoreApi } from '../../stores/m365PendingActionsStore'; import { useUiStore } from '../../stores/uiStore'; +import { SESSION_REQUIRED_MESSAGE } from '../../stores/appSessionStore'; import { Notice } from '../approvals/ApprovalParts'; import { PendingActionCard } from '../approvals/PendingActionCard'; import { GlassButton, GlassPanel } from '../ui/primitives'; @@ -282,6 +283,10 @@ export function PendingActionsConversationSection({ const continuationToken = usePendingActions((state) => state.continuationToken); const loadingMore = usePendingActions((state) => state.loadingMore); const listLoading = usePendingActions((state) => state.listStatus === 'loading'); + const hasActionContext = usePendingActions((state) => + Object.keys(state.entries).length > 0 || state.referenceLoading || Boolean(state.referenceError) || + state.focusRequest?.conversationId === state.conversationId); + const contextualListError = hasActionContext && listError !== SESSION_REQUIRED_MESSAGE ? listError : ''; usePendingActionsLifecycle(activeConversationId); const { unavailable, dismissUnavailable } = usePendingActionFocus(scrollRef, pauseFollowing); @@ -290,7 +295,7 @@ export function PendingActionsConversationSection({ // under its message. const showSection = !messagesLoading && - (orphanIds.length > 0 || Boolean(listError) || Boolean(referenceError) || Boolean(continuationToken)); + (orphanIds.length > 0 || Boolean(contextualListError) || Boolean(referenceError) || Boolean(continuationToken)); if (!unavailable && !showSection) { return null; } @@ -328,7 +333,9 @@ export function PendingActionsConversationSection({

- {listError && {listError}} + {contextualListError && ( + {contextualListError} + )} {referenceError && ( {referenceError} )} diff --git a/application/v2_ui/src/components/layout/AppShell.tsx b/application/v2_ui/src/components/layout/AppShell.tsx index 4475a065e..d4421d729 100644 --- a/application/v2_ui/src/components/layout/AppShell.tsx +++ b/application/v2_ui/src/components/layout/AppShell.tsx @@ -16,6 +16,7 @@ import { WorkflowAlertLiveRegion } from '../notifications/WorkflowAlertLiveRegio import { useBootstrapStore } from '../../stores/bootstrapStore'; import { useUiStore } from '../../stores/uiStore'; import { useCollaborationStore } from '../../stores/collaborationStore'; +import { SessionNotice } from './SessionNotice'; function ClassificationBanner() { const banner = useBootstrapStore((state) => state.data?.branding?.classification_banner); @@ -69,6 +70,7 @@ export function AppShell({ children }: { children: ReactNode }) {
+
{mobile && mobileNavOpen && (