Skip to content

DT-3655 - add external payload count and size to workflow details#3276

Open
rossedfort wants to merge 7 commits intomainfrom
DT-3655-workflow-details-external-payloads
Open

DT-3655 - add external payload count and size to workflow details#3276
rossedfort wants to merge 7 commits intomainfrom
DT-3655-workflow-details-external-payloads

Conversation

@rossedfort
Copy link
Copy Markdown
Contributor

@rossedfort rossedfort commented Apr 6, 2026

Description & motivation 💭

Adds external payload count and size to workflow details page header

Screenshots (if applicable) 📸

with external payload(s)

Screenshot 2026-04-07 at 2 02 18 PM

without external payload(s) (unchanged)

Screenshot 2026-04-07 at 2 04 32 PM

Tooltip

Screenshot 2026-04-07 at 2 05 29 PM

Design Considerations 🎨

Testing 🧪

How was this tested 👻

  • Manual testing
  • E2E tests added
  • Unit tests added

Steps for others to test: 🚶🏽‍♂️🚶🏽‍♀️

Checklists

Draft Checklist

Merge Checklist

Issue(s) closed

Docs

Any docs updates needed?

@rossedfort rossedfort requested a review from a team as a code owner April 6, 2026 21:29
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment Apr 7, 2026 8:07pm

Request Review

@@ -145,6 +145,10 @@ export const toWorkflowExecution = (
const priority = response.workflowExecutionInfo?.priority;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ 'response' is possibly 'undefined'.

historySizeBytes,
externalPayloadCount,
externalPayloadSizeBytes,
searchAttributes,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Type 'IMemo | undefined' is not assignable to type 'IMemo'.

externalPayloadCount,
externalPayloadSizeBytes,
searchAttributes,
memo,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Type 'IWorkflowExecution | null | undefined' is not assignable to type 'IWorkflowExecution | undefined'.

@temporal-cicd
Copy link
Copy Markdown
Contributor

temporal-cicd bot commented Apr 6, 2026

Warnings
⚠️

📊 Strict Mode: 66 errors in 3 files (6.1% of 1086 total)

src/lib/components/detail-list/detail-list-value.svelte (1)
  • L24:12: Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
src/lib/models/workflow-execution.ts (55)
  • L49:50: Argument of type 'PendingNexusOperationState | null | undefined' is not assignable to parameter of type 'PendingNexusOperationState | undefined'.
  • L57:4: Type '{ state: temporal.api.enums.v1.CallbackState; callback?: (temporal.api.common.v1.ICallback | null); trigger?: (temporal.api.workflow.v1.CallbackInfo.ITrigger | null); ... 5 more ...; blockedReason?: (string | null); }' is not assignable to type 'Callback'.
  • L59:37: Argument of type 'CallbackState | null | undefined' is not assignable to parameter of type 'CallbackState | undefined'.
  • L90:36: Type 'undefined' is not assignable to type 'string'.
  • L96:2: Type 'undefined' is not assignable to type 'string'.
  • L103:4: 'response' is possibly 'undefined'.
  • L103:4: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L103:4: Argument of type 'WorkflowSearchAttributes | undefined' is not assignable to parameter of type 'WorkflowSearchAttributes'.
  • L105:15: 'response' is possibly 'undefined'.
  • L105:15: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L106:15: 'response' is possibly 'undefined'.
  • L106:15: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L106:15: 'response.workflowExecutionInfo.type' is possibly 'null' or 'undefined'.
  • L107:13: 'response' is possibly 'undefined'.
  • L107:13: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L107:13: 'response.workflowExecutionInfo.execution' is possibly 'null' or 'undefined'.
  • L108:16: 'response' is possibly 'undefined'.
  • L108:16: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L108:16: 'response.workflowExecutionInfo.execution' is possibly 'null' or 'undefined'.
  • L109:20: 'response' is possibly 'undefined'.
  • L109:20: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L110:18: 'response' is possibly 'undefined'.
  • L110:18: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L111:24: 'response' is possibly 'undefined'.
  • L111:24: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L113:4: 'response' is possibly 'undefined'.
  • L113:4: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L117:24: 'response' is possibly 'undefined'.
  • L117:24: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L118:27: 'response' is possibly 'undefined'.
  • L118:27: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L129:4: 'response' is possibly 'undefined'.
  • L129:4: 'response.workflowExecutionInfo' is possibly 'undefined'.
  • L131:4: 'response' is possibly 'undefined'.
  • L133:4: 'response' is possibly 'undefined'.
  • L135:4: 'response' is possibly 'undefined'.
  • L142:24: 'response' is possibly 'undefined'.
  • L143:25: 'response' is possibly 'undefined'.
  • L144:19: 'response' is possibly 'undefined'.
  • L145:31: 'response' is possibly 'undefined'.
  • L160:4: Type 'string | null | undefined' is not assignable to type 'string'.
  • L161:4: Type 'string | null | undefined' is not assignable to type 'string'.
  • L162:4: Type 'string | null | undefined' is not assignable to type 'string'.
  • L172:4: Type 'IMemo | undefined' is not assignable to type 'IMemo'.
  • L173:4: Type 'IWorkflowExecution | null | undefined' is not assignable to type 'IWorkflowExecution | undefined'.
  • L175:4: Type 'string | null | undefined' is not assignable to type 'string | undefined'.
  • L177:4: Type 'IWorkerVersionStamp | null | undefined' is not assignable to type 'MostRecentWOrkflowVersionStamp | undefined'.
  • L181:4: Type 'IPendingWorkflowTaskInfo | undefined' is not assignable to type 'IPendingWorkflowTaskInfo'.
  • L182:4: Type 'Callbacks' is not assignable to type 'Callback[]'.
  • L184:4: Type 'IPriority | null | undefined' is not assignable to type 'IPriority | undefined'.
  • L185:4: Type 'IPayload | null | undefined' is not assignable to type 'Payload | undefined'.
  • L186:4: Type 'IPayload | null | undefined' is not assignable to type 'Payload | undefined'.
  • L187:4: Type 'string | null | undefined' is not assignable to type 'string | undefined'.
  • L188:4: Type 'IWorkflowExecution | null | undefined' is not assignable to type 'IWorkflowExecution | undefined'.
  • L192:4: Type 'Duration | undefined' is not assignable to type 'Duration'.
src/lib/components/lines-and-dots/workflow-details.svelte (10)
  • L84:41: 'e.billableActions' is possibly 'undefined'.
  • L149:6: Type 'string | undefined' is not assignable to type 'string'.
  • L158:6: Type 'string | undefined' is not assignable to type 'string'.
  • L161:8: Type 'string | undefined' is not assignable to type 'string'.
  • L199:10: Type 'string | undefined' is not assignable to type 'string'.
  • L217:10: Type 'string | undefined' is not assignable to type 'string'.
  • L242:8: Type 'string | null | undefined' is not assignable to type 'string'.
  • L245:10: Type 'string | null | undefined' is not assignable to type 'string'.
  • L246:10: Type 'string | null | undefined' is not assignable to type 'string'.
  • L282:35: Argument of type 'string | undefined' is not assignable to parameter of type 'string'.

Generated by 🚫 dangerJS against a2771fb

@drewhoskins-temporal
Copy link
Copy Markdown

Screengrabs LGTM!

@acav-temporalio
Copy link
Copy Markdown

hey Ross - I had updated the styling in this detail list for the labels to be body medium secondary text to provide some visual distinction between the key and the value. This got the OK from the design team. I'd like to see that updated here.

Additionally, all numerical text (so, timestamps, time durations, size values, etc.) should be in our monotype font. Can we update that too?

Lastly, can you add in the Docs link next to the SDK label? Idk where my annotation went in figma - i swear i put it in there, but it should go to https://docs.temporal.io/develop/{sdk-type} e.g. https://docs.temporal.io/develop/go/ or https://docs.temporal.io/develop/python/. I had it with the external link icon but I think it should actually be the book icon.

Thanks!

…ils header

- add class prop to DetailListTextValue and DetailListValue to pass through font-mono
- make DetailListLabel text-secondary
- add link to SDK developer guides next to SDK logo
- replace SDK logos with our own colorblock versions
}: Props = $props();
const { copy, copied } = copyToClipboard();

const handleCopy = (e: Event) => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Argument of type 'string | undefined' is not assignable to parameter of type 'string'.

>{translate('workflows.external-payload-size')}</DetailListLabel
>
<DetailListTextValue
class="font-mono"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Argument of type 'string | undefined' is not assignable to parameter of type 'string'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants