Skip to content

feat(deployment): bring container-vm ssh deployments to the configure page - #3443

Merged
baktun14 merged 3 commits into
mainfrom
feat/deployment-vm-ssh-on-configure
Jul 17, 2026
Merged

feat(deployment): bring container-vm ssh deployments to the configure page#3443
baktun14 merged 3 commits into
mainfrom
feat/deployment-vm-ssh-on-configure

Conversation

@baktun14

@baktun14 baktun14 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Why

Closes CON-675

When the legacy SDL Builder flow is retired (CON-672), "Launch Container-VM" must survive. Today an SSH-accessible plain-linux VM can only be launched through the legacy /deploy-linux builder; the new Configure page cannot represent it. This PR makes the Container-VM experience first-class on Configure, gated on the existing onboarding_redesign_v1 flag. With the flag off, the classic /deploy-linux builder is untouched.

What

Screen.Recording.2026-07-16.at.12.36.24.PM.mov

Entry and routing (flag-gated):

  • New vm=true intent param on /new-deployment/configure. It survives every URL rewrite (draft-id write-back, dseq mirroring, cancel-and-edit, bid-strategy switches) via buildConfigureUrl, and a templateId carried alongside it is ignored (the intent parser drops it and the screen resolves templates from the parsed intent).
  • The TemplateList "Launch Container-VM" card and direct /deploy-linux visits route to /new-deployment/configure?vm=true when the flag is on (useNewDeploymentUrl + new RedirectDeployLinuxToConfigure). Analytics event is unchanged.

Seeding and form behavior:

  • A fresh vm=true entry seeds a service with the real Ubuntu 24.04 image ref, a managed port 22/tcp/global expose, count: 1, and hasSSHKey: true (key required before quotes). The legacy flow injected all this at SDL-generation time via transformCustomSdlFields; Configure generates SDL straight from form state, so it lives in the state itself.
  • Per-service VM behavior keys off image detection (isVmImage), not the URL param, so draft resume and imported VM SDLs restore VM mode for free: the Docker card becomes an "Operating System" card with a Distribution select over the 4 managed distros (private registry hidden, credentials cleared), replicas pin to 1, "Expose SSH" is forced on while any VM service exists, and the Commands card is hidden (overriding the entrypoint would break the SSH bootstrap).
  • The Runtime card opens expanded for a VM service so the required key field is visible on entry, and its header is marked after a submit rejected on its hidden fields (same treatment as Expose Ports). The schema also requires an SSH key on any VM service even if the deployment-wide flag is somehow off, so an unreachable VM cannot be submitted.
  • The exact 22-to-22 expose row renders read-only ("Reserved for SSH access") and non-removable; the schema rejects any other row touching port 22 on a VM service, mirroring the legacy reservation. Carried-in SDLs are taken literally: no expose backfill.
  • SSH_VM_IMAGES moved to a dependency-free utils/sdl/vmImages.ts so the form schema can consume it without an import cycle; utils/sdl/data.ts re-exports for existing consumers.

Known accepted tradeoffs (by design, from CON-675 planning): pasting a VM image ref into a normal service flips it into VM mode with no UI path back except deleting the service; a carried-in VM SDL that already has a command keeps emitting it (just not editable); credentials on a carried-in VM service clear when that service is first selected.

Out of scope (per CON-675 planning): a Playwright VM e2e ships as a follow-up under the E2E initiative.

Verification: full deploy-web unit suite (2672 passed), lint --quiet, tsc --noEmit (0 new errors), plus a manifest smoke check confirming the seeded VM deployment produces a chain-valid manifest and round-trips through SDL import. The manual flag-on pass from the plan (deploy end-to-end, SSH instructions on the Lease tab) still needs a run in a flag-enabled environment.

Summary by CodeRabbit

  • New Features
    • Added support for managed SSH virtual-machine deployments in the redesigned flow, including VM image distribution selection.
    • VM services now run as a single instance and automatically enable SSH.
    • Commands are hidden for VM services, while a managed “Reserved for SSH access” Port 22 row is shown and protected from edits/removal.
    • Feature-flagged redirect sends classic Linux entry into the VM-capable configure flow.
  • Bug Fixes
    • Improved VM-specific configuration initialization, credential clearing, and deterministic SDL seeding for VM entries.
  • Tests
    • Expanded VM coverage across deployment configuration, runtime, ports, image selection, and validation.

… page

Gated on onboarding_redesign_v1, the vm=true intent seeds an SSH-ready VM
service (real distro image, managed port-22 tcp expose, single instance,
forced SSH key) on the configure page. Per-service card behavior keys off
image detection so drafts and imported VM SDLs restore VM mode for free.
/deploy-linux and the Launch Container-VM card route to the new flow while
the flag is on; the classic builder is untouched with the flag off.
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Container-VM deployment support is added across intent parsing, URL routing, SDL initialization and validation, VM image selection, SSH and port controls, and the Linux deployment entry point. Tests cover VM-specific state, rendering, routing, and reserved SSH port behavior.

Changes

Container VM deployment flow

Layer / File(s) Summary
VM image catalog and SDL validation
apps/deploy-web/src/utils/sdl/*, apps/deploy-web/src/types/sdlBuilder/*
Adds managed VM image mappings, VM service defaults, SSH port exposure defaults, and validation preventing additional port-22 mappings for VM services.
VM intent and form initialization
apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/*, .../ConfigureDeploymentForm/*, .../useDeploymentFlow/deploymentIntent.*
Adds vm intent parsing and VM-aware SDL fallback, default service seeding, SSH state backfilling, and persisted-state handling.
VM intent URL propagation
apps/deploy-web/src/utils/urlUtils.ts, apps/deploy-web/src/components/deployments/ConfigureDeployment/useDeploymentFlow/*
Preserves vm=true while building configure URLs and updates related flow intent fixtures and assertions.
VM configuration controls
apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/*
Adds VM distribution selection, clears registry credentials, forces VM replica and SSH behavior, reserves port 22, and hides VM-inapplicable commands.
Linux builder redirect
apps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/*, apps/deploy-web/src/hooks/useNewDeploymentUrl/*, apps/deploy-web/src/pages/deploy-linux/index.tsx
Redirects Linux deployment entries to the VM configure route when the redesign flag is enabled and retains the classic builder otherwise.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested labels: size: XL, experienced-contributor

Suggested reviewers: ygrishajev

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/deployment-vm-ssh-on-configure

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.93939% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.83%. Comparing base (8f9199f) to head (d390127).
⚠️ Report is 3 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...figurationPane/ExposePortsCard/ExposePortsCard.tsx 82.14% 5 Missing ⚠️
apps/deploy-web/src/pages/deploy-linux/index.tsx 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3443      +/-   ##
==========================================
- Coverage   72.60%   71.83%   -0.78%     
==========================================
  Files        1167     1080      -87     
  Lines       29527    27319    -2208     
  Branches     7312     6903     -409     
==========================================
- Hits        21439    19625    -1814     
+ Misses       7109     6755     -354     
+ Partials      979      939      -40     
Flag Coverage Δ *Carryforward flag
api 85.98% <ø> (ø) Carriedforward from fd5e003
deploy-web 62.01% <93.93%> (+0.67%) ⬆️
log-collector ?
notifications 91.44% <ø> (ø) Carriedforward from fd5e003
provider-console 81.38% <ø> (ø)
provider-inventory ?
provider-proxy 86.42% <ø> (ø) Carriedforward from fd5e003
tx-signer ?

*This pull request uses carry forward flags. Click here to find out more.

Files with missing lines Coverage Δ
...rationPane/AdditionalSection/AdditionalSection.tsx 100.00% <100.00%> (ø)
...ployment/ConfigurationPane/ImageCard/ImageCard.tsx 98.33% <100.00%> (+0.65%) ⬆️
...ment/ConfigurationPane/RuntimeCard/RuntimeCard.tsx 92.40% <100.00%> (+2.40%) ⬆️
...igureDeployment/ConfigurationPane/cardTooltips.tsx 100.00% <100.00%> (ø)
...oyment/ConfigureDeployment/ConfigureDeployment.tsx 100.00% <100.00%> (ø)
...onfigureDeploymentForm/ConfigureDeploymentForm.tsx 87.26% <100.00%> (+0.50%) ⬆️
...reDeployment/useDeploymentFlow/deploymentIntent.ts 100.00% <100.00%> (ø)
...eDeployment/useDeploymentFlow/useDeploymentFlow.ts 86.58% <ø> (ø)
...inuxToConfigure/RedirectDeployLinuxToConfigure.tsx 100.00% <100.00%> (ø)
...c/hooks/useNewDeploymentUrl/useNewDeploymentUrl.ts 100.00% <100.00%> (ø)
... and 6 more

... and 113 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.tsx (1)

77-110: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Force the replica value to one when a service becomes a VM.

Disabling the stepper preserves an existing value such as count: 3 when an imported service or Docker service changes to a managed VM image. Normalize count to 1, rather than merely locking the current value.

Proposed fix
 const isVm = isVmImage(image ?? "");

+useEffect(() => {
+  if (isVm && count.field.value !== 1) {
+    count.field.onChange(1);
+    void trigger([
+      `services.${serviceIndex}.profile.cpu`,
+      `services.${serviceIndex}.profile.ram`,
+      `services.${serviceIndex}.profile.gpu`
+    ]);
+  }
+}, [isVm, count.field, trigger, serviceIndex]);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.tsx`
around lines 77 - 110, Update ReplicasField to normalize the service replica
count to 1 whenever isVm becomes true, including imported or existing values
greater than 1. Use the form field update mechanism for count and preserve the
disabled stepper and existing validation behavior.
apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ExposePortsCard/ExposePortsCard.tsx (1)

238-260: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Identify the managed SSH row by container port, not external port.

Line 245 checks field.as === 22. For an imported VM mapping port: 22, as: 2222, the SSH row remains removable; conversely, port: 80, as: 22 is incorrectly reserved. Match field.port === 22 and add both cases to the tests.

Proposed fix
-  const managedSshIndex = isVmImage(image ?? "") ? fields.findIndex(field => field.as === 22) : -1;
+  const managedSshIndex = isVmImage(image ?? "") ? fields.findIndex(field => field.port === 22) : -1;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ExposePortsCard/ExposePortsCard.tsx`
around lines 238 - 260, Update managed SSH detection in the ExposePortsCard
logic to match the container port by changing the fields.findIndex predicate
from field.as === 22 to field.port === 22. Extend the relevant tests to cover
both imported mappings with port 22 and a different external port, and mappings
with external port 22 but a non-SSH container port.
🧹 Nitpick comments (1)
apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.spec.tsx (1)

159-166: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Pinning test doesn't prove pinning.

The test never passes an initial count, so it defaults to 1 regardless of any VM-specific "pin to 1" logic. Passing count: 3 (or similar) would actually verify the stepper forces the value down to 1 for VM services, rather than just reflecting an already-1 default.

-    setup({ image: "ghcr.io/akash-network/ubuntu-2404-ssh:2" });
+    setup({ image: "ghcr.io/akash-network/ubuntu-2404-ssh:2", count: 3 });
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.spec.tsx`
around lines 159 - 166, Update the “pins the replica stepper at a single
disabled instance for a vm service” test to call setup with an initial replica
count greater than 1, such as count: 3. Keep the existing assertions verifying
the disabled controls, resulting value of 1, and VM-specific message so the test
proves VM pinning rather than the default.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/cardTooltips.tsx`:
- Around line 103-110: Update the operatingSystemTooltip text to add “on” at the
end of the sentence, so it reads as “The Linux distribution this VM-like
container runs on.”

In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/ConfigureDeployment.tsx`:
- Around line 89-90: Update the ConfigureDeployment initialization logic so VM
entries cannot resolve or use templates: guard templateId-derived values such as
hardcodedTemplate and fetchedTemplateId, and ensure initialSdl ignores draft or
query template content when intent.vm is true. Preserve the existing template
initialization behavior for non-VM entries.

In `@apps/deploy-web/src/types/sdlBuilder/sdlBuilder.ts`:
- Around line 554-573: The reserved-port validation in the service expose loop
should target the field containing the invalid value: use the `port` path when
`expose[j].port === 22` and the `as` path when `expose[j].as === 22`. Update the
corresponding `sdlBuilder.spec.ts` expectation for the `as === 22` case to
assert the corrected path.

---

Outside diff comments:
In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ExposePortsCard/ExposePortsCard.tsx`:
- Around line 238-260: Update managed SSH detection in the ExposePortsCard logic
to match the container port by changing the fields.findIndex predicate from
field.as === 22 to field.port === 22. Extend the relevant tests to cover both
imported mappings with port 22 and a different external port, and mappings with
external port 22 but a non-SSH container port.

In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.tsx`:
- Around line 77-110: Update ReplicasField to normalize the service replica
count to 1 whenever isVm becomes true, including imported or existing values
greater than 1. Use the form field update mechanism for count and preserve the
disabled stepper and existing validation behavior.

---

Nitpick comments:
In
`@apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.spec.tsx`:
- Around line 159-166: Update the “pins the replica stepper at a single disabled
instance for a vm service” test to call setup with an initial replica count
greater than 1, such as count: 3. Keep the existing assertions verifying the
disabled controls, resulting value of 1, and VM-specific message so the test
proves VM pinning rather than the default.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ab9b1242-f68d-48d8-b326-7e3455716648

📥 Commits

Reviewing files that changed from the base of the PR and between 5339649 and 6da27c8.

📒 Files selected for processing (30)
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/AdditionalSection/AdditionalSection.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/AdditionalSection/AdditionalSection.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ExposePortsCard/ExposePortsCard.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ExposePortsCard/ExposePortsCard.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ImageCard/ImageCard.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ImageCard/ImageCard.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/cardTooltips.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/ConfigureDeployment.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/ConfigureDeployment.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeploymentForm/ConfigureDeploymentForm.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeploymentForm/ConfigureDeploymentForm.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/DeploymentFlowProvider/DeploymentFlowProvider.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ResumeDeploymentGuard/ResumeDeploymentGuard.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/useConfigureDraft/useConfigureDraft.spec.ts
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/useDeploymentFlow/deploymentIntent.spec.ts
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/useDeploymentFlow/deploymentIntent.ts
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/useDeploymentFlow/useDeploymentFlow.spec.ts
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/useDeploymentFlow/useDeploymentFlow.ts
  • apps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.spec.tsx
  • apps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.tsx
  • apps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.spec.ts
  • apps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.ts
  • apps/deploy-web/src/pages/deploy-linux/index.tsx
  • apps/deploy-web/src/types/sdlBuilder/sdlBuilder.spec.ts
  • apps/deploy-web/src/types/sdlBuilder/sdlBuilder.ts
  • apps/deploy-web/src/utils/sdl/data.ts
  • apps/deploy-web/src/utils/sdl/vmImages.ts
  • apps/deploy-web/src/utils/urlUtils.ts

Comment thread apps/deploy-web/src/types/sdlBuilder/sdlBuilder.ts
- resolve the template from the parsed intent so vm=true cannot be
  bypassed by a templateId in the raw URL
- identify the managed SSH row by the exact 22-to-22 pair in both the
  expose card and the schema, so a squatting row gets the error instead
  of the read-only lock
- require the ssh key on vm services at the schema level even when the
  deployment-wide flag is off (a pasted vm ref with the runtime card
  collapsed could previously submit an unreachable vm)
- force the ssh flag from the runtime card itself (the collapsed body
  unmounts), open the card by default for vm services, and mark its
  header when a submit is rejected on its hidden fields

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/deploy-web/src/types/sdlBuilder/sdlBuilder.ts`:
- Around line 574-582: Update the SSH key validation in the services loop to
trim `sshPubKey` before checking whether it is missing, so whitespace-only
values trigger the existing fatal “SSH Public key is required.” issue. Add a
regression test covering a whitespace-only key for the VM/SSH-required
validation path.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9e0e80e1-7619-4534-ad7f-c42c669288ba

📥 Commits

Reviewing files that changed from the base of the PR and between 6da27c8 and fd5e003.

📒 Files selected for processing (7)
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ExposePortsCard/ExposePortsCard.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/ConfigureDeployment.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/ConfigureDeployment.tsx
  • apps/deploy-web/src/types/sdlBuilder/sdlBuilder.spec.ts
  • apps/deploy-web/src/types/sdlBuilder/sdlBuilder.ts
🚧 Files skipped from review as they are similar to previous changes (5)
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/ConfigureDeployment.spec.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigureDeployment/ConfigureDeployment.tsx
  • apps/deploy-web/src/types/sdlBuilder/sdlBuilder.spec.ts
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/ExposePortsCard/ExposePortsCard.tsx
  • apps/deploy-web/src/components/deployments/ConfigureDeployment/ConfigurationPane/RuntimeCard/RuntimeCard.tsx

Comment thread apps/deploy-web/src/types/sdlBuilder/sdlBuilder.ts
@baktun14
baktun14 added this pull request to the merge queue Jul 16, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jul 16, 2026
@baktun14
baktun14 added this pull request to the merge queue Jul 16, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jul 16, 2026
@baktun14
baktun14 added this pull request to the merge queue Jul 17, 2026
Merged via the queue into main with commit 86030e6 Jul 17, 2026
56 checks passed
@baktun14
baktun14 deleted the feat/deployment-vm-ssh-on-configure branch July 17, 2026 02:07
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.

2 participants