Skip to content

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

Merged
rossedfort merged 9 commits intomainfrom
DT-3655-workflow-details-external-payloads
Apr 14, 2026
Merged

DT-3655 - add external payload count and size to workflow details#3276
rossedfort merged 9 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 14, 2026 3:35pm

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: 57 errors in 3 files (5.4% of 1062 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 (1)
  • L278:35: Argument of type 'string | undefined' is not assignable to parameter of type 'string'.

Generated by 🚫 dangerJS against 76ea90e

@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'.

Copy link
Copy Markdown
Contributor

@andrewzamojc andrewzamojc left a comment

Choose a reason for hiding this comment

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

LGTM

text={tooltipText}
top
width={tooltipWidth}
class="min-w-0 font-sans"
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.

Is the font-sans a bug fix?

Copy link
Copy Markdown
Contributor Author

@rossedfort rossedfort Apr 9, 2026

Choose a reason for hiding this comment

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

I added a class prop which gets added to the parent DetailListValue. In some cases we want values to be in monospace font, such as integer values, so I've added font-mono to those instances. This makes it so that the Tooltip doesn't display as monospace font.

>{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'.

@rossedfort rossedfort merged commit cbaf754 into main Apr 14, 2026
18 checks passed
@rossedfort rossedfort deleted the DT-3655-workflow-details-external-payloads branch April 14, 2026 16:07
temporal-cicd bot pushed a commit that referenced this pull request Apr 14, 2026
Auto-generated version bump from 2.48.2 to 2.48.3

Specific version: 2.48.3

Changes included:
- [`59c95f8b`](59c95f8) Add undo/redo support to editable CodeBlock (#3288)
- [`89269c62`](89269c6) chore: bump go.temporal.io/api to v1.62.8 and update go.sum (#3298)
- [`8e795d8a`](8e795d8) Worker insights (#3087)
- [`c58019ae`](c58019a) Use CountSchedules API (#3258)
- [`a0d20fcc`](a0d20fc) Add optional initial name to search attribute defintion (#3303)
- [`cbaf7549`](cbaf754) DT-3655 - add external payload count and size to workflow details (#3276)
- [`0fe2b33c`](0fe2b33) Remove by-type option for activity commands (#3284)
laurakwhit added a commit that referenced this pull request Apr 14, 2026
Auto-generated version bump from 2.48.2 to 2.48.3

Specific version: 2.48.3

Changes included:
- [`59c95f8b`](59c95f8) Add undo/redo support to editable CodeBlock (#3288)
- [`89269c62`](89269c6) chore: bump go.temporal.io/api to v1.62.8 and update go.sum (#3298)
- [`8e795d8a`](8e795d8) Worker insights (#3087)
- [`c58019ae`](c58019a) Use CountSchedules API (#3258)
- [`a0d20fcc`](a0d20fc) Add optional initial name to search attribute defintion (#3303)
- [`cbaf7549`](cbaf754) DT-3655 - add external payload count and size to workflow details (#3276)
- [`0fe2b33c`](0fe2b33) Remove by-type option for activity commands (#3284)

Co-authored-by: laurakwhit <15069288+laurakwhit@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants