diff --git a/src/components/TopMenuSection.vue b/src/components/TopMenuSection.vue
index 69f79baad0..27be55962c 100644
--- a/src/components/TopMenuSection.vue
+++ b/src/components/TopMenuSection.vue
@@ -36,7 +36,14 @@
@@ -168,6 +175,7 @@ import { isDesktop } from '@/platform/distribution/types'
import { useConflictAcknowledgment } from '@/workbench/extensions/manager/composables/useConflictAcknowledgment'
import { useManagerState } from '@/workbench/extensions/manager/composables/useManagerState'
import { ManagerTab } from '@/workbench/extensions/manager/types/comfyManagerTypes'
+import { cn } from '@/utils/tailwindUtil'
const settingStore = useSettingStore()
const workspaceStore = useWorkspaceStore()
@@ -252,6 +260,8 @@ const shouldShowRedDot = computed((): boolean => {
return shouldShowConflictRedDot.value
})
+const { hasAnyError } = storeToRefs(executionStore)
+
// Right side panel toggle
const { isOpen: isRightSidePanelOpen } = storeToRefs(rightSidePanelStore)
const rightSidePanelTooltipConfig = computed(() =>
diff --git a/src/components/rightSidePanel/RightSidePanel.vue b/src/components/rightSidePanel/RightSidePanel.vue
index cdf6b891fd..3b36a62996 100644
--- a/src/components/rightSidePanel/RightSidePanel.vue
+++ b/src/components/rightSidePanel/RightSidePanel.vue
@@ -33,6 +33,7 @@ import {
useFlatAndCategorizeSelectedItems
} from './shared'
import SubgraphEditor from './subgraph/SubgraphEditor.vue'
+import TabErrors from './errors/TabErrors.vue'
const canvasStore = useCanvasStore()
const executionStore = useExecutionStore()
@@ -40,6 +41,8 @@ const rightSidePanelStore = useRightSidePanelStore()
const settingStore = useSettingStore()
const { t } = useI18n()
+const { hasAnyError } = storeToRefs(executionStore)
+
const { findParentGroup } = useGraphHierarchy()
const { selectedItems: directlySelectedItems } = storeToRefs(canvasStore)
@@ -102,7 +105,10 @@ const selectedNodeErrors = computed(() =>
const tabs = computed
(() => {
const list: RightSidePanelTabList = []
- if (selectedNodeErrors.value.length) {
+ if (
+ selectedNodeErrors.value.length &&
+ settingStore.get('Comfy.RightSidePanel.ShowErrorsTab')
+ ) {
list.push({
label: () => t('g.error'),
value: 'error',
@@ -110,6 +116,18 @@ const tabs = computed(() => {
})
}
+ if (
+ hasAnyError.value &&
+ !hasSelection.value &&
+ settingStore.get('Comfy.RightSidePanel.ShowErrorsTab')
+ ) {
+ list.push({
+ label: () => t('rightSidePanel.errors'),
+ value: 'errors',
+ icon: 'icon-[lucide--octagon-alert] bg-node-stroke-error ml-1'
+ })
+ }
+
list.push({
label: () =>
flattedItems.value.length > 1
@@ -298,7 +316,8 @@ function handleProxyWidgetsUpdate(value: ProxyWidgetsProperty) {