Skip to content

Release history

coder releases

Secure environments for developers and their agents

All releases

59 shown

Config change
v2.34.0 Breaking risk
Breaking upgrade Auth

AI Gateway change + Agents UX + Dashboard

Upgrade now
v2.32.5 Security relevant
Dependencies

CVE patches for crypto & net

No immediate action
v2.33.6 Bug fix

N+1 query fix + new image

No immediate action
v2.31.14 Bug fix

TSMP/ICMP callback leak fix

No immediate action
v2.29.15 Bug fix

TSMP/ICMP callback leak fix

No immediate action
v2.33.5 Bug fix

TSMP/ICMP callback leak fix

Review required
v2.32.4 Bug fix

TSMP/ICMP callback leak fix

No immediate action
v2.31.13 Bug fix

Azure IMDS G2 certificates

No immediate action
v2.32.3 Maintenance

Routine maintenance and dependency updates.

No immediate action
v2.33.4 New feature

Dashboard loading indicator

Upgrade now
v2.30.8 Security relevant
Dependencies RCE / SSRF

CVE security fixes + Azure hardening

patches GHSA-686c-7vgv-v3fx patches GHSA-6x44-w3xg-hqqf
Open
Review required
v2.24.5 Security relevant
Auth Crypto / TLS

Azure identity hardening

patches GHSA-686c-7vgv-v3fx patches GHSA-6x44-w3xg-hqqf
Open
Upgrade now
v2.29.13 Security relevant
Dependencies

Security fixes + Go upgrade

patches GHSA-686c-7vgv-v3fx patches GHSA-6x44-w3xg-hqqf
Open
Upgrade now
v2.31.12 Security relevant
RCE / SSRF Dependencies

CVE security fixes

patches GHSA-686c-7vgv-v3fx patches GHSA-6x44-w3xg-hqqf
Open
Upgrade now
v2.32.2 Security relevant
Dependencies

CVE-2026-33814 fix

patches GHSA-686c-7vgv-v3fx patches GHSA-6x44-w3xg-hqqf
Open
Review required
v2.33.3 Security relevant
Dependencies Breaking upgrade

CVE fixes

patches GHSA-686c-7vgv-v3fx patches GHSA-6x44-w3xg-hqqf
Open
v2.33.2 Maintenance

Minor fixes and improvements.

Full changelog

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

  • Backport 11 Coder Agents docs PRs to release/2.33 (#25047, d622e86fa0)

Compare: v2.33.1...v2.33.2

Container image

  • docker pull ghcr.io/coder/coder:2.33.2

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.33.1 Breaking risk
Breaking changes
  • Removed `agents` experiment flag
Full changelog

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

  • Remove agents experiment flag and mark feature as beta (#24432, 3e34ba7bf0)

Compare: v2.33.0...v2.33.1

Container image

  • docker pull ghcr.io/coder/coder:2.33.1

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.33.0 Breaking risk
Breaking changes
  • Removed `api.ts` file – any imports or calls to it will fail.
  • Dashboard: Executing a terminal command from a URL now requires an explicit confirmation dialog before execution.
Security fixes
  • Bump Go toolchain to 1.25.9 (addresses upstream security updates).
  • Replace trivy with osv-scanner (security scanning improvement).
  • Bump gomarkdown to patched revision (includes CVE fixes).
Full changelog

Changelog

BREAKING CHANGES

  • chore!: remove api.ts unnecessary calls (#22168, 4caa52844d) (@jakehwll)
  • Dashboard: Require confirmation before executing terminal command from URL (#24650, 66abd8a271) (@Shelnutt2)

SECURITY

  • Bump Go toolchain to 1.25.9 (#24293, 03d662a06c) (@CommanderK5)
  • Replace trivy with osv-scanner (#24311, 75f712feb7) (@CommanderK5)
  • Bump gomarkdown to patched revision (#24567, 869168b316) (@CommanderK5)
  • Keep OSV findings from failing security job (#24378, 9e771c4fc1) (@CommanderK5)
  • Widen engines.node to include Node.js 24 LTS (#24419, 1f194dcdff) (@jdomeracki-coder)

Features

  • Add chat and chat_files cleanup to dbpurge (#23833, 233343c010) (@johnstcn)
  • Dashboard: Take/release control agents desktop buttons (#24009, da5395a8ae) (@hugodutka)
  • Server: Add telemetry for agents chats and messages (#24068, c5d720f73d) (@kylecarbs)
  • Support disabling reverse/local port forwarding in agent SSH server (#24026, 7b7baea851) (@f0ssel)
  • Add dynamic tools support for chat API (#24036, b969d66978) (@kylecarbs)
  • Add CreatedAt to tool-call and tool-result ChatMessageParts (#24101, 35c26ce22a) (@kylecarbs)
  • Byok-observability for aibridge (#23808, 7f496c2f18) (@evgeniy-scherbina)
  • Add httproute for K8s Gateway API (#23501, e3a0dcd6fc) (@cfi2017)
  • Dashboard: Add under-construction navbar stripes for pre-release builds (#24157, 461a31e5d8) (@johnstcn)
  • Add user secrets SDK types and db2sdk converters (#24102, 9b91af8ab7) (@zedkipp)
  • Add input validation for user secret env names and file paths (#24103, 7caef4987f) (@zedkipp)
  • Dashboard: Hide agents desktop tab when workspace is stopped (#24191, 33d9d0d875) (@hugodutka)
  • Agents desktop recording thumbnail backend (#24022, efb19eb748) (@hugodutka)
  • Dashboard: Agents desktop recording thumbnail frontend (#24023, 128a7c23e6) (@hugodutka)
  • Merge Limits + Usage into unified Spend page (#24093, 29ad2c6201) (@DanielleMaywood)
  • Add CLI commands for managing chat context from workspaces (#24105, 391b22aef7) (@kylecarbs)
  • Byok observability api (#24207, 8237822441) (@evgeniy-scherbina)
  • Warn in CLI when server runs dev or RC builds (#24158, 1e40cea199) (@johnstcn)
  • Add REST API handlers and client methods for user secrets (#24107, 95cff8c5fb) (@zedkipp)
  • Resolve useTime() thunk() error (#24234, 82456ff62e) (@jakehwll)
  • Stack insights tables vertically and paginate Pull requests table (#24198, 36141fafad) (@mattvollmer)
  • Add workspace build transition to provisioner job list (#24131, 7bde763b66) (@jscottmiller)
  • Comment on original PR after cherry-pick PR is created (#24243, e0fbb0e4ec) (@f0ssel)
  • User secret database encryption (#24218, 508114d484) (@zedkipp)
  • Agent: Add user secrets to agent manifest (#24252, 2f52de7cfc) (@zedkipp)
  • Refactor <AgentLogs /> error state (#24233, 7b02a51841) (@jakehwll)
  • Add a debounce to menu filtering (#24048, 982739f3bf) (@jakehwll)
  • Show build logs in chat for start_workspace and create_workspace tools (#24194, cb0b84a2d3) (@DanielleMaywood)
  • Add organization scoping to chats (#23827, 22062ec52e) (@johnstcn)
  • De-mui <Skeleton /> component (#24278, 58c6855c59) (@jakehwll)
  • Add chat debug log tables, queries, and SDK types (#23913, 6ab30123bf) (@ThomasK33)
  • Add secret value and file path validation (#24269, 4854f33678) (@zedkipp)
  • Make sure creds are always masked (#24241, b78eba9f9d) (@evgeniy-scherbina)
  • Demui the <LinearProgress /> dependency (#24275, e0902e3c27) (@jakehwll)
  • Dashboard: Add full-width chat layout toggle (#24307, a414d37165) (@kylecarbs)
  • Add types, context, and model normalization (#23914, 8382e96a81) (@ThomasK33)
  • Add texlive.svg icon (#24312, 3d8d89e56c) (@DevelopmentCats)
  • De-mui the <UserGroupsCell /> component (#24277, 60aed55eaa) (@jakehwll)
  • Graduate web-push from experiment to always-on (#24310, 116323d3cf) (@johnstcn)
  • Add Prometheus metric for agent first connection duration (#24179, 20b953a99d) (@jscottmiller)
  • Link group names to group page in agents limit settings (#24212, 214351ebe1) (@aslilac)
  • Configure multiple AI Bridge providers of the same type (#23948, 08045c2aac) (@dannykopping)
  • Dashboard: Expose workspace apps in chat workspace pill (#24295, e317f3b239) (@DanielleMaywood)
  • Add coder_build_info metric (#24365, 48b90f8cc8) (@dannykopping)
  • Server: Add recorder, transport, and redaction (#23915, 4651ca5a9a) (@ThomasK33)
  • Dashboard: Make org selector compact (#24318, 93a1a5145a) (@DanielleMaywood)
  • Add allow-byok option for ai-gateway (#24274, dd73ea54bd) (@evgeniy-scherbina)
  • Add Prometheus metrics for chatd subsystem (#24371, d7439a9de0) (@johnstcn)
  • Add plan mode with restricted tool boundary (#24236, 1cf0354f72) (@ibetitsmike)
  • Support multiple agents with shared instance-identity auth (#24325, e5707a13d6) (@ibetitsmike)
  • Add internal subagent model override wiring (#24399, 1092093e98) (@ibetitsmike)
  • Accept xhigh effort for Anthropic (#24439, 15d8e4ff9f) (@DanielleMaywood)
  • Add CLI support for user secrets (#24270, 7270e01390) (@dylanhuff-at-coder)
  • Wire DERPTLSConfig through CLI, SDK, tailnet, VPN, agent, and health checks (#24435, 4c1a32cd7c) (@spikecurtis)
  • CLI: Add experimental agents TUI (#24150, de30488b20) (@ibetitsmike)
  • Add Explore mode as subagent-only modality (#24448, 73b5058923) (@ibetitsmike)
  • Server: Add PR status summary to telemetry snapshots (#24379, 4ba74dcdc8) (@deansheather)
  • feat(scripts/develop): enable prometheus metrics by default (#24389, a23a38c1f3) (@johnstcn)
  • Server: Add chat debug service and summary aggregation (#23916, 91f9de27a1) (@ThomasK33)
  • Label chatd metrics by model, add stream-state diagnostics (#24475, 4b585465b8) (@johnstcn)
  • Runtime user secrets injection into workspaces (#24313, 72f35e1cd3) (@zedkipp)
  • Server: Agent-created file attachments in chat (#24280, ef6969dd70) (@ethanndickson)
  • Support AWS SDK default credential chain for Bedrock authentication (#24346, 522118ab20) (@ssncferreira)
  • Server: Wire debug logging into chat lifecycle (#23917, df7e838c21) (@ThomasK33)
  • Add chat debug HTTP handlers and API docs (#23918, 18a30a7a10) (@ThomasK33)
  • Allow renaming of agent chat title (#24489, 410f9a5e19) (@jaaydenh)
  • feat(scripts/develop): add --prometheus-server flag to run Prometheus UI (#24408, d99949df43) (@johnstcn)
  • Server: Accept parameters in start_workspace tool (#24434, 1203f625b7) (@ethanndickson)
  • Make database.Chat auditable (#24485, c968a1f3a3) (@johnstcn)
  • Allow approved external MCP tools in root plan mode (#24509, 9d0469fc4c) (@ibetitsmike)
  • Surface upstream provider error details in chat callout (#24546, 2295e9d5be) (@ethanndickson)
  • Dashboard: Show MCP settings and hide insights in sidebar (#24428, 7f4127bc61) (@DanielleMaywood)
  • Server: Add description tags to tool parameter structs (#24394, 79a9f437d7) (@app/blinkagent)
  • Rebucket "Number of developers" onboarding options (#24573, f77827e84a) (@david-fraley)
  • Dashboard: Display file attachments in chat UI (#24281, cc4e04afde) (@ethanndickson)
  • Dashboard: Add chat debug API layer and panel utilities (#23919, 8c0fe6d5f2) (@ThomasK33)
  • Dashboard: Add Debug panel components and settings (#23920, 249b71b96a) (@ThomasK33)
  • Sort AI sessions by last prompt time (#24440, c23abc691f) (@jeremyruppel)
  • Add chatd tool call error metrics and logging (#24559, 72e3ae9c5f) (@johnstcn)
  • Add dependabot security backport labels (#24484, 06d7fc5200) (@CommanderK5)
  • Add lima incus example (#24640, f5ccf68e53) (@johnstcn)
  • Dashboard: Allow disengaging plan mode from Planning badge (#24651, 50dbb3d2cb) (@david-fraley)
  • Migrate agents-access to org-scoped system role for proper chat RBAC (#24438, b5a625549e) (@johnstcn)
  • Snapshot explore subagent tool entitlements (#24638, dbcc654d28) (@ibetitsmike)
  • Add general subagent model override (#24610, 3d90546aae) (@ibetitsmike)
  • Add collapsible thinking blocks with configurable display mode (#24635, 3a9a60dff8) (@DanielleMaywood)
  • Dashboard: Add Charm Crush client icon to AI Bridge UI (#24662, 346b46228f) (@dannykopping)
  • Auto-archive inactive chats with audit trail (#24642, a876287d36) (@johnstcn)
  • Add alert with link to template agent skill on page after template creation (#24588, c488658fd2) (@DevelopmentCats)
  • Dashboard: Opt AI Gateway pages into React Compiler (#24713, 780aa6ce94) (@jeremyruppel)
  • Add admin UI control for chat auto-archive days (#24704, 2f26903af9) (@johnstcn)
  • Plumb user secrets through provisioner chain to terraform (#24542, 79735f2d45) (@zedkipp)
  • Dashboard: Add duplicate model action (#24728, ebed01ac55) (@ibetitsmike)
  • Chat auto-archive owner digest notifications (#24643, 70d6efa311) (@johnstcn)
  • Add after_id pagination for chat messages (#24531, 5222db86c7) (@david-fraley)
  • Reload MCP config on change via lazy stat-on-request (#24700, 881df9a5b0) (@mafredri)
  • Add --skip-setup flag to develop script (#24794, dcb32165fa) (@aslilac)
  • Add hostAliases support to Coder helm chart (#24729, 76242f8202) (@rowansmithau)
  • Audit user secret create, update, and delete (#24756, df1bfe6479) (@zedkipp)
  • Dashboard: Remove visible text from copy/download logs buttons (#24852, 75fc13d889) (@jeremyruppel)

Bug fixes

  • Dashboard: Inline dl/dt/dd classNames and use justify-between layout in session tables (#24118, 7d3c5ac78c) (@jeremyruppel)
  • fix(scripts/githooks): clear all repo-local Git env vars in hooks (#24138, be686a8d0d) (@ethanndickson)
  • Dashboard: Standardize scrollbar styling with global baseline (#24019, 1f808cdc62) (@jaaydenh)
  • Pin fixed anthropic/fantasy forks for streaming token accounting (#24077, 590235138f) (@ibetitsmike)
  • Dashboard: Scroll when request logs tool call is huge (#24162, de61ac529d) (@jeremyruppel)
  • Dashboard: Fix agents right panel layout on small landscape viewports (#24161, 477d6d0cde) (@hugodutka)
  • Revert auto-assign agents-access role enabled (#24170, 7b0421d8c6) (@johnstcn)
  • Dashboard: Move pagination test from vitest to storybook story (#24165, 12ada0115f) (@DanielleMaywood)
  • Sanitize workspace agent logs before insert (#24028, f4240bb8c1) (@dylanhuff-at-coder)
  • Dashboard: Replace Tooltip with HelpPop… (#24057, f95a5202bf) (@code-qtzl)
  • Mark connecting agents as unhealthy instead of healthy (#24044, 584c61acb5) (@matifali)
  • Dashboard: Add padding below thinking-only assistant messages (#24140, f957981c8b) (@jaaydenh)
  • Resolve <Badge /> incorrect sizes (#22539, 2e6fdf2344) (@jakehwll)
  • Dashboard: Request logs and sessions page UI consistency (#24163, 2505f6245f) (@jeremyruppel)
  • Dashboard: Use locale string for token usage tooltip (#24177, 3f519744aa) (@jeremyruppel)
  • Dashboard: Replace expandable agentic loop section with cool design (#24171, fb0ed1162b) (@jeremyruppel)
  • Server: Stabilize startup-timeout tests with quartz (#24193, 65bf7c3b18) (@ethanndickson)
  • Bump coder/tailscale to pick up RTM_MISS fix (#24187, ad2415ede7) (@ethanndickson)
  • CLI: Retry dial timeouts in SSH connection setup (#24199, 1d0653cdab) (@EhabY)
  • OAuth2 cancel button in the authorization page not working (#24058, 83fd4cf5c2) (@fioan89)
  • Resolve <WorkspaceTimings /> size (#24235, 4018320614) (@jakehwll)
  • Fix 4px layout shift on streaming commit in chat (#24203, 1a3a92bd1b) (@jaaydenh)
  • Dashboard: Add bottom spacing for sources-only assistant messages (#24202, 76d89f59af) (@jaaydenh)
  • Remove double bottom border on build logs table (#24000, 2c32d84f12) (@DanielleMaywood)
  • Update directory for terraform-managed subagents (#24220, 3462c31f43) (@f0ssel)
  • Server: Sort pinned chats first in GetChats pagination (#24222, a62ead8588) (@mafredri)
  • Resolve idle timeout recording test flake on macOS (#24240, 8dff1cbc57) (@kylecarbs)
  • Dashboard: Show "Preparing" in workspace pill during agent startup scripts (#24286, 39ceb8cfe3) (@DanielleMaywood)
  • Resolve flaky TestWatchChats/DiffStatusChangeIncludesDiffStatus (#24298, 69917b4516) (@kylecarbs)
  • Dashboard: Use readonly Organization[] and explicit is_default lookups (#24288, 11fe4972b6) (@johnstcn)
  • Validate individual edit entries in parseEditFilesArgs (#24301, 1458861fd2) (@DanielleMaywood)
  • Use per-chat plan file paths (#24268, a554de372a) (@ibetitsmike)
  • Prevent site storybook tests from hanging after completion (#23936, a1ef3043bb) (@mafredri)
  • Dashboard: Hide bottom spacer on last session thread (#24248, 4d4266a4ad) (@jeremyruppel)
  • Stop group spend limits from leaking across org boundaries (#24294, c552f9f281) (@johnstcn)
  • Remove OIDC_TOKEN from secrets deny lsit (#24337, 6fb27c980d) (@zedkipp)
  • fix(.github/workflows/contrib): use @actions/github instead of @octokit/rest in community-label job (#24343, 7e68d18e04) (@f0ssel)
  • Relax secrets env var denylist for model providers (#24344, 0832033a73) (@zedkipp)
  • fix(Makefile): rebuild clidocgen when Go sources or template change (#24302, 0080bcbf33) (@ethanndickson)
  • Fix false positive disconnected agent metric reporting (#24225, 730edba87a) (@cstyan)
  • Resolve double border on <WorkspaceTimings /> (#24358, 44f361d1a5) (@jakehwll)
  • Server: Validate webpush subscription endpoints (#24347, 5812f84e1c) (@ThomasK33)
  • Address post-merge review findings for chat org scoping (#24297, 6194bd6f57) (@johnstcn)
  • Use findByRole in ProviderWithUserKeysOnly storybook to avoid race condition (#24367, 70840441e4) (@DanielleMaywood)
  • Use VSCode icons instead of ExternalLinkIcon on agent page workspace selector (#24370, 49d8c9e018) (@DanielleMaywood)
  • Dashboard: Remove double border at top of RightPanel (#24364, 0360bc33f8) (@DanielleMaywood)
  • Dashboard: Style navbar version badge as a notch (#24372, f8d521d527) (@johnstcn)
  • Server: Hoist system prompt fetch out of chat creation transactions (#24369, e7883d4573) (@ethanndickson)
  • Prevent 'See all templates' from overlapping template list in New Workspace dropdown (#24356, 517bb1f9f7) (@35C4n0r)
  • Dashboard: Prevent empty organization_id when permittedOrgs resolves to empty (#24393, 91446ac7ca) (@DanielleMaywood)
  • CLI: Prevent false deprecation warnings for renamed options (#23931, e3f2398343) (@stirby)
  • Re-fetch context files and skills from workspace on each turn (#24360, d11849d94a) (@kylecarbs)
  • Don't skip tag naming when building nix image (#24403, 280735db0f) (@aslilac)
  • Fix dogfood template presets (#24406, fda05938bb) (@aslilac)
  • Move OnChatUpdated call after agent is ready in create/start workspace (#24410, 9c74c8c674) (@kylecarbs)
  • Fix image_type options (#24411, fded2cb5c9) (@aslilac)
  • Dashboard: Truncate long workspace name in chat input toolbar (#24412, 8bc91d982f) (@kylecarbs)
  • Remove mui dependency on useClickableTableRow() (#24373, 51ac35cc64) (@jakehwll)
  • Restore kebab menu flex (#24359, 074ff79af7) (@jakehwll)
  • Server: Auto-update workspace to active template version on chat start (#24424, 91b35a25ee) (@ethanndickson)
  • Add missing ClientType to InsertChat test params (#24436, eae9444dbe) (@ethanndickson)
  • Dashboard: Allow search by label in MultiSelectComboBox (#24421, 383b10f71e) (@johnstcn)
  • Associate computer use recordings with chats (#24471, db8191277b) (@hugodutka)
  • fix(.github/workflows): upgrade github-script to v9 in community-label job (#24479, d8d63ad9a0) (@jdomeracki-coder)
  • fix(dogfood): fix capitalization typo and extra blank line (#24481, a41c8d73b1) (@EhabY)
  • fix(dogfood): update display name and add README (#24487, ee563636ed) (@EhabY)
  • Reap idle chatd stream states on a timer (#24476, 3f6b40a833) (@johnstcn)
  • Dashboard: Insert newline on mobile Enter (#24498, c40f45b986) (@david-fraley)
  • Dashboard: Use hard reload after login to reload metadata (#24239, a2b9b74f4a) (@jeremyruppel)
  • Dashboard: Fix flaky CreateWorkspacePage tests (#24480, a53f52ee38) (@DanielleMaywood)
  • Server: Save refreshed token before validation (#24332, 2a1984f0e8) (@mafredri)
  • Server-side diffs and stricter fuzzy splicing for edit_files (#24454, 6b0bb02e5d) (@mafredri)
  • Resolve <ChatTopBar /> fmt issue (#24515, 5f6c74adfa) (@jakehwll)
  • Server: Reduce relay reconnect spam (#24495, 12e49c18a5) (@johnstcn)
  • Dashboard: Prevent workspace icon from shrinking in chat pill (#24521, f688e85898) (@DanielleMaywood)
  • Classify HTTP/2 transport failures as retryable timeouts (#24502, df429b7f60) (@johnstcn)
  • Exclude subagent chats from sidebar pagination (#24404, fc2493780f) (@mafredri)
  • Sort child chats newest-first and prepend on creation (#24524, 467430d8fa) (@mafredri)
  • Server: Add frame-ancestors CSP directive to prevent clickjacking (#24474, 615be176b8) (@jdomeracki-coder)
  • Server: Enforce workspace authz on watchChatGit (#24477, ea00d2d396) (@deansheather)
  • Server: Omit frame-ancestors CSP for embed routes (#24529, 411ed21059) (@jdomeracki-coder)
  • Dashboard: Stabilize app.spec.ts e2e test (#24400, 4b755e514a) (@jeremyruppel)
  • Dashboard: Stabilize agent form stories (#24532, 2f0d715e9f) (@johnstcn)
  • Dashboard: Simplify prerelease css (#24514, 3b561dcea9) (@jakehwll)
  • Dashboard: Replace misused useEffectEvent with correct patterns (#24525, bf885ccc71) (@DanielleMaywood)
  • Dashboard: Polish table alignment for workspace proxies (#24538, 3b0cd5bb12) (@tracyjohnsonux)
  • Reuse shared tailnet for coderd-hosted MCP workspace tools (#24460, 181e103201) (@ethanndickson)
  • Dashboard: Implement agent logs improvements (#24455, 3466806a66) (@jakehwll)
  • Server: Add chattest.OpenAI() default fake server (#24540, 5f3effd839) (@johnstcn)
  • Database: Renumber duplicate MCP migration (#24552, cb67e71835) (@ibetitsmike)
  • Server: Deflake TestSubscribeRelayDrainWithinGraceLeavesBufferRetained (#24549, f56adf5731) (@johnstcn)
  • Dashboard: Fix flaky TemplateVariablesPage submit test (#24459, a62c0c1afc) (@jakehwll)
  • Stop tracking chat title in audit logs (#24564, 4d45b69b03) (@johnstcn)
  • Dashboard: Wait for file upload before submitting create template form (#24548, 2b8a2c9c5d) (@jakehwll)
  • Rebuild modeloptionsgen when codersdk changes (#24543, ef2b3a7263) (@ethanndickson)
  • Dashboard: Show startup script failure message without restart suggestion (#24449, b4eb0e20e5) (@jeremyruppel)
  • Server: Fix TestPatchChat/Title flake by waiting for chat to settle (#24572, 148e56b5d9) (@jaaydenh)
  • Handle expired chat file attachments in replay and UI (#24518, 353e522614) (@ethanndickson)
  • Dashboard: Add bottom spacing for no-renderable assistant fallback messages (#24551, b62881eb85) (@jaaydenh)
  • Server: Use waitChatSettled in remaining title tests (#24585, 360e119b43) (@johnstcn)
  • Server: Allow deleting chat providers used in historical chats (#24568, ad1906589d) (@ethanndickson)
  • Server: Enforce ActionSSH in MCP HTTP agent connection path (#24607, 86b2db60b2) (@jdomeracki-coder)
  • Server: Detect disconnected agents in getWorkspaceConn (#24336, 78d9a220cf) (@mafredri)
  • Support Bedrock ambient AWS credentials for Agents providers (#24397, 9634739aed) (@ibetitsmike)
  • Server: Record SSE attempts on EOF (#24565, 26b64fa523) (@ThomasK33)
  • Server: Allow Anthropic per-modality ratelimit headers (#24592, b7c2c59931) (@ThomasK33)
  • Infer workspace from env in coder support bundle (#24617, 3362b5ae7e) (@EhabY)
  • Grant AsAIBridged ResourceSystem.ActionCreate for UpsertAISeatState (#24603, ec91ac5427) (@mtojek)
  • Fall back to local git watcher for chat diff drawer (#24512, 7904bed947) (@ibetitsmike)
  • fix(aibridge): track Charm Crush client and session ID (#24630, 8aa3294f06) (@dannykopping)
  • Dashboard: Make workspace notification pills keyboard accessible (#24536, 075face3cb) (@code-qtzl)
  • Dashboard: Fix workspace unhealthy dialog stories (#24637, 514b4994c6) (@jeremyruppel)
  • Server: Remove cache-miss check blocking agent recovery (#24634, 1ace519c6e) (@mafredri)
  • Server: Fix TestListChats/PinnedOnFirstPage race timeout (#24641, be1256c418) (@johnstcn)
  • Scale Testing: Make measureDeletion more reliable/less brittle (#23614, b714fe8e71) (@cstyan)
  • Scale Testing: Fix Runner.Cleanup() to delete workspaces (#23627, 7d044fa598) (@cstyan)
  • Dashboard: Remove agent settings insights menu link (#24644, 73857222ab) (@ibetitsmike)
  • Server: Deflake relay drain test for multiple timers (#24609, d9e3e206cc) (@johnstcn)
  • CLI: Fix flaky TestExpAgentsE2E/ExistingChatHistory (#24661, be011b210b) (@johnstcn)
  • Dashboard: Prevent sticky message cycling when submitting edited message (#24292, 6edb49dcfa) (@DanielleMaywood)
  • Server: Fix flaky TestSpawnComputerUseAgentInheritsContext (#24666, 2e5c7d99c2) (@johnstcn)
  • Dashboard: Improve agents page mobile view (#24508, 95386f526a) (@tracyjohnsonux)
  • Agent: Flaky TestPortableDesktop_StopRecording_WithThumbnail (#24671, 397c9fb76a) (@hugodutka)
  • Stabilize git tab during edit_files (#24648, ca14aa37c4) (@johnstcn)
  • Dashboard: Fix action bar hidden after null-returning assistant messages (#24566, e17da2f648) (@jaaydenh)
  • Promote MCP server display name to a required form field (#24652, f96f7b992f) (@david-fraley)
  • Dashboard: Use highlight-orange for warning badge text and border (#24674, e56b409873) (@tracyjohnsonux)
  • Dashboard: Remove last-checked label from git diff panel (#24675, a13f7f18e5) (@johnstcn)
  • Server: Reject API operations on archived chats (#24633, f8fe5d680b) (@mafredri)
  • Dashboard: Focus agents terminal on tab switch (#24677, c56061a09d) (@hugodutka)
  • Dashboard: Fix OpensAdminSubPanelOnMobile story on mobile viewport (#24678, 7efccfa996) (@johnstcn)
  • Server: Reject pinning child chats in patchChat handler (#24669, c602a31856) (@johnstcn)
  • Server: Prevent invalid tool results from poisoning chat history (#24663, a02339c66a) (@johnstcn)
  • fix(Makefile): run storybook tests after Go tests in pre-push (#24703, ce125831d3) (@mafredri)
  • Persist per-turn model on chats and queued messages (#24688, c7cac9debe) (@ibetitsmike)
  • Database: Rename duplicate migration 477 (#24707, 0ccfd575d0) (@johnstcn)
  • Fixes aibridge integration tests failing on windows (#24665, b8906c84a1) (@pawbana)
  • Dashboard: Add copy buttons to raw attempts (#24705, 88b62a3359) (@ThomasK33)
  • Do not clobber dynamic parameters (#24645, d958d89b6f) (@code-asher)
  • Reduce re-registration interval to 5s to prevent replica staleness flapping (#24597, 6ac25c9ece) (@sreya)
  • Honor parameter defaults in --use-parameter-defaults and SSH auto-start (#24591, 02b123518c) (@jeremyruppel)
  • Server: Sanitize Anthropic provider tool history (#24706, 0211448d09) (@ibetitsmike)
  • Resolve outsideBox style for tabs (#24561, 056203f8fc) (@jakehwll)
  • Dashboard: Persist chat draft attachments (#24709, aee85040f0) (@ibetitsmike)
  • Server: Wake after auto-promoting queued message (#24714, ed33e28b13) (@ibetitsmike)
  • Prevent malformed OpenAI Responses continuations (#24725, 62e9752acd) (@ibetitsmike)
  • Clean Bedrock headers (#24718, 99a83a2702) (@ibetitsmike)
  • Recover web push subscriptions after PWA reinstall (#24720, 069223ae26) (@kylecarbs)
  • Restore osv scanner workflow (#24702, 2446be44b8) (@CommanderK5)
  • Remember last active sidebar tab per agent session (#24631, 23b30b7285) (@jaaydenh)
  • Fall back to name lookup for UUID-shaped workspace names (#24340, d5a5be116d) (@johnstcn)
  • Dashboard: Use theme-aware color for agent row tab bottom border (#24737, 33ffedf411) (@jeremyruppel)
  • Dashboard: Align thinking disclosure (#24743, ad3095106d) (@kylecarbs)
  • Redirect OAuth2 authorization page to dashboard (#24499, a8e7f329ac) (@fioan89)
  • Dashboard: Close terminal window on command confirmation cancel (#24765, 06ebde3894) (@jdomeracki-coder)
  • Dashboard: Support archived URL query (#24742, 68c8499c9a) (@johnstcn)
  • Server: Repair Anthropic provider tool history (#24744, 99eb46dac1) (@ibetitsmike)
  • Set Bedrock streaming accept headers (#24776, dec3e98e54) (@ibetitsmike)
  • Match Bedrock streaming accept headers (#24781, 8fe11e9b14) (@ibetitsmike)
  • Server: Block chain mode when provider missing tool results (#24782, 1666bff1f9) (@johnstcn)
  • Pass agent context config explicitly instead of reading env (#24759, 3c450899ea) (@mafredri)
  • Server: Detect rate-limit 403/429 and narrow isFailedRefresh (#24334, 1926b7e658) (@mafredri)
  • Allow coderd to start with an empty DERP map when built-in DERP is disabled (#24544, 3f0e015fe5) (@geokat)
  • Server: Restore request body after capture (#24784, 1d8e29815e) (@ibetitsmike)
  • Server: Avoid data races in DERP report (#24795, 9538390107) (@geokat)
  • Dashboard: Remove Request Logs from admin menu, redirect /aibridge to sessions (#24840, feca4c25d8) (@dannykopping)
  • Add preset support to MCP tools (#24694, eabb68d89e) (@johnstcn)
  • Server: Detect concurrent refresh race to prevent cache poisoning (#24228, e67d027786) (@jasonwbarnett)
  • Server: Cut DB fan-out on agent instance-identity auth (backport #24973) (#24982, f009c17217)

Documentation

  • Replace dockerd with service docker start in Sysbox examples (#24004, 983819860f) (@matifali)
  • Add AI Bridge structured log record types and monitoring cross-link (#23979, c2592c9f12) (@jcjiang)
  • Update release calendar to reflect 2.31 as stable (#24159, 543c448b72) (@app/blinkagent)
  • Add BYOK docs, fix tool tables, add platform controls (#24178, 506fba9ebf) (@mattvollmer)
  • Rename "Security implications" to "Security posture" (#24181, d954460380) (@mattvollmer)
  • Rename AI Bridge to AI Gateway and Agent Boundaries to Agent Firewall (#24094, 7a94a683c4) (@dannykopping)
  • Documentation: Document AI Gateway Proxy private IP restrictions (#24209, d9700baa8d) (@ssncferreira)
  • Byok docs (#24032, ff6f5893df) (@evgeniy-scherbina)
  • Use coder-api-token instead of coder-session-token (#24316, 95fd3e5e23) (@evgeniy-scherbina)
  • Add BYOK compatibility table (#24315, 574979a5f3) (@evgeniy-scherbina)
  • Move copilot provider config from clients to setup (#24382, ba6bef1ac7) (@matifali)
  • Clarify copilot plans in provider config (#24433, f07a33225e) (@matifali)
  • Add coder-templates skill references to quickstart and template contribution guides (#24383, b89ddb593d) (@DevelopmentCats)
  • Add git providers and PR Insights pages for Coder Agents (#24447, cc4eaff248) (@mattvollmer)
  • Remove unused paused and completed chat statuses, add requires_action (#24264, 1feb183a87) (@david-fraley)
  • Update MCP Server description for clarity (#24655, ff1308c0b1) (@matifali)
  • Documentation: Add Governance Layer section to architecture page (#24587, fb26b39780) (@jcjiang)
  • Add v2.32 to release calendar (#24589, 135ab29aa8) (@dannykopping)
  • Documentation: Clarify MCP tools injection deprecation timeline (#24750, adea1fa28f) (@jcjiang)
  • Add deprecation warning for login-type none (#24594, 4820f13eb4) (@zenithwolf1000)
  • Clarify PR body wrapping (#24764, bf66f63ac5) (@ibetitsmike)
  • Document terminal command confirmation dialog (#24771, 1c70c9638d) (@jdomeracki-coder)
  • Add early access user secrets guide (#24735, 55ed6cfa06) (@matifali)

Code refactoring

  • Dashboard: Extract BackButton and AdminBadge (#24130, 17a71aea72) (@DanielleMaywood)
  • Dashboard: Extract ConfirmDeleteDialog component (#24128, 3a612898c6) (@DanielleMaywood)
  • Replace useEffectEvent polyfill with native React 19.2 hook (#24060, 86b919e4f7) (@DanielleMaywood)
  • Decompose AgentSettingsBehaviorPageView + remove kyleosophy (#24141, f820945d9f) (@johnstcn)
  • Dashboard: Replace !! with Boolean() for boolean coercion (#24180, 3d139c1a24) (@DanielleMaywood)
  • Dashboard: Remove mui from a few components (#24125, 224db483d7) (@aslilac)
  • Dashboard: Migrate some components from emotion to tailwind (#24182, 9d6557d173) (@aslilac)
  • Send raw typed payloads over chat WebSockets (#24148, 38d4da82b9) (@DanielleMaywood)
  • Dashboard: Convert OrganizationAutocomplete to fully controlled component (#24211, 0a14bb529e) (@johnstcn)
  • Dashboard: Address plan-mode frontend review feedback (#24426, 6bb44447d4) (@ibetitsmike)
  • Replace @mui/x-tree-view with simple tree components (#24266, 72c3563257) (@aslilac)
  • Dashboard: Replace shadcn color aliases with semantic design tokens (#24284, 23f9e26796) (@chrifro)
  • Unify subagent spawn behind spawn_subagent (#24535, f073323c89) (@ibetitsmike)
  • Dashboard: Rename border-hover token to border-secondary (#24553, 5cce3ee5f4) (@chrifro)
  • Dashboard: Split Agent Settings Behavior into focused destinations (#24574, 60186b2489) (@ibetitsmike)
  • Dashboard: Replace custom scroll implementation with react-infinite-scroll-component (#24687, 4505278a9f) (@DanielleMaywood)
  • Dashboard: Drop redundant window. prefix on browser globals (#24500, d78a78ffa1) (@aslilac)
  • Dashboard: Align tool-call and message styling (#24790, 4a91656fe5) (@kylecarbs)
  • Dashboard: Remove Stack component (#24503, 5afb297042) (@aslilac)

Performance improvements

  • Reorder declarations to fix React Compiler scope pruning (#24098, 3f7a3e3354) (@DanielleMaywood)
  • Dashboard: Add reconnect jitter to reconnectingWebsocket (#24096, f219834f5c) (@ethanndickson)
  • Dashboard: Split InlineMarkdown out of Markdown to avoid loading PrismJS in initial bundle (#24192, 19e0e0e8e6) (@jaaydenh)
  • Dashboard: Optimistically edit chat messages (#23976, a0ea71b74c) (@ethanndickson)
  • Server: Cheaper chatd org membership checks (#24361, 227f20df6a) (@ethanndickson)
  • Fix DiffViewer scroll performance (#24300, e421c2f747) (@jaaydenh)

Tests

  • Skip TestSubscribeRelayEstablishedMidStream (#24431, b9bc0ad6df) (@ethanndickson)
  • Pin DateRangePicker calendar today to caller-supplied clock (#24517, 596e55b136) (@ethanndickson)
  • Server: Deflake stale control notification test (#24545, c1421b4ead) (@ethanndickson)
  • Add regression guard for chat title masking (#24584, 38f5d3f0b2) (@johnstcn)
  • Dashboard: Add Debug panel Storybook stories (#23921, 5c316d4252) (@ThomasK33)
  • Server: Seed anthropic provider for computer_use tests (#24611, 9b5d09ebdc) (@ibetitsmike)

Continuous integration

  • Add cherry-pick to latest release workflow (#24051, ab77154975) (@f0ssel)
  • Add automatic backport workflow (#24025, a3de0fc78d) (@f0ssel)
  • Attribute cherry-pick/backport PRs to the requesting user (#24195, 2c499484b7) (@f0ssel)
  • Add cherry-pick PR check for release branches (#24121, 76cbc580f0) (@f0ssel)
  • Use GitHub App for community label org membership check (#24149, 079dc48ba0) (@f0ssel)
  • Fix texlive.svg viewBox and add icon paths to CI go filter (#24322, 47a12d26bc) (@ethanndickson)
  • Broaden workflow path filter and fix zizmor lint findings (#24323, 155e98914d) (@ethanndickson)
  • Add build provenance attestation for release binaries (#24345, d0c9571f62) (@matifali)
  • Migrate doc-check workflow from Coder Tasks to Coder Agents (#24388, 630de40160) (@stirby)
  • Add InTx linter replacing ruleguard rule (#24422, 55e525fc28) (@ethanndickson)
  • Post docs preview link on PRs that change docs (#24283, d3cc23d8ba) (@dannykopping)
  • Pass github.repository through env var (#24605, e3a1fb0c89) (@jdomeracki-coder)
  • ci(.github/workflows/contrib): skip community label for dependabot (#24660, 9f02fec3a9) (@jdomeracki-coder)
  • Add permissions section to backport.yaml (#24654, 1e21b288b9) (@matifali)

Chores

  • Revert force deploying main (#23290, 497f637f58) (@johnstcn)
  • Update to our fork of charm.land/fantasy with appendCompact perf improvement (#24142, 27e5ff0a8e) (@johnstcn)
  • chore(Makefile): use go build -o for helper binaries to reduce GOCACHE growth (#24197, f8e8f979a2) (@ibetitsmike)
  • Complete jest to vitest migration (#24216, b149433138) (@aslilac)
  • Fix typescript skill table (#24217, c67c93982b) (@aslilac)
  • Update EA text and docs link in Coder Agents UI (#24255, bd467ce443) (@david-fraley)
  • Bump aibridge version (#24368, 34f3d4a92a) (@pawbana)
  • Documentation: Remove misleading chat forking reference (#24396, dd7397b42e) (@mattvollmer)
  • Update our fork of fantasy/anthropic-sdk-go to fix MarshalJSON over-allocations (#24390, 2b68a1f4bd) (@johnstcn)
  • Upgrade to ubuntu 26.04 (#24267, d23a6959fc) (@aslilac)
  • Increase coderd_chatd_message_count histogram max bucket to 1024 (#24409, e996f6d44b) (@app/blinkagent)
  • Follow-ups from #23948 (#24377, 914a0f7830) (@dannykopping)
  • Improve design of agents behavior settings page (#24324, 509784a2a3) (@jaaydenh)
  • Update design of add users dialog (#24287, 4064b602de) (@jaaydenh)
  • Add client_type field to chats and telemetry (#24342, 3452ab3166) (@deansheather)
  • Add dogfood template for coder/vscode-coder development (#24306, 890c610e08) (@EhabY)
  • Add import block for vscode-coder template in dogfood (#24472, c0abf8f7e3) (@deansheather)
  • Add GetLatestWorkspaceBuildWithStatusByWorkspaceID query (#24441, e19b21b7d5) (@spikecurtis)
  • Split Pubsub interface into Publisher and Subscriber (#24442, 2ea27e897b) (@spikecurtis)
  • Use coder/hc-install fork to fix expired PGP key verification (#24516, 7e89534d32) (@ethanndickson)
  • Add devcontainers icon (#24478, 81bd78d1c0) (@matifali)
  • Dashboard: Demui <Avatar /> and <AvatarCard /> (#24527, 7f1b9cb648) (@jakehwll)
  • Dashboard: Demui <CodeExample /> (#24528, 9324c16c97) (@jakehwll)
  • Dashboard: Replace inline add member form with dialog on <OrganizationMembersPage /> (#24429, e186dc3222) (@jakehwll)
  • Tighten .vscode IDE and typescript configuration (#24537, 67c57abb63) (@jakehwll)
  • Dashboard: Decss the <WorkspaceBuild* /> pages (#24530, ac6c9452c0) (@jakehwll)
  • Bump hashicorp/hc-install to v0.9.4 and drop coder fork replace (#24547, bd3ed18fb1) (@ethanndickson)
  • Add no-emdash/endash rule to agent instructions and CI lint (#24375, 623e72d72d) (@mafredri)
  • Move aibridge library code into coder repo (#24190, e00e85765b) (@pawbana)
  • Examples: Update incus template (#24616, 68508e1fd3) (@johnstcn)
  • chore(dogfood): add CODER_AGENT_EXP_MCP_CONFIG_FILES env var (#24664, 7e29a67b50) (@mafredri)
  • De-css <UserSettingsPage /> children (#24647, 537e35dd94) (@jakehwll)
  • Deprecate /api/v2/aibridge/interceptions endpoint (#24670, a8613b2209) (@dannykopping)
  • Bump coder/fantasy to include gpt-5.5 Responses API support (#24712, a497d934db) (@app/blinkagent)
  • Uprev coder/terraform-provider-coder to v2.16.0 (#24719, ef6e452825) (@zedkipp)
  • Upgrade to pnpm 10.33 (#24746, 12e9f5bb61) (@aslilac)
  • Include pgcoordinator schema changes in 2.33 (#24931, 17635dde5c)

Compare: v2.32.1...v2.33.0

Container image

  • docker pull ghcr.io/coder/coder:2.33.0

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.29.12 Bug fix

Fixed race condition in token refresh for external authentication.

Full changelog

Changelog

Bug fixes

  • Bump hashicorp/hc-install to v0.9.4 and Go to 1.25.8 (backport to 2.29) (#24905, 308b3a0845)
  • fix(externalauth): prevent race condition in token refresh with optimistic locking (backport to 2.29) (#22904, 63a9280a6f)
  • Server: Save refreshed token before validation (backport to 2.29) (#24332, 4bb1fd1a84)
  • Server: Backport frame-ancestors CSP fixes to 2.29 (#24474, #24529) (#24808, 0ba40523c8)

Compare: v2.29.11...v2.29.12

Container image

  • docker pull ghcr.io/coder/coder:2.29.12

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.31.11 Bug fix
Security fixes
  • Updated frame-ancestors CSP to mitigate embedding attacks
Full changelog

Stable (since May 01, 2026)

Changelog

Bug fixes

  • fix(externalauth): prevent race condition in token refresh with optimistic locking (backport to 2.31) (#22904, bd06fc5d84)
  • Server: Save refreshed token before validation (backport to 2.31) (#24332, 1a078790b1)
  • Server: Backport frame-ancestors CSP fixes to 2.31 (#24474, #24529) (#24807, 49be5f31d3)

Compare: v2.31.10...v2.31.11

Container image

  • docker pull ghcr.io/coder/coder:2.31.11

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.29.11 Breaking risk
Breaking changes
  • Terminal command confirmation dialog
Full changelog

Changelog

BREAKING CHANGES

  • fix!: terminal command confirmation dialog (cherry-pick to 2.29) (#24769, 72699ce15f)

Bug fixes

  • Dashboard: Backport verifyParameters flake fixes to 2.29 (#24796, 455f4e60e9)

Compare: v2.29.10...v2.29.11

Container image

  • docker pull ghcr.io/coder/coder:2.29.11

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.31.10 Breaking risk
Breaking changes
  • Terminal command confirmation dialog
Full changelog

Stable (since April 28, 2026)

Changelog

BREAKING CHANGES

  • fix!: terminal command confirmation dialog (cherry-pick to 2.31) (#24768, 680c3c1db8)

Bug fixes

  • Widen engines.node to include Node.js 24 LTS (#24419, a4e873e64f)
  • Backport Go 1.25.9 and dependency fixes (#24329, 8f24f4fac8)
  • Bump hashicorp/hc-install to v0.9.4 and drop coder fork replace (#24547, 173607c58c) (@ethanndickson)
  • fix(scripts): fix Windows version format for RC builds (#23542, e58ecf5839)

Compare: v2.31.9...v2.31.10

Container image

  • docker pull ghcr.io/coder/coder:2.31.10

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.32.1 Breaking risk
Breaking changes
  • Terminal command confirmation dialog
Full changelog

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!: terminal command confirmation dialog (cherry-pick to 2.32) (#24767)

Bug Fixes

  • fix: bump hashicorp/hc-install to v0.9.4 (#24547) (#24576)
  • fix(coderd/externalauth): save refreshed token before validation (#24332) (#24579)
  • fix(site): implement agent logs improvements (#24455) (#24733)
  • fix: restore kebab menu flex (#24359) (#24734)
  • fix: widen engines.node to include Node.js 24 LTS (#24419) (#24468)
  • fix(coderd/x/chatd): hoist system prompt fetch out of chat creation transaction (#24369) (#24415)
  • fix: prevent 'See all templates' from overlapping template list in New Workspace dropdown (#24356) (#24386)

Compare: v2.32.0...v2.32.1

Container image

  • docker pull ghcr.io/coder/coder:2.32.1

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.32.0 Breaking risk
Breaking changes
  • Regular users (non-owners, non-auditors) can no longer read AI Bridge interception data
  • `coder groups list -o json` output changed to flat structure
Notable features
  • Coder Agents Early Access with voice-to-text chat, cost analytics dashboards, and agent desktop recording
  • AI Governance add-on with session auditing, usage limits, and license management
  • Service Accounts (Premium) for machine and automation use cases
v2.30.7 Maintenance

Minor fixes and improvements.

Full changelog

Changelog

Performance improvements

  • Cap count queries, use native UUID ops for audit/conn logs (backport #23835) (#24133, 77e8bc490)

Chores

  • Backport high and critical Iron Bank dependency fixes (#24109, 756cc3a60)

Compare: v2.30.6...v2.30.7

Container image

  • docker pull ghcr.io/coder/coder:2.30.7

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.31.9 Security relevant
Security fixes
  • dep: High and critical security vulnerabilities in dependencies
Notable features
  • Performance optimization: cap count queries and use native UUID operations for audit and connection logs
Full changelog

Stable (since April 09, 2026)

Changelog

Performance improvements

  • Cap count queries, use native UUID ops for audit/conn logs (backport #23835) (#24129, 2f5d21d1b)

Chores

  • Backport Go 1.25.8 bump to release/2.31 (#23941, 2587364ae)
  • Backport high and critical Iron Bank dependency fixes (#24110, 960b8e7fc)

Compare: v2.31.8...v2.31.9

Container image

  • docker pull ghcr.io/coder/coder:2.31.9

Install/upgrade

Refer to our docs to install or upgrade Coder, or use a release asset below.

v2.33.0-rc.0 New feature
Breaking changes
  • Renamed 'chats' to 'Coder Agents' causing UI and documentation references to change
  • Removed per-turn agent resolution queries altering chat state handling
Notable features
  • Agent selection via suffix naming
  • Persist workspace agent binding across chat turns
  • Event-driven stream acquisition removes polling delay
v2.30.6 Bug fix

Updated aibridge library to fix AWS Bedrock integration and patched runtime to latest version.

v2.29.9 Bug fix

Fixed link opening behavior for app links and organization member removal UI errors, updated runtime dependencies.

v2.30.5 Bug fix

Fixed app link behavior and added organization labels to observability metrics for better multi-tenant monitoring.

v2.31.6 Bug fix

Fixed app link handling to respect parameters and improved agent response status codes.

v2.30.4 Bug fix

Fixed UI crashes in organization management, improved network timeout retry logic, and upgraded aibridge for API compatibility.

v2.31.5 Bug fix

Fixed build duration metric emission for devcontainer subagents, UI errors when removing organization members, and networking timeout handling.

v2.31.4 New feature
Notable features
  • Prometheus collector for DERP server expvar metrics
v2.31.3 Bug fix

Fixed OIDC token refresh behavior in test scenarios with fake identity providers.

v2.31.2 Maintenance

Implemented premature OIDC token refresh near expiry to prevent authentication failures during workspace operations.

v2.30.3 Bug fix

Fixed DERP registration panic, corrected Unicode string truncation handling, and updated runtime to latest patch version.

v2.31.1 Breaking risk
Breaking changes
  • Tokens expire by default
  • Auto-creation consent prompt required
  • Deprecated Prometheus metrics removed
Notable features
  • AI governance dashboard and filtering
  • Task pause/resume operations
  • Organization management CLI commands
v2.29.7 Breaking risk
Breaking changes
  • Consent prompt required for auto-creation with prefilled parameters
Notable features
  • Consent prompt for auto-creation with prefilled parameters
  • soft_limit to limit configuration conversion
v2.30.1 Bug fix

Fixed AI Bridge to preserve stream property in chat completions calls and reverted SSH ControlMaster multiplexing break.

v2.29.6 Bug fix

Backported critical fixes for agent shutdown exit codes, logging improvements, prebuild claim transaction handling, and nil panic resolution.

v2.30.0 Breaking risk
Breaking changes
  • Experimental /api/experimental/aibridge/* endpoints removed; use /api/v2/aibridge/*
  • PKCE enabled by default for unknown OAuth providers; set PKCE_METHODS=none to disable
  • SFTP/SCP connections use agent configured directory instead of $HOME
Notable features
  • Cached Terraform modules for faster workspace startup
  • AI Bridge GA with Responses API and Proxy Mode
  • Agent Boundaries GA with rules engine and structured logging
v2.29.5 Security relevant
Security fixes
  • CVE-2025-15467 - OpenSSL CMS message parsing buffer overflow
v2.28.10 Security relevant
Security fixes
  • CVE-2025-15467 - OpenSSL CMS message parsing buffer overflow
v2.29.4 Bug fix

Fixed multiple accounting issues related to AI task usage tracking and billing calculations.

v2.28.9 Bug fix

Fixed an issue preventing users from stopping or deleting workspaces after exceeding AI usage limits.

v2.27.11 Bug fix

Fixed resource leak preventing inbox WebSocket connections from properly closing when clients disconnect.

v2.29.3 Bug fix

Fixed resource leak preventing inbox WebSocket connections from properly closing when clients disconnect.

v2.28.8 Bug fix

Fixed resource leak preventing inbox WebSocket connections from properly closing when clients disconnect in stable release.

v2.27.10 Maintenance

Backported CLI improvements and updated boundary version dependency to maintain compatibility for v2.27 branch.

v2.28.7 Maintenance

Backported CLI improvements and updated boundary version dependency for stable v2.28 release branch.

v2.29.2 Maintenance

Backported CLI improvements, boundary version updates, migration fixes, and expanded protocol support for v2.29 branch.

Beta — feedback welcome: [email protected]