Releases: coder/coder
v2.34.0-rc.0
Changelog
Note
This is a release candidate (RC) for testing purposes. It is not recommended for production use. Please report any issues you encounter. Learn more about our Release Schedule.
BREAKING CHANGES
- chore!: remove
api.tsunnecessary calls (#22168, 4caa528) (@jakehwll) - Dashboard: Require confirmation before executing terminal command from URL (#24650, 66abd8a) (@Shelnutt2)
Features
- Sort AI sessions by last prompt time (#24440, c23abc6) (@jeremyruppel)
- Add chatd tool call error metrics and logging (#24559, 72e3ae9) (@johnstcn)
- Add dependabot security backport labels (#24484, 06d7fc5) (@CommanderK5)
- Add lima incus example (#24640, f5ccf68) (@johnstcn)
- Dashboard: Allow disengaging plan mode from Planning badge (#24651, 50dbb3d) (@david-fraley)
- Migrate agents-access to org-scoped system role for proper chat RBAC (#24438, b5a6255) (@johnstcn)
- Snapshot explore subagent tool entitlements (#24638, dbcc654) (@ibetitsmike)
- Add general subagent model override (#24610, 3d90546) (@ibetitsmike)
- Add collapsible thinking blocks with configurable display mode (#24635, 3a9a60d) (@DanielleMaywood)
- Dashboard: Add Charm Crush client icon to AI Bridge UI (#24662, 346b462) (@dannykopping)
- Auto-archive inactive chats with audit trail (#24642, a876287) (@johnstcn)
- Add alert with link to template agent skill on page after template creation (#24588, c488658) (@DevelopmentCats)
- Dashboard: Opt AI Gateway pages into React Compiler (#24713, 780aa6c) (@jeremyruppel)
- Add admin UI control for chat auto-archive days (#24704, 2f26903) (@johnstcn)
- Plumb user secrets through provisioner chain to terraform (#24542, 79735f2) (@zedkipp)
- Dashboard: Add duplicate model action (#24728, ebed01a) (@ibetitsmike)
- Chat auto-archive owner digest notifications (#24643, 70d6efa) (@johnstcn)
- Add after_id pagination for chat messages (#24531, 5222db8) (@david-fraley)
- Reload MCP config on change via lazy stat-on-request (#24700, 881df9a) (@mafredri)
- Add
--skip-setupflag to develop script (#24794, dcb3216) (@aslilac) - Add hostAliases support to Coder helm chart (#24729, 76242f8) (@rowansmithau)
- Add link to skills on create-a-template page (#24710, 88c469c) (@DevelopmentCats)
- Add role selector in the create user form (#24711, 0754016) (@jeremyruppel)
Bug fixes
- Grant AsAIBridged ResourceSystem.ActionCreate for UpsertAISeatState (#24603, ec91ac5) (@mtojek)
- Fall back to local git watcher for chat diff drawer (#24512, 7904bed) (@ibetitsmike)
- fix(aibridge): track Charm Crush client and session ID (#24630, 8aa3294) (@dannykopping)
- Dashboard: Make workspace notification pills keyboard accessible (#24536, 075face) (@code-qtzl)
- Dashboard: Fix workspace unhealthy dialog stories (#24637, 514b499) (@jeremyruppel)
- Server: Remove cache-miss check blocking agent recovery (#24634, 1ace519) (@mafredri)
- Server: Fix TestListChats/PinnedOnFirstPage race timeout (#24641, be1256c) (@johnstcn)
- Scale Testing: Make measureDeletion more reliable/less brittle (#23614, b714fe8) (@cstyan)
- Scale Testing: Fix Runner.Cleanup() to delete workspaces (#23627, 7d044fa) (@cstyan)
- Dashboard: Remove agent settings insights menu link (#24644, 7385722) (@ibetitsmike)
- Server: Deflake relay drain test for multiple timers (#24609, d9e3e20) (@johnstcn)
- CLI: Fix flaky TestExpAgentsE2E/ExistingChatHistory (#24661, be011b2) (@johnstcn)
- Dashboard: Prevent sticky message cycling when submitting edited message (#24292, 6edb49d) (@DanielleMaywood)
- Server: Fix flaky TestSpawnComputerUseAgentInheritsContext (#24666, 2e5c7d9) (@johnstcn)
- Dashboard: Improve agents page mobile view (#24508, 95386f5) (@tracyjohnsonux)
- Agent: Flaky TestPortableDesktop_StopRecording_WithThumbnail (#24671, 397c9fb) (@hugodutka)
- Stabilize git tab during edit_files (#24648, ca14aa3) (@johnstcn)
- Dashboard: Fix action bar hidden after null-returning assistant messages (#24566, e17da2f) (@jaaydenh)
- Promote MCP server display name to a required form field (#24652, f96f7b9) (@david-fraley)
- Dashboard: Use highlight-orange for warning badge text and border (#24674, e56b409) (@tracyjohnsonux)
- Dashboard: Remove last-checked label from git diff panel (#24675, a13f7f1) (@johnstcn)
- Server: Reject API operations on archived chats (#24633, f8fe5d6) (@mafredri)
- Dashboard: Focus agents terminal on tab switch (#24677, c56061a) (@hugodutka)
- Dashboard: Fix OpensAdminSubPanelOnMobile story on mobile viewport (#24678, 7efccfa) (@johnstcn)
- Server: Reject pinning child chats in patchChat handler (#24669, c602a31) (@johnstcn)
- Server: Prevent invalid tool results from poisoning chat history (#24663, a02339c) (@johnstcn)
- fix(Makefile): run storybook tests after Go tests in pre-push (#24703, ce12583) (@mafredri)
- Persist per-turn model on chats and queued messages (#24688, c7cac9d) (@ibetitsmike)
- Database: Rename duplicate migration 477 (#24707, 0ccfd57) (@johnstcn)
- Fixes aibridge integration tests failing on windows (#24665, b8906c8) (@pawbana)
- Dashboard: Add copy buttons to raw attempts (#24705, 88b62a3) (@ThomasK33)
- Do not clobber dynamic parameters (#24645, d958d89) (@code-asher)
- Reduce re-registration interval to 5s to prevent replica staleness flapping (#24597, 6ac25c9) (@sreya)
- Honor parameter defaults in --use-parameter-defaults and SSH auto-start (#24591, 02b1235) (@jeremyruppel)
- Server: Sanitize Anthropic provider tool history (#24706, 0211448) (@ibetitsmike)
- Resolve
outsideBoxstyle for tabs (#24561, 056203f) (@jakehwll) - Dashboard: Persist chat draft attachments (#24709, aee8504) (@ibetitsmike)
- Server: Wake after auto-promoting queued message (#24714, ed33e28) (@ibetitsmike)
- Prevent malformed OpenAI Responses continuations (#24725, 62e9752) (@ibetitsmike)
- Clean Bedrock headers (#24718, 99a83a2) (@ibetitsmike)
- Recover web push subscriptions after PWA reinstall (#24720, 069223a) (@kylecarbs)
- Restore osv scanner workflow (#24702, 2446be4) (@CommanderK5)
- Remember last active sidebar tab per agent session (#24631, 23b30b7) (@jaaydenh)
- Fall back to name lookup for UUID-shaped workspace names (#24340, d5a5be1) (@johnstcn)
- Dashboard: Use theme-aware color for agent row tab bottom border (#24737, 33ffedf) (@jeremyruppel)
- Dashboard: Align thinking disclosure (#24743, ad30951) (@kylecarbs)
- Redirect OAuth2 authorization page to dashboard (#24499, a8e7f32) (@fioan89)
- Dashboard: Close terminal window on command confirmation cancel (#24765, 06ebde3) (@jdomeracki-coder)
- Dashboard: Support archived URL query (#24742, 68c8499) (@johnstcn)
- Server: Repair Anthropic provider tool history (#24744, 99eb46d) (@ibetitsmike)
- Set Bedrock streaming accept headers (#24776, dec3e98) (@ibetitsmike)
- Match Bedrock streaming accept headers (#24781, 8fe11e9) (@ibetitsmike)
- Server: Block chain mode when provider missing tool results (#24782, 1666bff) (@johnstcn)
- Pass agent context config explicitly instead of reading env (#24759, 3c45089) (@mafredri)
- Server: Detect rate-limit 403/429 and narrow isFailedRefresh (#24334, 1926b7e) (@mafredri)
- Allow coderd to start with an empty DERP map when built-in DERP is disabled (#24544, 3f0e015) (@geokat)
- Server: Restore request body after capture (#24784, 1d8e298) (@ibetitsmike)
- Server: Avoid data races in DERP report (#24795, 9538390) (@geokat)
- Export chatd.Start to separate server lifecycle (#24761, dd49a81) (@mafredri)
- Preserve stream state on interrupt, fix auto-promote error handling (#24314, 782b716) (@mafredri)
- Dashboard: Preserve ?archived in sibling navigation (#24777, 1856864) (@johnstcn)
- Record debug runs for proposed chat titles (#24820, ab75e46) (@ThomasK33)
- Networking: Preserve DNS hosts across control plane reconnections (#24253, 54d650e) (@f0ssel)
- CLI: Extend
exp scaletest cleanupto properly clean up prebuilds (#23628, 950660e) (@cstyan) - Dashboard: Fix download log size display (#24758, 25ae415) (@geokat)
Documentation
- Update MCP Server description for clarity (#24655, ff1308c) (@matifali)
- Documentation: Add Governance Layer section to architecture page (#24587, fb26b39) (@jcjiang)
- Add v2.32 to release calendar (#24589, 135ab29) (@dannykopping)
- Documentation: Clarify MCP tools injection deprecation timeline (#24750, adea1fa) (@jcjiang)
- Add deprecation warning for login-type none (#24594, 4820f13) (@zenithwolf1000)
- Clarify PR body wrapping (#24764, bf66f63) (@ibetitsmike)
- Document terminal command confirmation dialog (#24771, 1c70c96) (@jdomeracki-coder)
- Add early access user secrets guide (#24735, 55ed6cf) (@matifali)
- Server: Improve edit_files tool description (#24627, 5ceca94) (@mafredri)
Code refactoring
- Dashboard: Split Agent Settings Behavior into focused destinations (#24574, 60186b2) (@ibetitsmike)
- Dashboard: Replace custom scroll implementation with react-infinite-scroll-component (#24687, 4505278) (@DanielleMaywood)
- Dashboard: Drop redundant window. prefix on browser globals (#24500, d78a78f) (@aslilac)
- Dashboard: Align tool-call and message styling (#24790, 4a91656) (@kylecarbs)
- Dashboard: Remove
Stackcomponent (#24503, 5afb297) (@aslilac)
Performance improvements
Continuous integration
- ci(.github/workflows/contrib): skip community label for dependabot (#24660, 9f02fec) (@jdomeracki-coder)
- Add permissions section to backport.yaml (#24654, 1e21b28) (@matifali)
- Use env var instead of passing winget token inline (#24387, f9068c2) (@mdanish-kh)
Chores
v2.32.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.
BREAKING CHANGES
- fix!: terminal command confirmation dialog (cherry-pick to 2.32) (#24767)
When a
?command= parameteris present, a confirmation dialog is shown before the command executes. The user must click Run command to proceed or Cancel to close the terminal window. This prevents external links from silently executing arbitrary commands in a workspace.Template-configured apps that use the command attribute in
coder_appare trusted and bypass the confirmation dialog. These apps use the?app=parameter internally, which resolves the command from the agent's app list. See docs.
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.31.10
Stable (since April 28, 2026)
Changelog
BREAKING CHANGES
When a
?command= parameteris present, a confirmation dialog is shown before the command executes. The user must click Run command to proceed or Cancel to close the terminal window. This prevents external links from silently executing arbitrary commands in a workspace.Template-configured apps that use the command attribute in
coder_appare trusted and bypass the confirmation dialog. These apps use the?app=parameter internally, which resolves the command from the agent's app list. See docs.
Bug fixes
- Widen engines.node to include Node.js 24 LTS (#24419, a4e873e)
- Backport Go 1.25.9 and dependency fixes (#24329, 8f24f4f)
- Bump hashicorp/hc-install to v0.9.4 and drop coder fork replace (#24547, 173607c) (@ethanndickson)
- fix(scripts): fix Windows version format for RC builds (#23542, e58ecf5)
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.29.11
Changelog
BREAKING CHANGES
When a
?command= parameteris present, a confirmation dialog is shown before the command executes. The user must click Run command to proceed or Cancel to close the terminal window. This prevents external links from silently executing arbitrary commands in a workspace.Template-configured apps that use the command attribute in
coder_appare trusted and bypass the confirmation dialog. These apps use the?app=parameter internally, which resolves the command from the agent's app list. See docs.
Bug fixes
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.33.0-rc.3
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 agent loop & models
- Plan mode with restricted tool boundary (#24236)
- Explore mode as a subagent-only modality (#24448)
- Allow approved external MCP tools in root plan mode (#24509)
- Support multiple agents with shared instance-identity auth (#24325)
- Internal subagent model override wiring (#24399)
- Accept
xhighreasoning effort for Anthropic (#24439) - AWS SDK default credential chain + ambient Bedrock credentials for Agents providers (#24346, #24397)
- Unify subagent spawn behind
spawn_subagent(#24535)
Chat UX
- Rename agent chat title from the top bar (#24489)
- Surface upstream provider error details in chat callout (#24546)
- Display file attachments in the chat UI (#24281)
- Agent-created file attachments in chat (server side) (#24280)
- Show MCP settings and hide insights in the agents sidebar (#24428)
- Bottom spacing for no-renderable-assistant fallback messages (#24551)
- Truncate long workspace names in the chat input toolbar (#24412)
- Insert newline on mobile Enter (#24498)
- Agents logs improvements (#24455)
- Experimental agents TUI on the CLI (#24150)
Chats API / tools
start_workspacetool now accepts workspace parameters (#24434)- Chats audit surface:
database.Chatis now auditable (#24485) - Description tags on tool parameter structs (#24394)
- Allow deleting chat providers that were used in historical chats (#24568)
- Handle expired chat file attachments in replay and UI (#24518)
- Move
OnChatUpdatedafter the agent is ready in create/start workspace (#24410)
Observability & debug
- Chat debug service and summary aggregation (#23916)
- Chat debug HTTP handlers + API docs (#23918)
- Wire debug logging into chat lifecycle (#23917)
- Chat debug API layer and panel utilities (dashboard) (#23919)
- Debug panel components and settings (dashboard) (#23920)
- Label chatd metrics by model, add stream-state diagnostics (#24475)
- PR status summary added to telemetry snapshots (#24379)
client_typefield added to chats and telemetry (#24342)
Bug fixes
- Detect disconnected agents in
getWorkspaceConnso tool calls no longer hang indefinitely (#24336) - Auto-update workspace to the active template version on chat start (#24424)
- Allow deleting chat providers referenced by historical chats (#24568)
- Exclude subagent chats from sidebar pagination (#24404)
- Sort child chats newest-first and prepend on creation (#24524)
- Associate computer-use recordings with chats (fixes orphaned recordings) (#24471)
- Re-fetch context files and skills from the workspace on each turn (#24360)
- Server-side diffs + stricter fuzzy splicing for
edit_files(#24454) - Reuse the shared tailnet for coderd-hosted MCP workspace tools (#24460)
- Reap idle chatd stream states on a timer (#24476)
- Reduce relay reconnect spam (#24495)
- Classify HTTP/2 transport failures as retryable timeouts (#24502)
- Record SSE attempts on EOF (#24565)
- Allow Anthropic per-modality ratelimit headers (#24592)
- Search by label in
MultiSelectComboBox(fixes allowed-templates search) (#24421) - Prevent workspace icon from shrinking in chat pill (#24521)
- Stop tracking chat title in audit logs (#24564)
- Add regression guard for chat title masking (#24584)
- Resolve flaky
TestPatchChat/Titleby waiting for chat to settle (#24572) - Seed Anthropic provider for
computer_usetests (#24611)
Security
- Enforce workspace authz on
watchChatGit(#24477)
Documentation
- Add git providers and PR Insights pages for Coder Agents
- Remove unused
paused/completedchat statuses, addrequires_action
Compare: v2.33.0-rc.2...v2.33.0-rc.3
Container image
docker pull ghcr.io/coder/coder:2.33.0-rc.3
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.33.0-rc.2
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
- Agent: Add dynamic tools support for chat API (#24036, b969d66) (@kylecarbs)
- Agent: Add CreatedAt to tool-call and tool-result ChatMessageParts (#24101, 35c26ce) (@kylecarbs)
- Agent: Add organization scoping to chats (#23827, 22062ec) (@johnstcn)
- Agent: Add types, context, and model normalization (#23914, 8382e96) (@ThomasK33)
- Agent: Add CLI commands for managing chat context from workspaces (#24105, 391b22a) (@kylecarbs)
- Agent: Send raw typed payloads over chat WebSockets (#24148, 38d4da8) (@DanielleMaywood)
- Desktop & Recordings
- Agent: Hide agents desktop tab when workspace is stopped (#24191, 33d9d0d) (@hugodutka)
- Agent: Desktop recording thumbnail backend (#24022, efb19eb) (@hugodutka)
- Agent: Desktop recording thumbnail frontend (#24023, 128a7c2) (@hugodutka)
Chat UX
- Agent: Show build logs in chat for start_workspace and create_workspace tools (#24194, cb0b84a) (@DanielleMaywood)
- Agent: Add full-width chat layout toggle (#24307, a414d37) (@kylecarbs)
- Agent: Expose workspace apps in chat workspace pill (#24295, e317f3b) (@DanielleMaywood)
- Agent: Link group names to group page in agents limit settings (#24212, 214351e) (@aslilac)
- Agent: Use VSCode icons instead of ExternalLinkIcon on agent page workspace selector (#24370, 49d8c9e) (@DanielleMaywood)
- Agent: Update EA text and docs link in Coder Agents UI (#24255, bd467ce) (@david-fraley)
Observability
- Agent: Add Prometheus metrics for chatd subsystem (#24371, d7439a9) (@johnstcn)
- Agent: Add chat debug log tables, queries, and SDK types (#23913, 6ab3012) (@ThomasK33)
- Agent: Server: Add recorder, transport, and redaction (#23915, 4651ca5) (@ThomasK33)
Performance
- Agent: Optimistically edit chat messages (#23976, a0ea71b) (@ethanndickson)
- Agent: Cheaper chatd org membership checks (#24361, 227f20d) (@ethanndickson)
- Agent: Update fork of fantasy/anthropic-sdk-go to fix MarshalJSON over-allocations (#24390, 2b68a1f) (@johnstcn)
- Agent: Pin fixed anthropic/fantasy forks for streaming token accounting (#24077, 5902351) (@ibetitsmike)
Bug Fixes
- Agent: Fix agents right panel layout on small landscape viewports (#24161, 477d6d0) (@hugodutka)
- Agent: Revert auto-assign agents-access role enabled (#24170, 7b0421d) (@johnstcn)
- Agent: Add padding below thinking-only assistant messages (#24140, f957981) (@jaaydenh)
- Agent: Fix 4px layout shift on streaming commit in chat (#24203, 1a3a92b) (@jaaydenh)
- Agent: Add bottom spacing for sources-only assistant messages (#24202, 76d89f5) (@jaaydenh)
- Agent: Sort pinned chats first in GetChats pagination (#24222, a62ead8) (@mafredri)
- Agent: Show "Preparing" in workspace pill during agent startup scripts (#24286, 39ceb8c) (@DanielleMaywood)
- Agent: Validate individual edit entries in parseEditFilesArgs (#24301, 1458861) (@DanielleMaywood)
- Agent: Use per-chat plan file paths (#24268, a554de3) (@ibetitsmike)
- Agent: Address post-merge review findings for chat org scoping (#24297, 6194bd6) (@johnstcn)
- Agent: Hoist system prompt fetch out of chat creation transactions (#24369, e7883d4) (@ethanndickson)
- Agent: Prevent empty organization_id when permittedOrgs resolves to empty (#24393, 91446ac) (@DanielleMaywood)
- Agent: Stop group spend limits from leaking across org boundaries (#24294, c552f9f) (@johnstcn)
- Agent: Scroll when request logs tool call is huge (#24162, de61ac5) (@jeremyruppel)
- Agent: Hide bottom spacer on last session thread (#24248, 4d4266a) (@jeremyruppel)
- Agent: Remove double border at top of RightPanel (#24364, 0360bc3) (@DanielleMaywood)
Testing & Stability
- Agent: Resolve flaky TestWatchChats/DiffStatusChangeIncludesDiffStatus (#24298, 69917b4) (@kylecarbs)
- Agent: Resolve idle timeout recording test flake on macOS (#24240, 8dff1cb) (@kylecarbs)
Compare: v2.33.0-rc.2...v2.33.0-rc.3
Container image
docker pull ghcr.io/coder/coder:2.33.0-rc.3
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.32.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
-
chore!: remove members' ability to read their own AI Bridge interceptions (#23320)
Regular users (non-owners, non-auditors) can no longer read AI Bridge interception data, including their own. Only owners and auditors retain read access. This tightens the RBAC surface to prevent insiders from observing what data is tracked.
-
fix(cli)!:
coder groups list -o jsonoutput structure changed (#22923)The JSON output is now a flat structure matching other
coder list -o jsoncommands. Previously this command returned empty zero-value structs due to a bug, so no working consumer of the old format could exist.
DEPRECATIONS
- AI Gateway (previously known as AI Bridge): injected MCP tools are now deprecated (#23031); this feature will remain functional but will be replaced with an MCP Gateway in a future release.
Features
Coder Agents
Coder Agents is newly introduced in Early Access. See our getting started guide to enable and start using it.
- Voice-to-text input in agent chat (#23022)
- Pinned chats with drag-to-reorder in the sidebar (#23615)
- Chat cost analytics dashboard for admins — tracks spend, model usage, and trends (#23037, #23215)
- PR Insights analytics dashboard — shows PRs created/merged by AI agents, merge rates, lines shipped, cost per merged PR (#23215)
- Agent desktop recordings — record and replay agent desktop sessions (#23894, #23895)
- Per-chat system prompt override per conversation (#24053)
- Chat spend limits with inline usage indicator (#23071, #23072) — configurable via platform controls
- Per-user per-model compaction threshold overrides (#23412)
- Skills — agents read context files and discover skills locally; skills persist as message parts (#23935, #23748) — see extending agents
- Suffix-based agent selection — select an agent model by name suffix (#23741)
- Provider key policies and per-user provider settings (#23751) — see models & providers
- Manual chat title regeneration (#23633)
- Chat read/unread indicator in sidebar (#23129)
- Chat labels (#23594)
- Workspace and agent badges in chat top bar and workspace list (#23964, #23453)
- File/image attachments in chat input; large pasted text auto-converts to file attachments (#22604, #23379)
- Inline file reference rendering in user messages (#23131)
propose_plantool for markdown plan proposals (#23452)- Provider-native web search tools in agent chats (#22909)
- Workspace awareness system message automatically included on chat creation (#23213)
- Workspace TTL automatically extended on chat heartbeat (#23314)
- Global chat workspace TTL deployment-wide setting (#23265)
- Template allowlist for chats — restrict which templates agents can create workspaces from (#23262)
- Chat-access site-wide role to gate chat creation (#23724)
- Collapsible archived agents section in sidebar (#22551)
- Scroll-to-bottom button, keyboard shortcuts, and ArrowUp to edit last message in agent chat (#23212, #22417, #23705)
- Diff viewer with word-level inline highlighting and intra-file virtualization (#23423, #23363)
- Terminal panel in chat sidebar (#23231)
- Computer tool screenshots rendered as images and viewable in lightbox (#23074)
- Structured error/retry UX for agent chat (#23282)
Coder Agents can now connect to external MCP servers and expose workspace-level MCP tools. See extending agents for configuration details. To configure Coder itself as an MCP server for external agents (Claude, Cursor, etc.), see the MCP server docs.
- MCP server admin UI to configure external MCP servers (#23301)
- MCP server picker in agent chat UI (#23470)
- Auto-discover OAuth2 config for MCP servers via RFC 7591 DCR (#23406)
- PKCE support for MCP server OAuth2 flow (#23503)
- Workspace MCP tool discovery and proxying for chat (#23680)
- MCP tool annotations exposed for tool grouping (#23195)
- Collapsed MCP tool results by default (#23568)
AI Governance
See the AI Governance Add-On docs for setup and configuration.
- AI Governance seat capacity banners (#23411)
- AI session auditing (#23660) — sessions logged to audit logs
- Usage limit override inline editing (#23380)
- Bar charts for Premium and AI Governance add-on license usage (#23442)
- AI add-on column in Users and Organization Members tables (#23291)
- Add-on license display UI (#22948)
- Enabled toggle for chat models in admin panel (#23665)
- BYOK (Bring Your Own Key) — users can supply their own LLM credentials (#23013) — see models & providers
- ChatGPT support for AI Bridge (#23822)
- Multiple Copilot providers — register both business and enterprise upstreams (#23811)
- AI Bridge Sessions — list, thread detail, and client filter pages (#23388, #23391)
- Model filter on AI Bridge request logs (#22230)
provider_namecolumn added to interceptions (#23960)
Service Accounts (new, Premium)
A new first-class user type for machine/automation use cases. See headless auth docs for details.
- Create service accounts via the API or
coder users create --service-account(#22698, #23186) - UI for creating and managing service accounts (#23140)
- Workspace sharing mode restricted to service accounts (#23093, #23327)
- Filter workspace and user views by service account (#23468)
- Service accounts are a Premium feature (#24020)
Security & Networking
- Block CONNECT tunnels to private/reserved IP ranges in AI Bridge Proxy — prevents the proxy from reaching internal networks; Coder access URL is always exempt (#23109)
- Disable reverse/local port forwarding per agent via
--block-reverse-port-forwardingand--block-local-port-forwardingagent flags (#24026) — see port forwarding - Rate limiting by user instead of IP ...
v2.29.10
Changelog
Bug fixes
- Backport dogfood CI fixes to release/2.29 (#24245, f8edef2)
- Dashboard: Resolve WS/HTTP race condition on workspace parameters page (backport v2.29) (#24249, ccba573)
- Bump coder/tailscale to pick up RTM_MISS fix (#24187, 0aaeb1e) (@ethanndickson)
Performance improvements
Chores
- Remove trivy GHA job (backport v2.29) (#23860, 399623b)
- Update Go from 1.25.6 to 1.25.7 (#22042, b0cfd1a)
Compare: v2.29.9...v2.29.10
Container image
docker pull ghcr.io/coder/coder:2.29.10
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.31.9
Stable (since April 09, 2026)
Changelog
Performance improvements
Chores
- Backport Go 1.25.8 bump to release/2.31 (#23941, 2587364)
- Backport high and critical Iron Bank dependency fixes (#24110, 960b8e7)
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.31.8
Stable (since April 09, 2026)
Changelog
Bug fixes
Chores
Compare: v2.31.7...v2.31.8
Container image
docker pull ghcr.io/coder/coder:v2.31.8
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.