Resolve deployment compute config from routed version summaries - #3789
Merged
Conversation
deploymentHasComputeConfig read currentVersionSummary, rampingVersionSummary and a top-level computeConfig. None of those exist on the DescribeWorkerDeployment response — WorkerDeploymentInfo carries only versionSummaries and routingConfig. Those three summary fields belong to ListWorkerDeployments' WorkerDeploymentSummary, and leak onto the describe type via `WorkerDeploymentInfo extends WorkerDeploymentSummary`, so they type-check against a payload the server never sends them in. The result was hasComputeConfig always false on the deployment page, hiding "Create new version" and "Ramp to unversioned" for every deployment, including cloud serverless ones that do have scaling groups. Resolve the current and ramping summaries out of versionSummaries via routingConfig, matching on deploymentName + buildId the same way version-table-row does. The old summary fields stay in the check so list-shaped input still works, and compute config on a non-routed version is still ignored.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
| matchesVersion(summary, routingConfig.rampingDeploymentVersion), | ||
| ) | ||
| .map((summary) => | ||
| isVersionSummaryNew(summary) ? summary.computeConfig : undefined, |
Contributor
There was a problem hiding this comment.
just to double check, we actually want undefined values in the returned array? or should this check isVersionSummaryNew(summary) be part of the filter?
tegan-temporal
approved these changes
Aug 5, 2026
laurakwhit
added a commit
that referenced
this pull request
Aug 5, 2026
Auto-generated version bump from 2.53.0 to 2.53.1 Specific version: 2.53.1 Changes included: - [`e3f08379`](e3f0837) Update holocene accordion-light to runes syntax (#3714) - [`2cfa9b43`](2cfa9b4) Update holocene toggle-switch to runes syntax (#3715) (#3719) - [`e884c326`](e884c32) Update holocene textarea to runes syntax (#3724) - [`bda6e133`](bda6e13) Update holocene checkbox to runes syntax (#3725) - [`11fe6ff3`](11fe6ff) Remove unused collapsible-divider component (#3726) - [`bdc0fa77`](bdc0fa7) Update holocene skeleton table to runes syntax (#3734) - [`56a34a69`](56a34a6) Update holocene accordion to runes syntax (#3736) - [`1a0b0422`](1a0b042) Remove unused banner component (#3712) - [`11da928d`](11da928) Update holocene range-input to runes syntax (#3713) - [`d73bbde9`](d73bbde) Remove deprecated api-pagination component (#3739) - [`9cb5e28a`](9cb5e28) Update holocene number-input to runes syntax (#3735) - [`e4cec29c`](e4cec29) Update holocene tabs and tab-button to runes syntax (#3737) - [`6f6f7139`](6f6f713) Update holocene drawer-content to runes syntax (#3740) - [`4f2cef58`](4f2cef5) Update holocene tooltip to runes syntax (#3743) - [`6e01537e`](6e01537) Update holocene link to runes syntax (#3741) - [`b6775092`](b677509) Update holocene orderable-list to runes syntax (#3742) - [`447fad67`](447fad6) Update holocene pagination to runes syntax (#3738) - [`359c80ba`](359c80b) fix(schedules): tolerate duplicate schedule IDs (#3751) - [`8e81a4f0`](8e81a4f) fix(workers): use default Cloud Run runner identity (#3748) - [`3b37bbe6`](3b37bbe) Enable server-scaled deployments by default (#3672) - [`d9f9a99c`](d9f9a99) feat(workers): add release stage badges to compute provider picker (#3773) - [`7e8f2830`](7e8f283) Update holocene time-picker to runes syntax (#3754) - [`053f060a`](053f060) Update holocene drawer to runes syntax (#3755) - [`9dff9c9f`](9dff9c9) fix(workers): gate deployment actions by compute config (#3779) - [`bd9b3f60`](bd9b3f6) Update holocene copyable to runes syntax (#3756) - [`46afcfff`](46afcff) Update holocene toast to runes syntax (#3753) - [`17f64bcc`](17f64bc) Update holocene orderable-list-item to runes syntax (#3758) - [`d9ab4aa7`](d9ab4aa) Migrate event-link and event-details-link to runes syntax (#3760) - [`c09f94ac`](c09f94a) Migrate start-workflow-button and workflow-detail to runes syntax (#3761) - [`7bce9c5d`](7bce9c5) Remove dead workflow-filters component (#3762) - [`30255dba`](30255db) Sweep remaining on: directives to runes event syntax (#3771) - [`ad696bcf`](ad696bc) Migrate batch-operations header to runes syntax (#3764) - [`64f7302c`](64f7302) Migrate workflow-family-node-tree to runes syntax (#3765) - [`dc56c890`](dc56c89) Migrate start-workflow and workflow-query pages to runes syntax (#3768) - [`f989d43a`](f989d43) Migrate payload-input-with-encoding to runes syntax (#3763) - [`b19c43a0`](b19c43a) Migrate paginated-table cluster to runes syntax (#3750) - [`84414160`](8441416) Update holocene zoom-svg to runes syntax (#3757) - [`8c245928`](8c24592) Migrate holocene modal to runes syntax (#3759) - [`ef33b255`](ef33b25) Upgrade to Storybook 10 and migrate stories to defineMeta (#3772) - [`d8af57d8`](d8af57d) Enable runes mode by default (#3770) - [`1923c928`](1923c92) Use WorkflowTaskFailedCause enum (#3775) - [`b4a272ee`](b4a272e) Track pointerDown and ignore subsequent click (#3776) - [`96a06250`](96a0625) Pluralize batch operation execution type (#3784) - [`ee4652ac`](ee4652a) Resolve deployment compute config from routed version summaries (#3789) - [`7b614625`](7b61462) Standalone Activity fixes (#3788) Co-authored-by: laurakwhit <15069288+laurakwhit@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description & motivation 💭
Follow-up to #3779, which added
hasComputeConfigwrappers to hide serverless-only actions on the deployment page. The value is alwaysfalsein Cloud, so "Create new version" and "Ramp to unversioned" are hidden for every deployment, including ones that do have scaling groups.deploymentHasComputeConfigchecked three fields:None of them exist on the
DescribeWorkerDeploymentresponse.WorkerDeploymentInfo(message.proto:184-212) carries onlyname,version_summaries,create_time,routing_config,last_modifier_identity,manager_identity,routing_config_update_state.current_version_summary/ramping_version_summary/latest_version_summaryare fields onListWorkerDeployments'WorkerDeploymentSummary(request_response.proto:2333-2343). They leak onto the describe type throughWorkerDeploymentInfo extends WorkerDeploymentSummary(types/deployments.ts:84, in place since #2576), so they type-check against a payload the server never sends them in. The list page uses them correctly —deployment-table-row.svelte:81is a real list row.An actual Cloud describe response — compute config is present, just on
versionSummaries, with nocurrentVersionSummarykey anywhere:{ "workerDeploymentInfo": { "name": "test", "versionSummaries": [ { "deploymentVersion": { "buildId": "62a8974f-…", "deploymentName": "test" }, "status": "WORKER_DEPLOYMENT_VERSION_STATUS_CURRENT", "computeConfig": { "scalingGroups": { "default": { "providerType": "aws-lambda" } } } } ], "routingConfig": { "currentDeploymentVersion": { "buildId": "62a8974f-…", "deploymentName": "test" } } } }Fix
Resolve the current and ramping summaries out of
versionSummariesviaroutingConfig, matching ondeploymentName+buildIdthe same wayversion-table-row.svelte:91-97already does.lock-compute-provider.ts:48also walksversionSummaries— this brings the two helpers in line.The three old summary fields stay in the check so list-shaped input keeps working, and #3779's "ignore inactive versions" intent is preserved: compute config on a version that isn't routed to still returns
false.Testing 🧪
How was this tested 👻
The verbatim Cloud payload above is now a regression fixture. Verified it fails on the old helper (
expected false to be true) and passes on the new one, so the test is doing real work.deployment-has-compute-config.test.ts— 11 pass (4 new: real Cloud payload, routed current, routed ramping, non-routed ignored)deployment.svelte.test.ts— 4 passpnpm check— 38 errors, all pre-existingCannot find module 'storybook/test'resolution failures, none in touched filesSteps for others to test: 🚶🏽♂️🚶🏽♀️
Open a Cloud worker deployment whose current version has a compute config. "Create new version" should appear next to More Actions, and "Ramp to unversioned" should be in the menu. On a self-hosted deployment with no scaling groups, both stay hidden.
Checklists
Merge Checklist
.ui-shais currently96a06250)Follow-up (not in this PR)
WorkerDeploymentInfo extends WorkerDeploymentSummaryis what let this through — the describe type advertises three fields the endpoint never returns. Splitting them would prevent a repeat, but it ripples intolock-compute-provider.tsanddeployment-table-row.svelte, so it felt wrong to bundle with a fix.Also unverified: top-level
deployment.computeConfig(types/deployments.ts:86) isn't on either OSS message. Left in place as harmless, but I found nothing that populates it.Docs
Any docs updates needed?
No.
Blast radius 🔍
deploymentHasComputeConfighas two consumers, and both read a describe response, so both were broken:deployment.svelte:133— the deployment page. The reported bug.no-workers-polling-alert.svelte:42— also fixed as a side effect, and this one is user-visible on workflow pages.serverlessDeploymentwas alwaysfalsein Cloud, so it always fell through to the{:else}generic "no workers polling" warning. Cloud deployments with routed compute config now correctly get the serverless info alert with the "View worker deployment" link. Intended behavior for that component, but worth a look since it's outside Fix worker deployment actions for self-hosted deployments #3779's stated scope. Note it has no test file.The deployments list page is not affected. It never calls this helper —
deployment-table-row.svelte:80-82readscurrentVersionSummary?.computeConfig?.scalingGroupsdirectly off aWorkerDeploymentSummaryfromListWorkerDeployments, where that field really does exist.The change is additive-only: entries appended to the existing
.some()array, three original checks untouched and evaluated first. It can only flipfalse → true, so nothing that previously rendered can stop rendering.Full suite: 2573 pass, 13 fail — all 13 are pre-existing timezone-dependent date/time tests that fail identically on
main(verified), none deployment-related.