Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 5 additions & 24 deletions apps/web/src/app/(onboarding)/setup/StepComputeConfig.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -170,29 +170,7 @@ export function StepComputeConfig({
deriveModalBaseImageRefDefault(workerImageValue) !== null;
const hostedWorkerImageReady =
workerImage.hostedReady || submittedHostedWorkerImageReady;
// Hosted providers need a pullable (registry-qualified) worker image, but
// only when saving would actually derive or provision from it — Modal/E2B/
// Daytona build their base image, template, or snapshot from that image
// server-side. When every required managed artifact is already satisfied,
// saving touches none of them: this is the recovery path that re-confirms
// an already-configured provider to commit it as the dispatch default, and
// it must not dead-end on (or warn about) a locked local-tag worker image
// with no Back route.
const pendingManagedInfrastructure =
selectedProvider?.fields.some(
(field) =>
isComputeInfrastructureField(field) &&
!isComputeOperatorEditableField(field) &&
field.required !== false &&
!field.runtimeSatisfied &&
!field.savedSatisfied &&
!field.defaultSatisfied,
) ?? true;
// Drives the missing-image warning, the auto-opened advanced section, and
// the Continue guard together so the form never blocks or warns on a
// worker image that saving would not use.
const missingHostedWorkerImage =
isHostedProvider && pendingManagedInfrastructure && !hostedWorkerImageReady;
const missingHostedWorkerImage = isHostedProvider && !hostedWorkerImageReady;
const canEditAdvancedWorkerImage =
isHostedProvider && !workerImage.runtimeSatisfied;
const shouldRenderAdvancedWorkerImage =
Expand All @@ -205,7 +183,10 @@ export function StepComputeConfig({
? getComputeCredentialsHint(selectedProvider.provider)
: null;

const hostedRequirementMet = !missingHostedWorkerImage;
// Hosted providers need a pullable (registry-qualified) worker image. A bare
// process-env local tag must not enable Save — Modal/E2B/Daytona derive or
// provision from that image server-side, not from form base-image fields.
const hostedRequirementMet = !isHostedProvider || hostedWorkerImageReady;

const credentialsMet = credentialFields.every(
(field) =>
Expand Down
Loading
Loading