Releases: coder/coder
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.1...v2.33.0-rc.2
Container image
docker pull ghcr.io/coder/coder:2.33.0-rc.2
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.
v2.30.7
Changelog
Performance improvements
Chores
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.33.0-rc.1
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 per-chat system prompt option (#24053, 4cfbf54) (@kylecarbs)
- Agent: Expose busy_behavior on chat message API (#24054, 648787e) (@kylecarbs)
- Agent: Agent reads context files and discovers skills locally (#23935, 919dc29) (@kylecarbs)
- Agent: Track chat file associations with chat_file_links on chats (#23537, d5a1792) (@johnstcn)
- Agent: Add chat and chat_files cleanup to dbpurge (#23833, 233343c) (@johnstcn)
- Agent: Auto-assign agents-access role to new users when experiment enabled (#23968, d4a9c63) (@johnstcn)
- Agent: Provider key policies and user provider settings (#23751, 7d0a0c6) (@ibetitsmike)
- Agent: Insert chats directly as pending on creation (#23888, 7757cd8) (@ethanndickson)
- Agent: Use structured output for chat title generation (#23909, fc1e0be) (@ethanndickson)
- Agent: Deterministic external MCP tool ordering (#24075, d7c8213) (@ibetitsmike)
- Agent: Prevent stdio MCP server subprocess from dying after connect (#24035, 5b32c4d) (@kylecarbs)
- Agent: Upgrade fantasy fork to github.com/coder/fantasy (#24100, 16265e8) (@kylecarbs)
- Agent: Add telemetry for agents chats and messages (#24068, c5d720f) (@kylecarbs)
Desktop & Recordings
- Agent: Desktop session recordings backend (#23894, 17dec2a) (@hugodutka)
- Agent: Desktop session recordings frontend (#23895, 9ac67a5) (@hugodutka)
- Agent: Take/release control agents desktop buttons (#24009, da5395a) (@hugodutka)
Chat UX
- Agent: Render read_skill body as markdown (#24069, cffc68d) (@kylecarbs)
- Agent: Polish model config form UI (#24047, 500fc5e) (@kylecarbs)
- Agent: Provider key policy frontend UI (#23781, b0a6802) (@ibetitsmike)
- Agent: Show workspace badge in agent chat top bar (#23964, d5ed51a) (@DanielleMaywood)
- Agent: Add copy button to ProposePlanTool (#23940, aa5ec0b) (@mafredri)
- Agent: Unify message copy/edit UX across user and assistant messages (#24039, 8bdc35f) (@kylecarbs)
- Agent: Add total_runtime_ms to chat cost analytics endpoints (#24050, a2ce74f) (@kylecarbs)
Performance
- Agent: Batch chat heartbeat queries into single UPDATE per interval (#24037, 684f217) (@kylecarbs)
- Agent: Parallelize ConvertMessagesWithFiles with g2 errgroup (#24034, 8625543) (@kylecarbs)
- Agent: Reorder declarations to fix React Compiler scope pruning (#24098, 3f7a3e3) (@DanielleMaywood)
- Agent: Stabilize mutation callbacks for React Compiler memoization (#24089, 0c5d189) (@DanielleMaywood)
Bug Fixes
- Agent: Prevent chat messages from disappearing and duplicating (#23995, beb99c1) (@DanielleMaywood)
- Agent: Prevent stale REST status from dropping streamed parts (#24040, a16755d) (@kylecarbs)
- Agent: Retain message_part buffer for cross-replica relay (#24031, e180948) (@kylecarbs)
- Agent: Archive chats when workspace is already deleted (#23994, 8d08885) (@ibetitsmike)
- Agent: Invalidate PR diff cache on git refresh button click (#23974, 00217fe) (@DanielleMaywood)
- Agent: Make 'chat has no workspace agent' error actually helpful (#23971, 2ebc076) (@johnstcn)
- Agent: Optimistically truncate cache on chat message edit (#23864, 1221622) (@DanielleMaywood)
- Agent: Hide copy button during active turn (#23962, bbeff0d) (@mafredri)
- Agent: Exorcise data race haunting contextConfigAPI on reconnect (#23946, cd784c7) (@johnstcn)
- Agent: Inflight wait group data race (#24007, ec83065) (@hugodutka)
- Agent: Reset provider form after create (#23975, 76a2cb1) (@ethanndickson)
- Agent: Pass workspace and workspaceAgent props to AgentChatPageView (#23988, 0cb942a) (@DanielleMaywood)
- Agent: Show message action tooltips at bottom on agents page (#24041, 937f50f) (@kylecarbs)
Refactors
- Agent: Decompose AgentSettingsBehaviorPageView + remove kyleosophy (#24141, f820945) (@johnstcn)
- Agent: Extract ConfirmDeleteDialog component (#24128, 3a61289) (@DanielleMaywood)
- Agent: Extract BackButton and AdminBadge (#24130, 17a71ae) (@DanielleMaywood)
- Agent: Replace useEffectEvent polyfill with native React 19.2 hook (#24060, 86b919e) (@DanielleMaywood)
Testing & Stability
- Agent: Harden TestSubscribeRelayEstablishedMidStream against CI flakes (#24108, f3f0a2c) (@kylecarbs)
- Agent: Stabilize subagent pubsub completion test (#23944, 16add93) (@johnstcn)
- Agent: Fix flaky TestAwaitSubagentCompletion/CompletesViaPubsub (#24066, 6c62d8f) (@kylecarbs)
- Agent: TestAwaitSubagentCompletion/ContextCanceled flake (#24008, 53482ad) (@hugodutka)
- Agent: Cover read_template and create_workspace allowlist enforcement (#23645, b5da77f) (@johnstcn)
Compare: v2.33.0-rc.0...v2.33.0-rc.1
Container image
docker pull ghcr.io/coder/coder:2.33.0-rc.1
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.33.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
- Agent: Suffix-based chat agent selection — template authors name agents with -coderd-chat suffix (#23741, 73f6cd8) (@ibetitsmike)
- Agent: Structured error classification and retry hardening with chaterror/ package (#23275, 70f031d) (@ethanndickson)
- Agent: Respect provider Retry-After headers in chat retry loop (#23351, 4d74603) (@ethanndickson)
- Agent: Persist workspace agent binding across chat turns to eliminate per-turn resolution queries (#23274, 61e31ec) (@ethanndickson)
- Agent: Use DB liveness for chat workspace reuse instead of tailnet connectivity (#23551, c0a323a) (@ethanndickson)
- Agent: Event-driven stream acquisition, replacing 0–1000ms polling delay (#23745, 386b449) (@kylecarbs)
- Agent: Stop inline-resolving diff status on every GetChat call (#23901, 7861fcf) (@kylecarbs)
- Agent: Process-wide config cache for hot DB queries (~97–99% query reduction) (#23272, 15f2fa5) (@ethanndickson)
- Agent: Send Coder identity headers to upstream LLM providers (#23578, f14f58a) (@johnstcn)
- Agent: Separate default and additional system prompts with admin toggle (#23616, 4f063cd) (@ibetitsmike)
- Agent: Deployment-wide template allowlist for chats (#23262, 796872f) (@johnstcn)
- Agent: Wire the chat template allowlist into tools (#23626, 7a9d57c) (@johnstcn)
- Agent: Add chat-access site-wide role to gate chat creation (#23724, 3ce82bb) (@johnstcn)
- Agent: Add labels to chats with GIN-indexed JSONB (#23594, d4660d8) (@kylecarbs)
- Agent: Add last_injected_context column to chats table (#23798, a5cc579) (@kylecarbs)
- Agent: Enabled toggle on chat model admin panel (#23665, e937f89) (@ibetitsmike)
- Agent: Support xhigh reasoning effort for OpenAI models (#23545, 5f57465) (@ibetitsmike)
- Agent: Show agent badge on workspace list (#23453, d175e79) (@johnstcn)
- Agent: Rename user-facing "chats" to "Coder Agents" (#23905, 7198f90) (@johnstcn)
- Agent: Make agent context paths configurable via env vars (#23878, ee855f9) (@kylecarbs)
- Agent: Upgrade kylecarbs/fantasy LLM provider library (#23596, 398e2d3) (@hugodutka)
- Agent: Archive chat hard-interrupts active stream (#23758, bbf3fbc) (@ethanndickson)
- Agent: Guard title generation meta replies (#23708, 91217a9) (@ibetitsmike)
- Agent: Scope title regeneration per chat (#23729, bfeb91d) (@ibetitsmike)
- Agent: Forward local status events to fix delayed-startup banner (#23650, d678c6f) (@ethanndickson)
- Agent: Prevent chat hang when workspace agent is unavailable (#23707, c4ef94a) (@ethanndickson)
- Agent: Gate control subscriber to ignore stale pubsub notifications (#23865, a164d50) (@johnstcn)
- Agent: Populate all chat fields in pubsub events (#23664, bfee7e6) (@johnstcn)
- Agent: Make clarification rules coherent (#23625, 5c9b022) (@johnstcn)
- Agent: Save media message type to DB (#23427, 84740f4) (@hugodutka)
- Agent: Strip invisible Unicode from prompt content (#23525, ef2eb9f) (@johnstcn)
- Agent: Inline synthetic paste attachments as bounded prompt text (#23523, 4f571f8) (@ibetitsmike)
- Agent: Target specific chat in MarkStale instead of broadcasting (#23883, 19e44f4) (@kylecarbs)
- Agent: Unarchive child chats with parents (#23761, 5cba59a) (@ethanndickson)
- Agent: Prioritize context cancellation in WebSocket sendEvent (#23756, be99b3c) (@ethanndickson)
- Agent: Fast-retry PR discovery after git push (#23579, 40395c6) (@kylecarbs)
Agent Tools
- Agent: Skills discovery and tools for chatd (#23715, 8391658) (@kylecarbs)
- Agent: Persist skills as message parts like AGENTS.md (#23748, 4d2b0a2) (@kylecarbs)
- Agent: Persist chat instruction files as context-file message parts (#23592, d9fc5a5) (@kylecarbs)
- Agent: Workspace MCP tool discovery and proxying for chat (#23680, 0f86c42) (@kylecarbs)
- Agent: Add model_intent option to MCP server configs (#23717, d973a70) (@kylecarbs)
- Agent: Add MCP server config ID to tool-call message parts (#23522, dda9851) (@kylecarbs)
- Agent: Inherit MCP server IDs from parent chat when spawning subagents (#23571, 894fcec) (@kylecarbs)
- Agent: Handle EmbeddedResource and ResourceLink in MCP tool results (#23569, f784b23) (@kylecarbs)
- Agent: Prevent nil required field in MCP tool schemas for OpenAI (#23538, 3812b50) (@kylecarbs)
- Agent: Refresh expired MCP OAuth2 tokens everywhere (#23713, 50c0c89) (@kylecarbs)
- Agent: Use path-aware discovery for MCP OAuth2 metadata (RFC 9728, RFC 8414) (#23520, 1f13324) (@kylecarbs)
- Agent: Multi-file edit_files atomic in agent files (#23493, 798a667) (@mafredri)
- Agent: Manual chat title regeneration (#23633, 2312e5c) (@ibetitsmike)
Chat UX
- Agent: Pinned chats with drag-to-reorder (#23615, 113aaa7) (@mattvollmer)
- Agent: Chat read/unread indicator in sidebar (#23129, bcdc35e) (@kylecarbs)
- Agent: Add terminal panel to chat sidebar (#23231, 12f87ac) (@ThomasK33)
- Agent: Add copy message button to chat messages (#23850, 196dc51) (@mafredri)
- Agent: ArrowUp shortcut to edit last user message (#23705, 83b2f85) (@ethanndickson)
- Agent: Add plus menu to chat input toolbar (#23489, a25f929) (@DanielleMaywood)
- Agent: Model picker shows one option per config (#23533, 4025b58) (@ibetitsmike)
- Agent: Show friendly alert for missing agents-access role (#23831, 2a990ce) (@johnstcn)
- Agent: Show archived filter on agents page when chat list is empty (#23793, 348a3bd) (@ethanndickson)
- Agent: Persist file attachments across navigations on create form (#23609, 8576d1a) (@DanielleMaywood)
- Agent: Persist file-reference chips across chat navigation (#23854, c048a40) (@DanielleMaywood)
- Agent: Persist MCP server selection in localStorage (#23572, 6b10599) (@kylecarbs)
- Agent: Collapse MCP tool results by default (#23568, 07dbee6) (@kylecarbs)
- Agent: Use imperative setValue for chat message editing (#23799, ddafdbc) (@ethanndickson)
- Agent: Confirm active agent archive (#23887, 153a66b) (@ethanndickson)
- Agent: Optimistic pinned reorder and post-drag click suppression (#23704, 9e33035) (@mattvollmer)
- Agent: Use chat ID as terminal reconnection token (#23926, b1c42bb) (@johnstcn)
- Agent: Harden Agents embed frame communication and add theme sync (#23574, 249ef7c) (@EhabY)
- Agent: Add Kyleosophy alternative completion chimes (#23891, bec426b) (@johnstcn)
- Agent: Match workspace picker font size to plus menu dropdown (#23670, 00cd7b7) (@DanielleMaywood)
- Agent: Fix agents sidebar not loading all pages when sentinel stays visible (#23613, 110af9e) (@DanielleMaywood)
Streaming & Rendering
- Agent: Streaming-mode Streamdown for live chat output (#23676, 5c7057a) (@DanielleMaywood)
- Agent: Structured error/retry UX for agent chat (#23282, 196c610) (@ethanndickson)
- Agent: Refine chat retry status UX (#23651, 21c2aca) (@ethanndickson)
- Agent: Clear retry banner on stream forward progress (#23653, ad3d934) (@ethanndickson)
- Agent: Preserve streaming output when queued message is sent (#23595, 61d2a4a) (@kylecarbs)
- Agent: Update sticky messages during streaming (#23577, 4ba9986) (@kylecarbs)
- Agent: Write WebSocket messages to React Query cache (#23618, 3f8e300) (@DanielleMaywood)
- Agent: Cancel stale refetches before WebSocket cache writes (#23582, 7eca33c) (@mafredri)
- Agent: Clear stream state atomically with durable message commit (#23924, e3c59c0) (@DanielleMaywood)
- Agent: Prevent WebSocket events from cancelling sidebar pagination fetches (#23845, dee5ec5) (@DanielleMaywood)
- Agent: Show Thinking indicator immediately after sending a message (#23904, 2ea89e1) (@kylecarbs)
- Agent: Ensure Thinking indicator appears regardless of WebSocket event ordering (#23884, 4b52656) (@kylecarbs)
- Agent: Fix "Thinking..." indicator disappearing prematurely (#23933, 7c048d8) (@kylecarbs)
Tool Rendering
- Agent: Rich preview for spawn_computer_use_agent tool (#23684, f87d6e6) (@hugodutka)
- Agent: Refactor the wait for computer use subagent card (#23780, 509e89d) (@hugodutka)
- Agent: Humanize process_signal and show killed on processes (#23590, f2845f6) (@mafredri)
- Agent: Make long execute tool commands expandable (#23562, 17aea0b) (@ethanndickson)
- Agent: Add tool rendering for read_skill, read_skill_file, start_workspace (#23744, a708e9d) (@kylecarbs)
- Agent: Soften tool failure display and improve subagent timeout UX (#23617, c0f9358) (@kylecarbs)
- Agent: Fix exec tool layout shift on command expand (#23739, 565cf84) (@DanielleMaywood)
- Agent: Collapse chat toolbar badges fluidly on overflow (#23663, d18e700) (@DanielleMaywood)
- Agent: Fix copy button toolbar regression (#23912, ba734f8) (@mafredri)
- Agent: Display loaded context files and skills in context indicator tooltip (#23853, 2953245) (@kylecarbs)
- Agent: Hover popover for context indicator with nested skill tooltips (#23870, 2c5e003) (@kylecarbs)
- Agent: Compact context compaction rows in behavior settings (#23543, 4a0d707) (@DanielleMaywood)
- Desktop / Computer Use
- Agent: Enable copy and paste in agents desktop (#23686, 1b2fab8) (@hugodutka)
- Agent: Delay desktop VNC connection until tab is selected (#23861, e8fb418) (@DanielleMaywood)
- Agent: Fix desktop visibility glitch (#23678, 081d919) (@hugodutka)
- Agent: Use lightbox for computer tool screenshots in PWA mode (#23529, a8757d6) (@DanielleMaywood)
- Agent: Move agentdesktop under x/ subpackage (#23610, c753a62) (@j...
v2.31.7
Stable (since April 07, 2026)
Changelog
Features
Bug fixes
Chores
Compare: v2.31.6...v2.31.7
Container image
docker pull ghcr.io/coder/coder:2.31.7
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.30.6
Stable (since April 01, 2026)
Changelog
Bug fixes
Chores
- Remove trivy GHA job (backport v2.30) (#23859, c10d2e9)
- Backport Go 1.25.8 bump to release/2.30 (#23908, 3470ce8)
Compare: v2.30.5...v2.30.6
Container image
docker pull ghcr.io/coder/coder:2.30.6
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.