Skip to content

Fixup containers ssh UX papercuts#11578

Merged
gpanders merged 8 commits intomainfrom
ganders/mtvsrouosmyx
Dec 11, 2025
Merged

Fixup containers ssh UX papercuts#11578
gpanders merged 8 commits intomainfrom
ganders/mtvsrouosmyx

Conversation

@gpanders
Copy link
Member

@gpanders gpanders commented Dec 9, 2025

Fixes CC-6563.

Fix a few papercuts with the new container ssh command:

  • Provide single-letter aliases for common SSH options (-F to specify a config file, -o to specify options, -i to set the private key)
  • Allow -o to be used multiple times for setting multiple options
  • Show the cursor when the SSH process starts. The library that Wrangler uses to draw the interactive UI (clack) hides the cursor, so it is not visible when the SSH shell starts. We need to manually make it visible.
  • Hard code some specific SSH options (ControlMaster, ControlPersist, UserKnownHostsFile, and StrictHostKeyChecking). These don't make sense to use with the way our SSH implementation works
  • Allow specifying a command with arguments (e.g. containers ssh -- ls -l)

  • Tests
    • Tests included/updated
    • Tests not necessary because:
  • Public documentation
    • Cloudflare docs PR(s):
    • Documentation not necessary because: UX fixes, no public behavior changes
  • Wrangler V3 Backport
    • Wrangler PR:
    • Not necessary because: feature not present in v3

A picture of a cute animal (not mandatory, but encouraged)

@gpanders gpanders requested review from a team as code owners December 9, 2025 19:41
@changeset-bot
Copy link

changeset-bot bot commented Dec 9, 2025

🦋 Changeset detected

Latest commit: 8a3f064

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@gpanders gpanders changed the title Ganders/mtvsrouosmyx Fixup containers ssh UX papercuts Dec 9, 2025
@github-project-automation github-project-automation bot moved this to Untriaged in workers-sdk Dec 9, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 9, 2025

Failed to automatically backport this PR's changes to Wrangler v3. Please manually create a PR targeting the v3-maintenance branch with your changes. Thank you for helping us keep Wrangler v3 supported!

Depending on your changes, running git rebase --onto v3-maintenance main ganders/mtvsrouosmyx might be a good starting point.

Notes:

  • your PR branch should be named v3-backport-11578
  • add the skip-v3-pr label to the current PR to stop this workflow from failing

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 9, 2025

create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@11578

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@11578

miniflare

npm i https://pkg.pr.new/miniflare@11578

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@11578

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@11578

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@11578

@cloudflare/vitest-pool-workers

npm i https://pkg.pr.new/@cloudflare/vitest-pool-workers@11578

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@11578

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@11578

wrangler

npm i https://pkg.pr.new/wrangler@11578

commit: 1ec06eb

@gpanders gpanders force-pushed the ganders/mtvsrouosmyx branch 4 times, most recently from 9fc4e2c to 74d222f Compare December 9, 2025 20:29
Fix a few papercuts with the new container ssh command:

* Provide single-letter aliases for common SSH options (`-F` to specify
  a config file, `-o` to specify options, `-i` to set the private key)
* Allow `-o` to be used multiple times for setting multiple options
* Show the cursor when the SSH process starts. The library that
  Wrangler uses to draw the interactive UI (clack) hides the cursor, so
  it is not visible when the SSH shell starts. We need to manually make
  it visible.
* Hard code some specific SSH options (ControlMaster, ControlPersist,
  UserKnownHostsFile, and StrictHostKeyChecking). These don't make sense
  to use with the way our SSH implementation works
@gpanders gpanders force-pushed the ganders/mtvsrouosmyx branch from 74d222f to 1ec06eb Compare December 9, 2025 20:38
@github-project-automation github-project-automation bot moved this from Untriaged to Approved in workers-sdk Dec 10, 2025
@Talador12
Copy link
Member

LGTM :)

@gpanders gpanders force-pushed the ganders/mtvsrouosmyx branch from 78fbd11 to 0b37791 Compare December 11, 2025 14:41
@gpanders gpanders merged commit 4201472 into main Dec 11, 2025
28 of 30 checks passed
@gpanders gpanders deleted the ganders/mtvsrouosmyx branch December 11, 2025 16:21
@github-project-automation github-project-automation bot moved this from Approved to Done in workers-sdk Dec 11, 2025
dario-piotrowicz pushed a commit that referenced this pull request Dec 11, 2025
* Add helper function to show or hide the cursor

* Watch cli directory in wrangler "dev" script

* containers: ssh UX improvements

Fix a few papercuts with the new container ssh command:

* Provide single-letter aliases for common SSH options (`-F` to specify
  a config file, `-o` to specify options, `-i` to set the private key)
* Allow `-o` to be used multiple times for setting multiple options
* Show the cursor when the SSH process starts. The library that
  Wrangler uses to draw the interactive UI (clack) hides the cursor, so
  it is not visible when the SSH shell starts. We need to manually make
  it visible.
* Hard code some specific SSH options (ControlMaster, ControlPersist,
  UserKnownHostsFile, and StrictHostKeyChecking). These don't make sense
  to use with the way our SSH implementation works
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants