Releases: coder/coder
v2.23.3
Stable (since July 09, 2025)
Changelog
Bug fixes
- Handle paths with spaces when using
coder config-ssh
(#18778, 049feec) (@spikecurtis)
Compare: v2.23.2...v2.23.3
Container image
docker pull ghcr.io/coder/coder:v2.23.3
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.24.1
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.
Bug fixes
- Fix tasks becoming unusable when no workspace preset is defined in corresponding template (#18723, 5059c23) (@hugodutka)
- Fix task sidebar not displaying apps without health check (#18687, f97bd76) (@hugodutka)
Compare: v2.24.0...v2.24.1
Container image
docker pull ghcr.io/coder/coder:v2.24.1
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.24.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
- Change
update
build to stop workspaces before starting (#18425, 49fcffc) (@johnstcn)⚠ Modifies the behavior when updating a workspace.
Previously, a workspaceupdate
would triggger astart
build, re-creating the agent and updating any existing compute resources in-place. This change has workspace updates explicitly trigger astop
build with a subsequentstart
build. This was implemented to fix pre-builds and improve consistency. Read more here.- CLI: Modifies
coder update
to stop the workspace if already running. - Dashboard: Modifies "update" button to always stop the workspace if already running.
- CLI: Modifies
- CLI: enforce selection for multiple agents rather than use randomness (#18427, bacdc28) (@mafredri)
This only impacts the flow for our new devcontainer integration, and existing users will not see changes to behavior.
SECURITY CHANGES
- Both Coder v2.23 and Coder v2.24 now handle OIDC refresh tokens (#17878). If users are being logged out of OIDC after short intervals (e.g. 1 hour), ensure you have properly configured OIDC refresh tokens
Features
We'll be exploring the details of major features included in this release in our first product launch event next week. Subscribe using this link to learn more.
Coder tasks allow users to execute long-running jobs using templates in the Coder dashboard. This is often used to manage agentic tasks with tools like Claude Code. See more in our agentic AI documentation.
- Add optional Tasks page to the dashboard (#18076, bc3b8d5) (@BrunoQuaresma)
- Add view workspace button in task page (#18105, d06eff2) (@BrunoQuaresma)
- Add workspace build status to task page (#18520, 288ec77) (@code-asher)
- Group external apps on task page (#18107, e0718a600) (@BrunoQuaresma)
- Embed chat ui in the task sidebar (#18216, 13449b9) (@BrunoQuaresma)
Dynamic Parameters are now in Beta. Read more on the new capabilities and syntax in our documentation, or try them out in the Playground.
- Promote dynamic parameters to Beta (#18182, 246a829) (@Emyrk)
- Add ephemeral parameter dialog for workspace start/restart (#18413, 4fe0a4b) (@app/blink-so)
- Implement dynamic parameter validation (#18482, 82af2e0) (@Emyrk)
- Create experimental template embed page for dynamic params (#17999, 6877142) (@jaaydenh)
- Add functionality to export templates from the dashboard (#18214, cc89820) (@app/blink-so)
Our new Devcontainer integration is now generally available - this allows Coder users to leverage Devcontainers seamlessly inside workspaces with rich UI support. To get started, read our Devcontainers integration documentation.
- Graduate devcontainer integration to GA and unify backend (#18332, 97474bb) (@mafredri)
- Agent: Disable devcontainers for sub agents (#18303, ae0c870) (@mafredri)
- Agent: Enable devcontainers by default (#18533, 99d124e) (@mafredri)
- Agent: Implement devcontainers sub agent injection (#18245, fca9917) (@mafredri)
- Agent: Support displayApps from devcontainer config (#18342, dd15026) (@DanielleMaywood)
- Agent: Support apps for dev container agents (#18346, 529fb50) (@DanielleMaywood)
Pre-builds has now graduated to general availability for faster workspace startup time. Read the prebuilt workspace documentation to get started with one of our most highly requested features of all time.
- Implement scheduling mechanism for prebuilds (#18126, 0f6ca55) (@evgeniy-scherbina)
- Allow TemplateAdmin to delete prebuilds via auth layer (#18333, 72f7d70) (@ssncferreira)
- Allow for default presets (#18445, 6cc4cfa) (@dannykopping)
- Support prebuilt workspaces in non-default organizations (#18010, 5f7e5d7) (@SasSwart)
Other updates:
- Workspace apps may now be organized into groups using the
group
attribute on acoder_app
(#18018, 232c72f) (@aslilac) - Set default workspace proxy based on latency (#17812, 4597142) (@Emyrk)
- Add separate max token lifetime for administrators (#18267, f569d9c) (@ThomasK33)
Adds
--max-admin-token-lifetime
so administrators may create tokens that exceed the lifetime maximum applied to users. - Use proto streams to increase maximum module files payload (#18268, c1341cc) (@Emyrk)
- Add organization scope for shared ports (#18314, 5df70a6) (@aslilac)
Users on Premium deployments can now share ports with all users in their organization.
- Add stop workspace button with confirmation dialog in workspace (#18372, 5e3a225) (@app/blink-so)
- CLI: Include license status in support bundle (#18472, 7c40f86) (@kacpersaw)
- Server: Support adding display apps to a sub agent (#18272, 8daa0aa) (@DanielleMaywood)
Bug fixes
- Optimize queue position sql query to improve performance (#17974, 110102a) (@evgeniy-scherbina)
- Reimplement reporting of preset-hard-limited metric to fix Prebuild metrics (#18055, b330c08) (@evgeniy-scherbina)
- Handle
workspace.agent
andagent.workspace.owner
incoder ssh
for backwards compatibility (#18093, da02375) (@ethanndickson) - Rename
build.workspace_owner_name
tobuild.workspace_owner_username
for consistency (#18078, 69c9006) (@BrunoQuaresma) - Autofill with workspace build parameters from the latest build when using presets (#18091, 177bda3) (@jaaydenh)
- Remove duplicated envbuilder vars to fix example devcontainer template (#18144, b0d23ca) (@ericpaulsen)
- Handle paths with spaces in Match exec clause of SSH config to fix config-ssh on windows (#18266, d47a53d) (@spikecurtis)
- Avoid displaying 'everyone' group for IdP group sync to avoid mistakes (#18261, 44fff54) (@jaaydenh)
- Use tailscale that avoids small MTU paths to fix P2P connections in VSCode (#18323, af4a668) (@spikecurtis)
- Defensively handle nil maps and slices in marshaling (#18418, 44d4646) (@angrycub)
- Restrict database access from outside in docker compose installation (#18229, 725bc37) (@jabacrack)
- Complete job and mark workspace as deleted when no provisioners are available (#18465, 2f55e29) (@johnstcn)
Resolves an issue preventing the deletion of workspaces with no matching provisioner
- Fix validation error during workspace creation without preset (#18494, 4f98fd4) (@SasSwart)
- Do not warn on valid known experiments (#18514, d892427) (@johnstcn)
- Allow dynamic parameters without requiring org membership (#18531, 341b54e) (@Emyrk)
- Stop tearing down non-TTY processes on SSH session end to improve VSCode connection (#18676, 7747924) (@spikecurtis)
- CLI: Allow specifying empty provisioner tag set with
--provisioner-tag="-"
(#18205, da9a313) (@johnstcn) - Premium: Skip org membership check for prebuilds user on group patch (#18329, 0a12ec5) (@johnstcn)
Documentation
- Add
error
form_type for dynamic parameters (#18075, 3a2e362) (@Emyrk) - Update the GitHub Auth documentation (#17769, 345001f) (@hugodutka)
- Separate Coder Desktop sections into install and use pages (#18068, e906ce2) (@EdwardAngert)
- Reorganize JetBrains docs into subfeatures such as Toolbox, Gateway (#17995, 25e2146) (@matifali)
- Add backend contributing guide (#18077, 1fba419) (@mtojek)
- Update SSH command format to use suffix for consistency (#18085, cba69f3) (@matifali)
- Improve JetBrains Toolbox connection docs (#18125, 4a2b243) (@matifali)
- Fix alert in JFrog Artifactory guide (#18235, 97ba7f1) (@matifali)
- Edit troubleshooting steps in Coder Desktop documentation (#18233, 60927c7) (@EdwardAngert)
- Reorganize the About section (#18236, f1cca03) (@EdwardAngert)
- Add
winget
installation step to Coder Desktop Windows (#18325, acf7d86) (@matifali) - Add documentation for installing Coder on Azure with Kubernetes (#16216, 23067df) (@EdwardAngert)
- Warn about RDP over UDP with [Coder Desktop](https://coder.com/docs/user-g...
v2.23.2
Stable (since July 1, 2025)
Changelog
Bug fixes
- Stop tearing down non-TTY processes on SSH session end (#18677, 75e7a93) (@spikecurtis)
Resolves an issue with SSH connections via VSCode disconnecting after a short period.
- Dashboard: Remove trailing comment from cursor.svg (#18378, 8e8dd58) (@ethanndickson)
Chores
Compare: v2.23.1...v2.23.2
Container image
docker pull ghcr.io/coder/coder:v2.23.2
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.23.1
Stable (since July 1, 2025)
Changelog
Chores
Compare: v2.23.0...v2.23.1
Container image
docker pull ghcr.io/coder/coder:v2.23.1
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.23.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
- Fix workspace apps response (#17700, 9fe5b71) (@BrunoQuaresma)
Adds
omitempty
to multiple fields in a codersdk response type. API consumers that expect those fields to be always present may need to be updated. - Omit
name
,avatar_url
andlast_seen_at
from responses when empty (#18005, 94c129c) (@BrunoQuaresma) - Update WorkspaceOwnerName to use user.name instead of user.username to reduce UI confusion (#18025, d63417b) (@BrunoQuaresma)
SECURITY CHANGES
- Both Coder v2.23 and Coder v2.24 now handle OIDC refresh tokens (#17878). If users are being logged out of OIDC after short intervals (e.g. 1 hour), ensure you have properly configured OIDC refresh tokens
Features
- Collect database metrics for exhaustion insights (#17635, c278662) (@dannykopping)
- Support GFM alerts for in-product markdown (#17662, 3be6487) (@BrunoQuaresma)
- Improve coder connect tunnel handling on reconnect (#17598, 5f516ed) (@ibetitsmike)
- Add inline actions into workspaces table (#17636, d9b00e4) (@BrunoQuaresma)
- Display builtin apps on workspaces table (#17695, 6ac1bd8) (@BrunoQuaresma)
- Display user apps in the workspaces table (#17744, 1adad41) (@BrunoQuaresma)
- Implement expiration policy logic for prebuilds (#17996, 6f6e73a) (@ssncferreira)
- Add hidden
CODER_AGENT_IS_SUB_AGENT
flag tocoder agent
(#17783, 7f056da) (@DanielleMaywood) - Load terraform modules when using dynamic parameters (#17714, 60762d4) (@aslilac)
- Setup url autofill for dynamic parameters (#17739, d6cb9b4) (@jaaydenh)
- Add experimental workspace parameters page for dynamic parameters (#17841, cb7ce18) (@jaaydenh)
- Make dynamic parameters respect owner in form (#18013, b4531c4) (@Emyrk)
- Add extra workspace actions in the workspaces table (#17775, 67e4024) (@BrunoQuaresma)
- Hide hidden and non-healthy apps in the workspaces table (#17830, 9093dbc) (@brettkolodny)
- Add API key scope to restrict access to user data (#17692, 1bacd82) (@ThomasK33)
- Add elixir icon (#17848, bb6b96f) (@TomBeckett)
- Add copy button for workspace name in breadcrumb (#17822, 2c49fd9) (@matifali)
- Add one shot commands to the coder ssh command (#17779, 2cd3f99) (@brettkolodny)
- Show devcontainer dirty status and allow recreate (#17880, 98e2ec4) (@mafredri)
- Add provisioner daemon name to provisioner jobs responses (#17877, f044cc3) (@ssncferreira)
- Add Organization Provisioner Keys view (#17889, ac7961a) (@johnstcn)
Adds a new view in the organization settings to manage provisioner keys.
- Cancel stuck pending jobs (#17803, 769c9ee) (@ibetitsmike)
- Display required badge instead of diagnostic text when extra code = required (#18006, 516fb44) (@jaaydenh)
- Add hard-limited presets metric (#18008, 2a15aa8) (@evgeniy-scherbina)
- Support ConvertUserLoginType for another user in codersdk(#17784, 71a647b) (@betterlmy)
- Persist app groups in the database (#17977, 9fc3329) (@aslilac)
- Agent: Send devcontainer CLI logs during recreate (#17845, 3de0003) (@mafredri)
- Agent: Add
ParentId
to agent manifest (#17888, 61f22a5) (@DanielleMaywood) - Agent: Update containers periodically (#17972, d6c14f3) (@mafredri)
- Agent: Recreate devcontainers concurrently (#18042, 0731304) (@mafredri)
- CLI: Use coder connect in
coder ssh --stdio
, if available (#17572, 53ba361) (@ethanndickson) - CLI: Make MCP server work without user authentication (#17688, 29bce8d) (@ThomasK33)
- Dashboard: Allow recreating devcontainers and showing dirty status (#18049, a18eb9d) (@mafredri)
Bug fixes
- Update devcontainer data every 10s (#17619, ff54ae3) (@BrunoQuaresma)
- Display validation error for workspace name (#17564, d104cd6) (@jaaydenh)
- Create directory before writing coder desktop connect network info file (#17628, c7fc7b9) (@ethanndickson)
- Fix for claiming and deleting prebuilt workspaces with immutable parameters (#17624, 98e5611) (@evgeniy-scherbina)
- Filter out deleted users when attempting to delete an organization (#17621, b7e08ba) (@brettkolodny)
- Fix deletion of prebuilt workspaces on outdated template versions (#17652, ef11d4f) (@evgeniy-scherbina)
- Improve WebSocket error handling in CreateWorkspacePageExperimental (#17647, e718c3a) (@jaaydenh)
- Update licensing info URL on sign up page (#17657, 64b9bc1) (@matifali)
- Move pubsub publishing out of database transactions to avoid conn exhaustion (#17648, a646478) (@dannykopping)
- Update default value handling for dynamic defaults (#17609, ec003b7) (@jaaydenh)
- Fill session token when app is external (#17708, a02ba66) (@BrunoQuaresma)
- Do not share token with http app urls (#17720, 857587b) (@BrunoQuaresma)
- Create ssh directory if it doesn't already exist when running
coder config-ssh
(#17711, c5c3a54) (@brettkolodny) - Enrich the
notLoggedInMessage
error message with the full path to the coder (#17715, 578b9ff) (@cstyan) - Reduce size of terraform modules archive (#17749, d0ab91c) (@aslilac)
- Don't open a window for external apps (#17813, c718392) (@BrunoQuaresma)
- Add missing clause for tracking replacements (#17849, f2edcf3) (@dannykopping)
- Exclude deleted templates from metrics collection (#17839, 2aa8cbe) (@evgeniy-scherbina)
- Avoid pulling containers when it is not enabled (#17855, ee2aeb4) (@BrunoQuaresma)
- Show no provisioners warning (#17835, ba6690f) (@BrunoQuaresma)
- Fix duplicated agent logs (#17806, 952c254) (@BrunoQuaresma)
- Add null check (#17896, ac8591e) (@jaaydenh)
- Stop extending API key access if OIDC refresh is available (#17878, 1a41608) (@spikecurtis)
- Disable submit button on diagnostics error (#17900, 766277c) (@jaaydenh)
- Sync websocket params with form params (#17895, 4412f19) (@jaaydenh)
- Show provisioner name instead of key name in expanded ProvisionerKeyRow (#17921, 433f0be) (@johnstcn)
- Fix devcontainer port button (#17924, cc53c4d) (@BrunoQuaresma)
- Get presets working correctly with dynamic params (#17923, dc21016) (@jaaydenh)
- Ensure reason present for workspace autoupdated notification (#17935, 1267c9c) (@DanielleMaywood)
- Remove unnecessary user lookup in agent API calls (#17934, 93f17bc) (@ThomasK33)
- Show diagnostics if there are no parameters (#17967, 36d938f) (@jaaydenh)
- Update textarea to fit content height and set a max height (#17946, 3a6d5f5) (@jaaydenh)
- Reduce cost of prebuild failure (#17697, 53e8e9c) (@evgeniy-scherbina)
- Prevent layout shift when Select component dropdown appears (#17990, ce4c8c7) (@jaaydenh)
- Fix metric for hard-limited presets (#18045, e8c75eb) (@evgeniy-scherbina)
- Handle invalid provisioning timings in ui (#18058, ce134bc) (@johnstcn)
- Agent: Fix unexpanded devcontainer paths for agentcontainers (#17736, 7af188b) (@mafredri)
- Agent: Always use
/bin/sh
for devcontainer autostart (#17847, 522c178) (@mafredri) - Server: List templates returns non-deprecated templates by default (#17747, 599bb35) (@ssncferreira)
- Dashboard: Center
/cli-auth
on firefox (#17929, e5758a1) (@ethanndickson)
Documentation
- Add early access devcontainers documentation (#17613, a226a75) (@mafredri)
- Clarify parameter autofill documentation (#17728, 5c53277) (@EdwardAngert)
- Add section on how to retrieve user list (#17798, f9817af) (@EdwardAngert)
- Add file sync to coder desktop docs (#17463, 74934e1) (@EdwardAngert)
Coder desktop now supports local RDP clients in Beta. Available today for Mac and Windows.
- Add provisioner job state transition diagram (#17882, 0cac6a8) (@ssncferreira)
- Add new dynamic parameters information to parameters doc (#17653, 1314dbd) (@EdwardAngert)
- Add jetbrains toolbox steps for new integration (#17661, eb8013a) (@EdwardAngert)
- Fix
token create
command (#17984, 4cb35c4) (@matifali) - Add Bottlerocket section to rootless Podman docs (#17987, c777740) (@krispage)
Compare: v2.22.1...v2.23.0
Container image
docker pull ghcr.io/coder/coder:v2.23.0
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.22.1
Stable (since June 3, 2025)
Changelog
Bug fixes
- Correct environment variable name for MCP app status slug (#17948, 8708d81) (@ThomasK33)
- Remove unnecessary user lookup in AI agent API calls (#17934, 8708d81) (@ThomasK33)
Compare: v2.22.0...v2.22.1
Container image
docker pull ghcr.io/coder/coder:v2.22.1
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
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, 43d5...
v2.21.3
Stable (since May 6, 2025)
Changelog
Note
The next release (v2.22.0) has been postponed. The next mainline version will be available on May 15.
Bug fixes
- Remove site wide perms from creating a workspace (#17296, 3fa1030) (@Emyrk)
- Add path & method labels to prometheus metrics for current requests (#17362, 1d2af9c) (@ibetitsmike)
- Log long-lived connections acceptance (#17219, 991d38c) (@ibetitsmike)
- Extend request logs with auth & DB info (#17497, f8d3fbf) (@ibetitsmike)
- Reduce excessive logging when database is unreachable (#17363, 9ea3910) (@dannykopping)
- Log correct error on drpc connection close error (#17265, b1ccf48) (@aaronlehmann)
- Don't attempt to insert empty terraform plans into the database (cherry-pick #17426) (#17486, 9b3c7d7) (@aslilac)
- Don't show promote button for members (#17511, 1e8ac6c) (@BrunoQuaresma)
- Prevent null loading sync settings (#17430, b760f1d) (@Emyrk)
Fixes an issue causing front end to not load under certain condition.
Compare: v2.21.0...v2.21.3
Container image
docker pull ghcr.io/coder/coder:v2.21.3
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.20.3
Stable (since April 29, 2025)
Changelog
Bug fixes
- Add path & method labels to prometheus metrics for current requests (#17493, 550b81f) (@ibetitsmike)
- Extend request logs with auth & DB info (#17498, fc8454b) (@ibetitsmike)
- Reduce excessive logging when database is unreachable (#17363, 7d0e909) (@dannykopping)
- Prevent null loading sync settings (#17430, b56ffe0) (@Emyrk)
Fixes an issue causing front end to not load.
Chores
Compare: v2.20.2...v2.20.3
Container image
docker pull ghcr.io/coder/coder:v2.20.3
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.