From 3f297319d857022144b4f7d6ce64f278cefdb6c2 Mon Sep 17 00:00:00 2001 From: Karthik Kalyanaraman Date: Mon, 13 Apr 2026 20:42:18 -0700 Subject: [PATCH 1/3] decryption flow for detail panel data inspector --- .../sidebar/entity-detail-panel.tsx | 185 +++++++++--------- 1 file changed, 95 insertions(+), 90 deletions(-) diff --git a/packages/web-shared/src/components/sidebar/entity-detail-panel.tsx b/packages/web-shared/src/components/sidebar/entity-detail-panel.tsx index d2defbb172..833d8b342b 100644 --- a/packages/web-shared/src/components/sidebar/entity-detail-panel.tsx +++ b/packages/web-shared/src/components/sidebar/entity-detail-panel.tsx @@ -6,6 +6,7 @@ import { Send, Zap } from 'lucide-react'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useToast } from '../../lib/toast'; import { isEncryptedMarker } from '../../lib/hydration'; +import { DecryptClickContext } from '../ui/data-inspector'; import { DecryptButton } from '../ui/decrypt-button'; import { AttributePanel } from './attribute-panel'; import { EventsList } from './events-list'; @@ -405,103 +406,107 @@ export function EntityDetailPanel({ -
- {hasPendingActions && ( -
-

+

+ {hasPendingActions && ( +
- Actions -

-
- {/* Wake up button for pending sleep calls */} - {resource === 'sleep' && canWakeUp && ( - - )} - - {/* Resolve hook button for pending hooks */} - {resource === 'hook' && canResolveHook && ( - - )} +

+ Actions +

+
+ {/* Wake up button for pending sleep calls */} + {resource === 'sleep' && canWakeUp && ( + + )} + + {/* Resolve hook button for pending hooks */} + {resource === 'hook' && canResolveHook && ( + + )} +
-
- )} + )} -
-
-

- Details -

- -
- - {resource !== 'run' && rawEvents && ( +
- + Details + +
- )} + + {resource !== 'run' && rawEvents && ( +
+ +
+ )} +
-
+ {/* Resolve Hook Modal */} Date: Mon, 13 Apr 2026 20:43:29 -0700 Subject: [PATCH 2/3] decryption flow for detail panel data inspector --- .changeset/vast-oranges-fail.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/vast-oranges-fail.md diff --git a/.changeset/vast-oranges-fail.md b/.changeset/vast-oranges-fail.md new file mode 100644 index 0000000000..5471ebeb2f --- /dev/null +++ b/.changeset/vast-oranges-fail.md @@ -0,0 +1,5 @@ +--- +"@workflow/web-shared": patch +--- + +Support in-line decryption for data inspector on the detail panel From f088de945ecff2afdc8433873ba6ab1dc21b594a Mon Sep 17 00:00:00 2001 From: Karthik Kalyanaraman Date: Mon, 13 Apr 2026 20:52:47 -0700 Subject: [PATCH 3/3] update spinner --- .../src/components/sidebar/attribute-panel.tsx | 9 ++------- .../web-shared/src/components/ui/data-inspector.tsx | 11 ++--------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/packages/web-shared/src/components/sidebar/attribute-panel.tsx b/packages/web-shared/src/components/sidebar/attribute-panel.tsx index 04ac416f9b..57ae04d2f5 100644 --- a/packages/web-shared/src/components/sidebar/attribute-panel.tsx +++ b/packages/web-shared/src/components/sidebar/attribute-panel.tsx @@ -4,6 +4,7 @@ import { parseStepName, parseWorkflowName } from '@workflow/utils/parse-name'; import type { Event, Hook, Step, WorkflowRun } from '@workflow/world'; import type { ModelMessage } from 'ai'; import { Lock } from 'lucide-react'; +import { Spinner } from '../ui/spinner'; import type { KeyboardEvent, ReactNode } from 'react'; import { useCallback, useContext, useMemo, useState } from 'react'; import { isEncryptedMarker, isExpiredMarker } from '../../lib/hydration'; @@ -197,13 +198,7 @@ function EncryptedFieldBlock() { title="Click to decrypt" > {ctx.isDecrypting ? ( - + ) : ( )} diff --git a/packages/web-shared/src/components/ui/data-inspector.tsx b/packages/web-shared/src/components/ui/data-inspector.tsx index c658fefec8..4fc236aaf1 100644 --- a/packages/web-shared/src/components/ui/data-inspector.tsx +++ b/packages/web-shared/src/components/ui/data-inspector.tsx @@ -10,6 +10,7 @@ import { Lock } from 'lucide-react'; import { createContext, useContext, useEffect, useRef, useState } from 'react'; +import { Spinner } from './spinner'; import { ObjectInspector, ObjectLabel, @@ -110,15 +111,7 @@ function EncryptedInlineLabel() { title="Click to decrypt" > {ctx.isDecrypting ? ( - + ) : (