v2.22.0
Changelog
Note
This is a mainline Coder release. We advise enterprise customers without a staging environment to install our latest stable release while we refine this version. Learn more about our Release Schedule.
BREAKING CHANGES
- Remove JFrog integration (#17353, c06ef7c) (@sreya)
Removes displaying XRay scan results in the dashboard. If this change unexpectedly affects your workflow, please open an issue on GitHub.
- Use names not IDs for agent SSH key seed (#17258, f6bf6c6) (@spikecurtis)
Changes the SSH host key seeding to use the owner username, workspace name, and agent name.
Early access users of Coder Desktop will see their SSH clients complain about host keys changing the first time each workspace is rebuilt with this code.
Features
- Set icons for each type of notification (#17115, 489641d) (@BrunoQuaresma)
- Add app status tracking to the backend (#17163, 8ea956f) (@kylecarbs)
- Add frontend for app statuses (#17178, 583a0c6) (@kylecarbs)
- Add the ability to hide preset parameters (#17168, 00e1ea4) (@SasSwart)
- Add migrations and queries to support prebuilds (#16891, 99c6f23) (@SasSwart)
- Add prebuilds configuration & bootstrapping (#17527, 08ad910) (@dannykopping)
- Add prebuilds metrics collector (#17547, e0483e3) (@dannykopping)
- Mark prebuilds as such and set their preset ids (#16965, a986059) (@SasSwart)
Workspace pre-builds are now available in beta for Premium users. Admins can pre-warm workspaces to reduce startup times. Read the prebult workspaces documentation to get started.
- Create experimental CreateWorkspacePage and dynamic-parameters experiment (#17240, 54ff17b) (@jaaydenh)
- Add shadcn checkbox component (#17248, 8a24372) (@jaaydenh)
- Add shadcn radio-group component (#17264, 53af7e1) (@jaaydenh)
- Add dynamic parameters websocket endpoint (#17165, 859dd2f) (@aslilac)
- Create dynamic parameter component (#17351, 1db70be) (@jaaydenh)
- Setup connection to dynamic parameters websocket (#17393, 3d787da) (@jaaydenh)
- Implement UI for top level dynamic parameters diagnostics (#17394, a8c2586) (@jaaydenh)
- Add slider to dynamic parameters (#17453, 8723fe9) (@jaaydenh)
Dynamic Parameters is now available in early access. Use them to create intereactive workspace creation forms. Read the documentation to get started.
- Split cli roles edit command into create and update commands (#17121, ae7afd1) (@brettkolodny)
- Add job status filter (#17202, 3bfafe3) (@BrunoQuaresma)
- Add
CODER_WORKSPACE_HOSTNAME_SUFFIX
(#17268, 87d9ff0) (@spikecurtis) - Add host suffix to
/api/v2/deployment/ssh
(#17269, 2424873) (@spikecurtis) - Add hostname-suffix option to config-ssh (#17270, 59c5bc9) (@spikecurtis)
- Persist prebuild definitions on template import (#16951, 0b2b643) (@SasSwart)
- Support multiple terminal fonts (#17257, 743d308) (@mtojek)
- Add SBOM generation and attestation to GitHub workflow (#17277, f48a24c) (@ThomasK33)
- Support --hostname-suffix flag on
coder ssh
(#17279, d312e82) (@spikecurtis) - Modify config-ssh to set the host suffix (#17280, 9eeb506) (@spikecurtis)
- Install more terminal fonts (#17289, 88b7c9e) (@mtojek)
- Support filtering users table by login type (#17238, 0e65821) (@utsavll0)
- Return hostname suffix on AgentConnectionInfo (#17334, 12dc086) (@spikecurtis)
- Vpn uses WorkspaceHostnameSuffix for DNS names (#17335, 2c573dc) (@spikecurtis)
- Add configurable DNS match domain for tailnet connections (#17336, 9e2af3e) (@spikecurtis)
- Add support for icons and warning variant in Badge component (#17350, 6a6e1ec) (@jaaydenh)
- Add IsCoderConnectRunning to workspacesdk (#17361, e5ce382) (@spikecurtis)
- Extend request logs with auth & DB info (#17304, 06d3915) (@ibetitsmike)
- Add edit-role within user command (#17341, 70b113d) (@brettkolodny)
- Add coder connect exists hidden subcommand (#17418, 3b54254) (@spikecurtis)
- Modify config-ssh to check for Coder Connect (#17419, b0854aa) (@spikecurtis)
- Add slider component (#17431, 67a9127) (@jaaydenh)
- Implement reconciliation loop (#17261, 27bc60d) (@evgeniy-scherbina)
- Add textarea component (#17465, 41b2165) (@jaaydenh)
- Modify coordinators to send errors and peers to log them (#17467, 345435a) (@spikecurtis)
- Add opt-out option to new parameters form (#17456, f6364a2) (@aslilac)
- Enable masking password inputs instead of blocking echo (#17469, 9922240) (@ibetitsmike)
- Implement claiming of prebuilt workspaces (#17458, 118f12a) (@evgeniy-scherbina)
- Add link to provisioner jobs and daemons (#17509, 3ab3ef8) (@BrunoQuaresma)
- Add API key scope to restrict access to user data (#17692, 1bacd8) (@ThomasK33)
- Agent: Add devcontainer autostart support (#17076, 7d4b3c8) (@mafredri)
- Agent: Implement recreate for devcontainers (#17308, 25fb34c) (@mafredri)
- Agent: Add devcontainers list endpoint (#17389, 00b5f56) (@mafredri)
Early Access: Devcontainer integration for workspaces – Coder now automatically detects, starts, and connects to devcontainers defined in your project’s devcontainer.json, enabling seamless IDE access to both the parent workspace and its devcontainers. Learn more. General Availability planned later this year.
- Agent: Add file watcher and dirty status (#17573, 268a50c) (@mafredri)
- CLI: Push dynamically generated templates with version name (#17114, 0eec78d) (@michaelvp411)
- CLI: Add
coder exp mcp
command (#17066, 057cbd4) (@johnstcn) - CLI: Implement
exp mcp configure claude-code
command (#17195, 88bae05) (@johnstcn) - CLI: Support opening devcontainers in vscode (#17189, aa3d71d) (@DanielleMaywood)
- CLI: make MCP server work without user authentication (#17688, 29bce8d) (@ThomasK33)
- SDK: Add toolsdk and replace existing mcp server tool impl (#17343, 1235550) (@johnstcn)
- SDK: Add template_version_id to coder_create_workspace_build (#17364, 272edba) (@johnstcn)
- Provisioner: Propagate trace info (#17166, 12e5718) (@coryb)
- Dashboard: Open dev container in vscode (#17182, ab8c437) (@DanielleMaywood)
Bug fixes
- Prevent password reset notifications ending up in coder inbox (#17109, c8f3b35)
- Correct spurious edits made during the lint fixing slog (#17113, 2dc99c8) (@sreya)
- Conceal sensitive domain information in auth error messages (#17132, 5bd2a3f) (@ericpaulsen)
- Prevent invalid render output for build logs (#17233, c938bfe) (@Parkreiner)
- Fix permissions for workspace creation (#17241, ccfe1bd) (@jaaydenh)
- Set permissions for experimental Createworkspace page (#17254, ae67e33) (@jaaydenh)
- Handle vscodessh style workspace names in coder ssh (#17154, fc471eb) (@f0ssel)
- Configure start workspace action after version upgrade (#17398, 2f99d70) (@hugodutka)
- Correct user roles being passed into terraform context (#17460, ea65ddc) (@Emyrk)
- Update url for parameters websocket endpoint (#17462, 5f0ce7f) (@aslilac)
- Fix empty workspaces result (#17484, 6c1f0d4) (@BrunoQuaresma)
- Update dynamic parameter styles (#17489, 56ee5d8) (@jaaydenh)
- Update tailscale to improve block endpoints functionality (#17496, d566008) (@deansheather)
- Fix build timeline scale for longer builds (#17514, 88589ef) (@BrunoQuaresma)
- Fix workspace creation on template page (#17518, 3b4343d) (@aslilac)
- Fix broken img layout (#17525, 3306f0f) (@jaaydenh)
- Add websocket close handling (#17548, ef6e6e4) (@jaaydenh)
- Handle null value for experiments (#17584, 5ca90ae) (@BrunoQuaresma)
- Fix script timings spam in the workspace UI (#17590, df47c30) (@BrunoQuaresma)
- Handle missed actions in workspace timings (#17593, 1da27a1) (@BrunoQuaresma)
- Fix size for non-squared app icons (#17669, 816a4ed) (@BrunoQuaresma)
- Agent: Return listed drives on failure on windows (#17505, b15d060) (@deansheather)
- CLI: Modify
exp mcp configure
to also read claude API key from CLAUDE_API_KEY env (#17229, 4aa45a5) (@johnstcn) - CLI: Correct logic around CODER_MCP_APP_STATUS_SLUG (#17391, 2d2c9bd) (@johnstcn)
- CLI: Fix prompt issue in mcp configure claude-code (#17599, 22b932a) (@johnstcn)
- CLI: Switch to alternate maven repo for postgres binaries (#17451, 444bd6a) (@johnstcn)
- MCP: report task status correctly (#17187, 1e11e82) (@johnstcn)
- Dashboard: Standardize headers for Admin Settings page (#16911, fcac4ab) (@Parkreiner)
- Update Terraform to 1.11.4 (#17323, 8faaa14) (@sreya)
Documentation
- Add troubleshooting section to Coder Desktop docs (#17098, 6bb4bdb) (@EdwardAngert)
- Update workspace lifecycle description (#17146, c679991) (@EdwardAngert)
- Add new cursor and windsurf docs (#17092, 037dbc8) (@EdwardAngert)
- Update SMTP configuration in notifications docs (#17161, 900e125) (@EdwardAngert)
- Clarify that CODER_EXTERNAL_AUTH_0_ID is used in callback URLs (#16879, fd24116) (@bpmct)
- Clarify details around Coder with MCP (#17220, 13997ca) (@bpmct)
- Add a section about latency and how it's measured (#16734, 43d584c) (@EdwardAngert)
- Add zed
code_app
to extending-templates doc (#17281, 2f6682a) (@EdwardAngert) - Rename codervpn to "coder connect" (#16833, 0e878a8) (@EdwardAngert)
- Add details on external authentication priority (#17164, 109e73b) (@EdwardAngert)
- Add steps to pre-install JetBrains IDE backend (#15962, 6330b0d) (@EdwardAngert)
- Document workspace naming rules and restrictions (#17312, 0cd531d) (@EdwardAngert)
- Update jfrog-artifactory integration docs (#17413, 99979a7) (@matifali)
- Document
GIT_ASKPASS
for OAuth connections (#17457, 9dea568) (@EdwardAngert) - Clarify that parameter autofill requires experimental flag (#17546, e6facaa) (@EdwardAngert)
Compare: v2.21.3...v2.22.0
Container image
docker pull ghcr.io/coder/coder:v2.22.0
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.