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.
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 (#18354, 86c2977) (@spikecurtis)
- Add more specific steps and information about OIDC refresh tokens (#18336, 5c16079) (@EdwardAngert)
- Fix swagger documentation for DELETE port share endpoint (#18426, 98a9aa1) (@app/blink-so)
- Add documentation for prebuild scheduling feature (#18462, 8e3022e) (@evgeniy-scherbina)
- Add troubleshooting section to JetBrains Toolbox docs (#18394, 9c1feff) (@matifali)
- Document how to tag coder users in DX data cloud (#17805, cbe4627) (@EdwardAngert)
Chores
- Update Go version to 1.24.4 (#18408, 1a69338) (@app/blink-so)
- Update Terraform to 1.12.2 (#18407, 7e9a9e0) (@app/blink-so)
- Update Coder icons to reflect new branding (#18517, a8e2c75) (@Parkreiner)
See our new brand at coder.com.
Compare: v2.23.2...v2.24.0
Container image
docker pull ghcr.io/coder/coder:v2.24.0
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.