Releases: coder/coder
v2.31.6
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
Chores
Compare: v2.31.5...v2.31.6
Container image
docker pull ghcr.io/coder/coder:2.31.6
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.30.5
Stable (since March 25, 2026)
Changelog
Bug fixes
- Open coder_app links in new tab when open_in is tab (#23000, 149e9f1)
- Server: Add organization_name label to insights Prometheus metrics (#22296, de64b63)
Chores
Compare: v2.30.4...v2.30.5
Container image
docker pull ghcr.io/coder/coder:2.30.5
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.29.9
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
- Open coder_app links in new tab when open_in is tab (#23000, 4ee29d0)
- Prevent ui error when last org member is removed (#23017, afb2fc6)
Chores
- Update to Go 1.25.6 and coder/preview to 1.08 (cherry 2.29) (#23228, dc7be5f)
- Switch agent gone response from 502 to 404 (backport #23090) (#23634, 031d992)
Compare: v2.29.8...v2.29.9
Container image
docker pull ghcr.io/coder/coder:2.29.9
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.32.0-rc.0
Release Candidate Changelog
Note
This is a release candidate. It is not intended for production use. Please test and report issues.
Purpose
This RC is intended to validate the Coder Agents feature. Coder Agents is currently in Early Access. The build was cut from our main branch and may include additional changes not listed in the changelog. Any other changes are not guaranteed to be stable or ready for general use.
Features (Agents)
Core
- Add experimental agents support (#22290, edee917) (@kylecarbs)
Agent Tools
- Agent: Add process execution API and rewrite execute tool (#22416, a621c3c) (@kylecarbs)
- Agent: Add fuzzy whitespace matching to edit_files tool (#22446, 5945feb) (@kylecarbs)
- Add line-based read_file tool with safety limits (#22400, b65c076) (@kylecarbs)
- Agent: Add plocate-lite file finder package (#22453, 68e4155) (@kylecarbs)
- Add propose_plan tool for markdown plan proposals (#23452, 19e8662) (@ibetitsmike)
- Make process output blocking-capable (#23312, 41e15ae) (@mafredri)
- feat(chatd): add provider-native web search tools to chats (#22909, 57dc23f) (@kylecarbs)
Chat UX
- Dashboard: Replace Agent chat textarea with Lexical editor (#22449, 897f178) (@kylecarbs)
- Dashboard: Add smooth streaming text engine for LLM responses (#22503, c4a4ad6) (@kylecarbs)
- Dashboard: Add voice-to-text input to agent chat (#23022, 0e7e0a9) (@kylecarbs)
- Add file/image attachment support to chat input (#22604, a104d60) (@mafredri)
- Convert large pasted text into file attachments (#23379, 5eb0981) (@ibetitsmike)
- Dashboard: Render computer tool screenshots as images in chat UI (#23074, d630646) (@ThomasK33)
- Render file references inline in user messages (#23131, 7b0aa31) (@kylecarbs)
- Dashboard: Improve edit-message UX with dedicated button and confirmation (#23172, 41d12b8) (@DanielleMaywood)
- Dashboard: Add scroll-to-bottom button to agent chat (#23212, 0339c08) (@DanielleMaywood)
- Dashboard: Searchable workspace selector in agent chat input (#22656, b0e1040) (@DanielleMaywood)
- Dashboard: Add specialized renderer for process_output tool in agent chats (#22628, 0ccfc4d) (@kylecarbs)
- Dashboard: Add Early Access notice below agents chat input (#23130, b2d8b67) (@mattvollmer)
Git Integration
- Agents git watch backend (#22565, 48ab492) (@hugodutka)
- Agents git watch frontend (#22570, 6665944) (@hugodutka)
- Dashboard: Add diff line reference and annotation system for agents chat (#22697, 2ad0e74) (@kylecarbs)
- Agent: Add PR title, draft, and status icons to sidebar (#22952, 7a83d82) (@kylecarbs)
- feat(gitsync): enrich PR status with author, base branch, review info (#23038, c5b8611) (@kylecarbs)
- Add PR insights analytics dashboard (#23215, d6fef96) (@kylecarbs)
- Dashboard: Show PR link in TopBar header (#23178, 62144d2) (@ibetitsmike)
Desktop & PWA
- Chat desktop backend (#23005, 8452739) (@hugodutka)
- Chat desktop frontend (#23006, 8550973) (@hugodutka)
- Virtual desktop settings toggle backend (#23171, 2cf47ec) (@hugodutka)
- Virtual desktop settings toggle frontend (#23173, 817fb4e) (@hugodutka)
- Dashboard: Add PWA manifest and mobile meta tags for agents page (#22650, f1b3eef) (@kylecarbs)
Notifications
- Agent: Add desktop notifications via VAPID web push (#22454, c9ed1e1) (@kylecarbs)
- Dashboard: Add completion chime for agent tasks (#22608, 474e80b) (@DanielleMaywood)
- feat(chatd): add tag-based dedup to push notifications (#22669, ffb47ce) (@DanielleMaywood)
- Dashboard: Suppress push notifications when agents page is visible (#22667, 957fb55) (@DanielleMaywood)
- feat(chatd): navigate to specific chat on push notification click (#22668, 0ec27e3) (@DanielleMaywood)
MCP Servers
- Add MCP server configuration backend for chats (#23227, d8ff67f) (@kylecarbs)
- Server: Connect to external MCP servers for chat tool invocation (#23333, e388a88) (@kylecarbs)
- Dashboard: Add MCP server admin UI (#23301, 7db77bb) (@kylecarbs)
- Dashboard: Add MCP server picker to agent chat UI (#23470, f62f2ff) (@kylecarbs)
- Auto-discover OAuth2 config for MCP servers via RFC 7591 DCR (#23406, acbfb90) (@kylecarbs)
- Server: Add PKCE support to MCP server OAuth2 flow (#23503, e87ea1e) (@kylecarbs)
Cost & Usage Analytics
- Add chat cost analytics backend (#23036, c3b6284) (@ibetitsmike)
- Dashboard: Add chat cost analytics frontend (#23037, eacabd8) (@ibetitsmike)
- Add agent chat spend limiting (backend) (#23071, 1031da9) (@ibetitsmike)
- Dashboard: Add chat spend limit UI (#23072, 7cca2b6) (@ibetitsmike)
- Agent: Add chat model pricing metadata (#22959, fba00a6) (@ibetitsmike)
- Dashboard: Add usage indicator to agents sidebar (#23307, 4da273b) (@kylecarbs)
- Per-user per-model chat compaction threshold overrides (#23412, 82f965a) (@ibetitsmike)
- Add inline editing of usage limit overrides (#23380, b8a5344) (@ibetitsmike)
Settings & Admin
- Agent: Unify settings dialog for users and admins (#22914, e7f8dfb) (@kylecarbs)
- feat(chatd): add user-level custom prompt for agent chats (#22896, b6d1a11) (@kylecarbs)
- SDK: Generate chat model provider options schema from Go structs (#22568, f758443) (@kylecarbs)
- Add global chat workspace TTL setting (#23265, ff8dcca) (@johnstcn)
- Dashboard: Move Settings and Analytics from dialogs to sidebar sub-navigation (#23126, 635c5d5) (@DanielleMaywood)
Streaming & Reliability
- feat(chatd): add LLM stream retry with exponential backoff (#22418, 2bdacae) (@kylecarbs)
- feat(chatd): persist last_error on chats table (#22436, 0ad2f9e) (@kylecarbs)
- feat(chats): archive chats instead of hard-deleting them (#22406, 1208344) (@kylecarbs)
- feat(chatd): add start_workspace tool to agent flow (#22646, 6520159) (@kylecarbs)
- Paginate chat messages endpoint with cursor-based infinite scroll (#23083, 741af05) (@kylecarbs)
- Add workspace awareness system message on chat creation (#23213, b83b93e) (@kylecarbs)
- Dashboard: Rewrite localhost URLs in agent chat to port-forward links (#22891, b898e45) (@kylecarbs)
Sidebar & Navigation
- Dashboard: Add collapsible archived agents section to sidebar (#22551, cdb7145) (@DanielleMaywood)
- Dashboard: Add keyboard shortcuts to agents page (#22417, 5fb644a) (@kylecarbs)
- Dashboard: Add Open Terminal and Copy SSH Command to agent chat TopBar (#22529, 3c4a416) (@johnstcn)
- Refactor the agents admin UI layout (#22567, 810b509) (@kylecarbs)
- Dashboard: Include chatId in editor deep links (#23214, 20ac96e) (@ThomasK33)
Compare: v2.31.5...v2.32.0-rc.0
Container image
docker pull ghcr.io/coder/coder:2.32.0-rc.0
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.30.4
Stable (since March 16, 2026)
Changelog
Bug fixes
- Prevent ui error when last org member is removed (#23018, b49c4b3)
- Networking: Retry after transport dial timeouts (cherry-pick/v2.30) (#22977, 26e3da1)
- Bump aibridge to v1.0.9 to forward Anthropic-Beta header (#22936, 2970c54)
Compare: v2.30.3...v2.30.4
Container image
docker pull ghcr.io/coder/coder:2.30.4
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.31.5
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
- Prevent emitting build duration metric for devcontainer subagents (#22930, 2cd4e03)
- Prevent ui error when last org member is removed (#23019, 581e956)
- Networking: Retry after transport dial timeouts (#22977, 1a774ab)
Compare: v2.31.4...v2.31.5
Container image
docker pull ghcr.io/coder/coder:2.31.5
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.31.4
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.
Features
Bug fixes
- Filter sub-agents from build duration metric (#22732, 757634c)
- Bump aibridge to v1.0.9 to forward Anthropic-Beta header (#22842, 61b513e)
Compare: v2.31.3...v2.31.4
Container image
docker pull ghcr.io/coder/coder:2.31.4
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.31.3
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.
Chores
Bug Fixes
Compare: v2.31.2...v2.31.3
Container image
docker pull ghcr.io/coder/coder:v2.31.2
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.31.2
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.
Chores
- Prematurely refresh oidc token near expiry during workspace (cherry 2.31) (#22606, 2828d28) (@Emyrk)
Compare: v2.31.1...v2.31.2
Container image
docker pull ghcr.io/coder/coder:v2.31.2
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.31.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.
Normally, our monthly releases are 2.X.0. This mainline release is 2.X.1 due to an issue in the release process, but it should be considered a standard mainline release for customers.
BREAKING CHANGES
-
feat(cli)!: expire tokens by default (#21783, 4a3304f) (@johnstcn)
Calling this out as a breaking change in case existing consumers of the CLI depend on being able to see expired tokens OR being able to delete tokens immediately.
Updates the coder tokens rm command to immediately expire a token by ID, preserving the token record for audit trail purposes. Tokens can still be deleted by passing--delete. -
feat(site)!: add consent prompt for auto-creation with prefilled parameters (#22011, 60e3ab7) (@kacpersaw)
Links using
mode=auto(e.g., "Open in Coder" buttons) will no longer silently create workspaces. Users will now see a consent dialog and must explicitly confirm before the workspace is provisioned. Any existing integrations or automation relying on mode=auto for seamless workspace creation will now require manual user interaction. -
fix!: remove deprecated prometheus metrics (#21788, 036ed56) (@mtojek)
Removes the following deprecated Prometheus metrics:
-coderd_api_workspace_latest_build_total→ usecoderd_api_workspace_latest_buildinstead
-coderd_oauth2_external_requests_rate_limit_total→ usecoderd_oauth2_external_requests_rate_limitinstead
Features
AI Governance
- Add client column to
aibridge_interceptionstable (#21839, 90c11f3) (@pawbana) - Dashboard: Infer model family icon from model name in AI Bridge logs (#22022, 8e9638c) (@ssncferreira)
- Dashboard: Add Copilot as a provider option in AI Bridge logs filter (#22023, 5cf9795) (@ssncferreira)
- Implement AI Bridge client table column (#22228, adcdbfd) (@jakehwll)
- Add anthropic and gemini-monochrome icons (#22270, bf076fb) (@app/blinkagent)
Tasks
- Server: Return 409 Conflict for non-active task states (#21887, 2549fc7) (@mafredri)
- Implement ai governance consumption frontend (#21595, 62704eb) (@jakehwll)
- CLI: Show snapshots in task logs (#21787, efcfee8) (@mafredri)
- CLI: Add
coder task pausecommand (#22012, 6d41d98) (@DanielleMaywood) - CLI: Add
coder task resumecommand (#22066, d737f8c) (@DanielleMaywood) - Server: Return log snapshot for paused tasks (#21771, 21eabb1) (@mafredri)
- Dashboard: Add pause/resume action buttons to tasks table (#21728, d5ae72d) (@EhabY)
- Dashboard: Add pause/resume actions to task page (#21952, 8990a10) (@EhabY)
- Dashboard: Add missing Tasks API client methods (#22079, ebd7ab1) (@EhabY)
- Dashboard: Show task log preview in paused and failed states (#22063, 3fcd8c6) (@EhabY)
- Add an endpoint to manually pause a coder task (#21889, e6fbf50) (@SasSwart)
- Add an endpoint to manually resume a coder task (#21948, 47b8ca9) (@SasSwart)
- Notify on task auto pause, manual pause and manual resume (#22050, 31c1279) (@DanielleMaywood)
CLI
- Add organization delete command to cli (#21940, e3ce3c3) (@rowansmithau)
- Add organizations list command to coder cli (#21960, 683a7c0) (@rowansmithau)
- CLI: Add
coder login tokencommand to print session token (#21627, d09300e) (@kacpersaw)
Devontainers
- Provisioner: Associate resources with
coder_devcontainer(#21602, 1a94aa6) (@DanielleMaywood) - Agent: Add subagent ID fields to devcontainers in manifest (#21848, 2de8cdf) (@DanielleMaywood)
- Agent: Populate subagent ID for terraform-defined devcontainers (#21942, 6ccd20d) (@DanielleMaywood)
- Server: Support terraform-defined subagent ids (#21837, af0e171) (@DanielleMaywood)
Dashboard
- Add healthy filter for workspace queries (#21743, 22ece10) (@sreya)
- Add icon and description to
presetdropdown (#21694, 7a8d8d2) (@jakehwll) - Replace Inter with Geist variable font (#22060, c990981) (@jaaydenh)
Shared Workspaces
- Move Shared Workspaces from experiments to beta (#22206, 37a8e61) (@zenithwolf1000)
Misc
- Server: Filter expired API tokens server-side (#22263, 1e27406) (@kacpersaw)
- Server: Insert sub agent resource (#21699, 37aecda) (@DanielleMaywood)
- Dashboard: Add query param support to OAuth2 app creation page (#21821, 6ac77f2) (@app/blinkagent)
- VPN: Add Linux support for vpn-daemon and OS networking stack (#22051, adc7775) (@ibetitsmike)
- Add Prometheus metrics for license warnings and errors (#21749, 04b0253) (@mtojek)
- Add link for viewing raw build logs in workspace and template build jobs (#21727, 353ebd9) (@johnstcn)
- Add cachecompress package to compress static files for HTTP (#21915, 8aa9e9a) (@spikecurtis)
- Add standard encodings to binary cache (#21921, b84bb43) (@spikecurtis)
- Add e2e workspace build duration metric (#21739, 6035e45) (@sreya)
- Add provisioner job queue wait time histogram and jobs enqueued counter (#21869, 5f3be6b) (@cstyan)
- Remove license gate from workspace and task bulk actions (#22090, 0071338) (@app/blinkagent)
- Add support for agentsock on Windows (#22171, 1069ce6) (@spikecurtis)
- Add template toggle to disable module caching (#21931, efd98bd) (@Emyrk)
Bug fixes
- CLI: Ignore space in custom input mode (#21752, bb7b49d) (@mtojek)
- CLI: Allow site admins to use
coder create --orgfor any organization (#21528, 4b3889e) (@ethanndickson) - CLI: Allow new immutable parameters via
--parameterflag during update (#22221, 3c69d68) (@kacpersaw) - CLI: Proactively use active template version when
require_active_versionis set (#22033, 6c16794) (@f0ssel) - Server: Clean up task snapshots on task deletion (#21949, c60c373) (@mafredri)
- Server: Use BuildReasonTaskAutoPause for task workspaces (#22126, f8eea54) (@johnstcn)
- Server: Add role param to agent RPC to prevent false connectivity (#22052, f016d9e) (@kacpersaw)
- Server: Harden OAuth2 provider security (#22194, b776a14) (@ThomasK33)
- Database: Prevent AcquireProvisionerJob from grabbing canceled jobs (#21852, f75cbab) (@mafredri)
- Database: Correct task pending status logic (#21886, 96695ed) (@mafredri)
- Server: Support
client_secret_basicclient auth (#21793, dd6aec0) (@ThomasK33) - Server: Make workspace ACL disabled flag atomic (#21799, c60f802) (@geokat)
- Server: Prefer app session cookie over Authorization (#22041, fcf431c) (@cryptoluks)
- Helm: Allow overriding
CODER_PPROF_ADDRESSandCODER_PROMETHEUS_ADDRESS(#21714, 892b226) (@app/blinkagent) - Dashboard: Use
total_member_countfor group subtitles when sharing (#21744, f5d4926) (@geokat) - Dashboard: Use native thin scrollbar style for admin bar (#21825, c3ea544) (@kylecarbs)
- Dashboard: Filter build timeline events by agent ID (#21831, b612762) (@mafredri)
- Dashboard: Remove overflow-hidden (#22032, 0ab54fd) (@DanielleMaywood)
- Dashboard: Render username with content-primary, not white (#22172, 873e054) (@DanielleMaywood)
- Dashboard: Show when secret deployment options are configured (#22151, de4ff78) (@jeremyruppel)
- Dashboard: Respect meta user appearance preference as theme fallback (#22152, 0652664) (@jeremyruppel)
- Propagate correct agent exit code (#21718, 4f1fd82) (@sreya)
- Don't allow sharing admins to change own role (#21634, 4847920) (@jaaydenh)
- Use existing transaction to claim prebuild (#21862, 3c1db17) (@sreya)
- Use dynamic parameter resolution in the cli (#21734, b1e18f2) (@Emyrk)
- Resolve heading sizing (#21914, 9d887f2) (@jakehwll)
- Increase retry attempts for builtin postgres port conflicts (#21796, 953a615) (@f0ssel)
- Set content-primary text color instead of hardcoding white text (#21908, 62fa0e8) (@aqandrew)
- Always show
View Taskfor Tasks workspaces (#21970, edcee32) (@jakehwll) - Enable strict mode for swagger generation & upgrade swag (#21975, 456c0bc) (@mtojek)
- Limit doc-check comments by restricting to one sticky comment and updating logic (#21933, a5bc0eb) (@DevelopmentCats)
- Make boundary usage telemetry collection atomic (#21907, a31e476) (@zedkipp)
- Disable
Activity bumpwhenDefault autostopis0(#22112, 5e7b3c3) (@jakehwll) - Avoid re-using
AuthInstanceIDfor sub agents (#22196, 911d734) (@DanielleMaywood) - Allow users with
workspace:createfor any owner to list users (#21947, e8d6016) (@f0ssel) - Restore block to
Managed AgentsonEnterprise(#22210, d700f9e) (@jakehwll) - Ensure stopping a workspace before starting it when updating (#22201, e2cbf03) (@Emyrk)
- Floor provisioner job queue wait metric (#22184, 6a783fc) (@zedkipp)
- Exclude
provisioner_statefromworkspace_build_with_userview (#22159, 0a7a3da) (@sreya) - Use "idle timeout" as task auto-pause reason (#22287, 974ca3e) (@DanielleMaywood)
- Allow agent-reported final states, add SSE reconnection (#22286, 947b390) (@mafredri)
- Allow sharing ports >9999 (#22273, 93e8239) (@Emyrk)
- Avoid derp-related panic during wsproxy registration (backport release/2.31) (#22526, 107fd97) (@rowansmithau)
- Register task pause/resume routes under /api/v2 (#22544) (#22550, 22c2da5) (@EhabY)
Documentation
- Update AI Governance Add-On licensing information (#21899, 2add69a) (@mattvollmer)
- Clarify Tasks limit and AI Governance relationship (#21774, 5da28ff) (@app/blinkagent)
- Clarify that only Coder tokens work with AI Bridge authentication (#21791, b035843) (@app/blinkagent)
- Reorganize AI Bridge client document...