From b90e6aa14cb13e7019e85275c432ced5e5ba84c5 Mon Sep 17 00:00:00 2001 From: Maries Date: Thu, 25 Dec 2025 16:21:25 +0800 Subject: [PATCH 1/3] fix(api): move cache invalidation outside redis lock to prevent timeout (#30150) Co-authored-by: Claude Opus 4.5 --- api/services/tools/builtin_tools_manage_service.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/services/tools/builtin_tools_manage_service.py b/api/services/tools/builtin_tools_manage_service.py index cf1d39fa25..87951d53e6 100644 --- a/api/services/tools/builtin_tools_manage_service.py +++ b/api/services/tools/builtin_tools_manage_service.py @@ -286,12 +286,12 @@ class BuiltinToolManageService: session.add(db_provider) session.commit() - - # Invalidate tool providers cache - ToolProviderListCache.invalidate_cache(tenant_id) except Exception as e: session.rollback() raise ValueError(str(e)) + + # Invalidate tool providers cache + ToolProviderListCache.invalidate_cache(tenant_id, "builtin") return {"result": "success"} @staticmethod From 0f85ce3d0ec36a11e8e1240bf13215e3e8d33fd5 Mon Sep 17 00:00:00 2001 From: JeeekXY <18005585108@163.com> Date: Thu, 25 Dec 2025 16:22:42 +0800 Subject: [PATCH 2/3] fix: prioritize copying selected text (#30141) --- web/app/components/workflow/hooks/use-shortcuts.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/app/components/workflow/hooks/use-shortcuts.ts b/web/app/components/workflow/hooks/use-shortcuts.ts index 00ed25bad0..1b3d141d8d 100644 --- a/web/app/components/workflow/hooks/use-shortcuts.ts +++ b/web/app/components/workflow/hooks/use-shortcuts.ts @@ -63,6 +63,11 @@ export const useShortcuts = (): void => { return !isEventTargetInputArea(e.target as HTMLElement) }, []) + const shouldHandleCopy = useCallback(() => { + const selection = document.getSelection() + return !selection || selection.isCollapsed + }, []) + useKeyPress(['delete', 'backspace'], (e) => { if (shouldHandleShortcut(e)) { e.preventDefault() @@ -73,7 +78,7 @@ export const useShortcuts = (): void => { useKeyPress(`${getKeyboardKeyCodeBySystem('ctrl')}.c`, (e) => { const { showDebugAndPreviewPanel } = workflowStore.getState() - if (shouldHandleShortcut(e) && !showDebugAndPreviewPanel) { + if (shouldHandleShortcut(e) && shouldHandleCopy() && !showDebugAndPreviewPanel) { e.preventDefault() handleNodesCopy() } From 0c4233e7df51f146b9d007132f3aca71d36919cb Mon Sep 17 00:00:00 2001 From: Maries Date: Thu, 25 Dec 2025 16:35:26 +0800 Subject: [PATCH 3/3] fix(web): disable cache for trigger dynamic select options (#30161) Co-authored-by: Claude Opus 4.5 --- web/service/use-triggers.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/service/use-triggers.ts b/web/service/use-triggers.ts index 6036f5ab34..24717cc50b 100644 --- a/web/service/use-triggers.ts +++ b/web/service/use-triggers.ts @@ -371,6 +371,8 @@ export const useTriggerPluginDynamicOptions = (payload: { }, enabled: enabled && !!payload.plugin_id && !!payload.provider && !!payload.action && !!payload.parameter && !!payload.credential_id, retry: 0, + staleTime: 0, + gcTime: 0, }) }