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
- Support empty or default fields when updating templates (#19256, aab2ccdb3) (@rafrdz)
Breaking change to the Coder Go SDK. Field types in
codersdk.UpdateTemplateMeta
forIcon
,Description
, andDisplayName
changed fromstring
to*string
. Consumers must pass pointers and handlenil
checks. Code that assigns/reads plain strings will no longer compile without updates. - fix(coderd/prometheusmetrics)!: filter deleted wsbuilds to reduce db load (#19197, 1b66495b7) (@mafredri)
Breaking change to
coderd_api_workspace_latest_build
Prometheus metric. Thecoderd_api_workspace_latest_build
Prometheus metric no longer includes builds belonging to deleted workspaces, as such, this metric will show fewer statuses.
Features
- Validate presets on template import to prevent publishing an unusable template (#18844, f256a23a7) (@SasSwart)
- Allow bypassing current CORS magic based on template config (#18706, ffbfaf2a6) (@cstyan)
- Add MCP tools for ChatGPT. ChatGPT can now create Coder workspaces. (#19102, 79cd80e5c) (@hugodutka)
- Add prebuild timing metrics to Prometheus (#19503, 0ab345ca) (@ssncferreira)
- Add
author
filter command to template filtering (#19202, 5b80c47e8) (@Emyrk) - Implement rich multi-selector for multi-select in the CLI (#19201, a7fac302b) (@mtojek)
- Add Sourcegraph Amp logo sourced from presskit (#19421, 7bcbb83c7) (@DevelopmentCats)
- Claim prebuilds based on workspace parameters instead of preset ID to improve prebuilds usability (#19279, f9a6adc70) (@SasSwart)
- Coder Tasks UI improvements:
- Show workspace build and startup script logs during tasks creation (#19413, 8aafbcb3b) (@BrunoQuaresma)
> Improved tasks creation UI:
>
- Filter tasks that are waiting for user input (#19377, d77c3d022) (@BrunoQuaresma)
- Display the number of idle tasks in the navbar (#19471, cde5b624f) (@BrunoQuaresma)
> Improved visibility when tasks are waiting for user input.
>
- Show workspace health error alert above agents in workspace page for better visibility (#19400, 9a872f903) (@aqandrew)
- CLI: Add filtering options to
provisioners list
CLI command (#19378, ad5e6785f) (@rafrdz) - CLI: Prevent coder schedule command on prebuilt workspaces (#19259, 92d505c52) (@ssncferreira)
- CLI: Add
coder exp tasks list
command (#19496, 836324e64) (@mafredri) - CLI: Add
exp task create
command (#19492, 63c1325ad) (@DanielleMaywood) - CLI: Implement
exp task status
command (#19533, 5baaf2747) (@johnstcn) - External workspaces is now in Early Access. Read more in our external workspaces documentation.
- CLI: Add enterprise
external-workspaces
CLI command (#19287, 7b1dcd984) (@kacpersaw) - Server: Add
has_external_agent
flag to template_versions and workspace_builds (#19285, 5e4aa79a9) (@kacpersaw) - Server: Add support for external agents to API's and provisioner (#19286, 9edceef0b) (@kacpersaw)
- Dashboard: Add support for external agents in the UI and extend CodeExample (#19288, 7f7206770) (@kacpersaw)
- Server: Generate task names based on their prompt (#19335, 655377165) (@DanielleMaywood)
- Server: Add tasks
/list
and/get
endpoints (#19468, 427b23f49) (@mafredri) - Add workspace-sharing experiment (#19106, ed62ddc38) (@aslilac)
We're testing out shared workspaces in an early and unstable experiment. If you are interested or have feedback please join the discussion in our Github.
Bug fixes
- Use system context for querying workspaces when deleting users to prevent deletion of users with workspaces(#19211, 99d75cc00) (@ethanndickson)
- Upgrade Go to 1.24.6 to fix race in lib/pq queries (#19214, 91780db1f) (@spikecurtis)
- Prevent horizontal form section info from overlapping form fields (#19189, b8851f03e) (@aqandrew)
- Upload the slim binaries from the build directory to the GCS bucket (#19281, 5d42b1861) (@jdomeracki-coder)
- Generalize password invalid message (#19307, b8c9192d0) (@aqandrew)
- Prevent activity bump for prebuilt workspaces (#19263, 560cf8425) (@ssncferreira)
- Set prebuilds lifecycle parameters on creation and claim (#19252, 8567ecbe5) (@ssncferreira)
- Disallow lifecycle endpoints for prebuilt workspaces (#19264, 734299de7) (@ssncferreira)
The two PRs above ensure a user's scheduling settings are correctly applied when claiming a prebuilt workspace.
- Correct scrolling overflow behavior for workspace history (#19340, 5b5fbbed3) (@brettkolodny)
- Ensure deployment banner is always on the bottom (#19361, 362c78a70) (@brettkolodny)
- Don't create autostart workspace builds with no available provisioners (#19067, 6c902a741) (@cstyan)
- Exclude prebuilt workspaces from template-level lifecycle updates (#19265, d79a7797c) (@ssncferreira)
- Fix jetbrains toolbox connection tracking (#19348, dd867bd74) (@f0ssel)
- Support oidc group allowlist in oss (#19430, 5b1e80986) (@rafrdz)
- Redirect users to
/login
if their oauth token is invalid (#19429, ee789dac9) (@brettkolodny) - Add database constraint to enforce minimum username length (#19453, bcdade7d8) (@cstyan)
- Support 'me' as the username for template author (#19204, 3024bdebc) (@Emyrk)
- Fix workspaces pagination (#19448, 54440af95) (@BrunoQuaresma)
Users were previously unable to page through workspaces if they owned many (hundreds). This has been resolved.
- CLI: Display workspace created at time instead of current time (#19553, c19f430f3) (@DanielleMaywood)
- CLI: Attach org option to
task create
(#19554, 8083d9d5c) (@johnstcn) - Enterprise: Update external agent instructions in CLI (#19411, c4290201c) (@kacpersaw)
- Dashboard: Remove redundant alt text to prevent duplicated accessible names (#19087, 44d935698) (@ssncferreira)
- Dashboard: Ensure notification settings page follows RBAC correctly (#19097, a185d3a2c) (@DanielleMaywood)
- Dashboard: Display tasks link when no templates contain an AI task (#19184, cc609cbd5) (@DanielleMaywood)
- Dashboard: Hide "Show parent apps" when no running or starting devcontainers (#19200, 1c70d32ef) (@DanielleMaywood)
- Dashboard: Fix render crash when no embedded apps are defined for task (#19215, ffbd58336) (@DanielleMaywood)
- Dashboard: Add preset combobox to dynamic parameters page (#19100, 96e32d60a) (@ssncferreira)
- Provisioner: Workaround lack of
coder_ai_task
resource on stop transition (#19560, bd139f3a) (@johnstcn) - Server: Filter out non-task workspaces in
api.tasksList
(#19559, dbc6c980) (@johnstcn)
Documentation
- Add
code-server
vs VSCode Web comparison table (#19104, 428ec351f) (@EdwardAngert) - Document how to start a remote MCP Coder server (#19150, a02d1c1e5) (@hugodutka)
- Add OAuth2 provider experimental feature documentation (#19165, 247efc0dc) (@ThomasK33)
- Update status of Coder Desktop + corporate VPN issue (#19350, 1ffc5a0e9) (@ethanndickson)
- Add generative AI contribution guidelines (#19427, a19dfa9a0) (@Emyrk)
- Add dev containers and scheduling to prebuilt workspaces known issues (#18816, 49f32d14e) (@EdwardAngert)
- Add Google OIDC provider-specific guide (#19309, ea7025b56) (@DevelopmentCats)
Performance improvements
- Don't call
GetUserByID
unnecessarily for Agents metrics loops (#19395, 014a2d5b0) (@cstyan) - Speed up
GetTailnetTunnelPeerBindings
query (#19444, 229d05193) (@spikecurtis)
Chores
- Update to node 20.19.4 (#19188, 5c88d9320) (@aslilac)
- Update coder/preview to v1.0.4 (#19205, a2e8aa9c2) (@Emyrk)
- Upgrade to pnpm 10 (#19327, 2180d17f7) (@aslilac)
- Update terraform to 1.13.0 (#19509, 9b7d41dbe) (@app/blink-so)
- Helm: Make coder pprof endpoint available externally (#19185, 4ba93824f) (@Emyrk)
Compare: v2.25.1...v2.26.0
Container image
docker pull ghcr.io/coder/coder:v2.26.0
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.