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 && (