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.
SECURITY
- Bump gomarkdown to patched revision (#24567, 869168b) (@CommanderK5)
- Widen engines.node to include Node.js 24 LTS (#24419, 1f194dc) (@jdomeracki-coder)
Features
- Add plan mode with restricted tool boundary (#24236, 1cf0354) (@ibetitsmike)
- Support multiple agents with shared instance-identity auth (#24325, e5707a1) (@ibetitsmike)
- Add internal subagent model override wiring (#24399, 1092093) (@ibetitsmike)
- Accept xhigh effort for Anthropic (#24439, 15d8e4f) (@DanielleMaywood)
- Add CLI support for user secrets (#24270, 7270e01) (@dylanhuff-at-coder)
- Wire DERPTLSConfig through CLI, SDK, tailnet, VPN, agent, and health checks (#24435, 4c1a32c) (@spikecurtis)
- CLI: Add experimental agents TUI (#24150, de30488) (@ibetitsmike)
- Add Explore mode as subagent-only modality (#24448, 73b5058) (@ibetitsmike)
- Server: Add PR status summary to telemetry snapshots (#24379, 4ba74dc) (@deansheather)
- feat(scripts/develop): enable prometheus metrics by default (#24389, a23a38c) (@johnstcn)
- Server: Add chat debug service and summary aggregation (#23916, 91f9de2) (@ThomasK33)
- Label chatd metrics by model, add stream-state diagnostics (#24475, 4b58546) (@johnstcn)
- Runtime user secrets injection into workspaces (#24313, 72f35e1) (@zedkipp)
- Server: Agent-created file attachments in chat (#24280, ef6969d) (@ethanndickson)
- Support AWS SDK default credential chain for Bedrock authentication (#24346, 522118a) (@ssncferreira)
- Server: Wire debug logging into chat lifecycle (#23917, df7e838) (@ThomasK33)
- Add chat debug HTTP handlers and API docs (#23918, 18a30a7) (@ThomasK33)
- Allow renaming of agent chat title (#24489, 410f9a5) (@jaaydenh)
- feat(scripts/develop): add --prometheus-server flag to run Prometheus UI (#24408, d99949d) (@johnstcn)
- Server: Accept parameters in start_workspace tool (#24434, 1203f62) (@ethanndickson)
- Make database.Chat auditable (#24485, c968a1f) (@johnstcn)
- Allow approved external MCP tools in root plan mode (#24509, 9d0469f) (@ibetitsmike)
- Surface upstream provider error details in chat callout (#24546, 2295e9d) (@ethanndickson)
- Dashboard: Show MCP settings and hide insights in sidebar (#24428, 7f4127b) (@DanielleMaywood)
- Server: Add description tags to tool parameter structs (#24394, 79a9f43) (@app/blinkagent)
- Rebucket "Number of developers" onboarding options (#24573, f77827e) (@david-fraley)
- Dashboard: Display file attachments in chat UI (#24281, cc4e04a) (@ethanndickson)
- Dashboard: Add chat debug API layer and panel utilities (#23919, 8c0fe6d) (@ThomasK33)
- Dashboard: Add Debug panel components and settings (#23920, 249b71b) (@ThomasK33)
Bug fixes
- Re-fetch context files and skills from workspace on each turn (#24360, d11849d) (@kylecarbs)
- Don't skip tag naming when building nix image (#24403, 280735d) (@aslilac)
- Fix dogfood template presets (#24406, fda0593) (@aslilac)
- Move OnChatUpdated call after agent is ready in create/start workspace (#24410, 9c74c8c) (@kylecarbs)
- Fix
image_typeoptions (#24411, fded2cb) (@aslilac) - Dashboard: Truncate long workspace name in chat input toolbar (#24412, 8bc91d9) (@kylecarbs)
- Remove mui dependency on
useClickableTableRow()(#24373, 51ac35c) (@jakehwll) - Restore kebab menu flex (#24359, 074ff79) (@jakehwll)
- Server: Auto-update workspace to active template version on chat start (#24424, 91b35a2) (@ethanndickson)
- Add missing ClientType to InsertChat test params (#24436, eae9444) (@ethanndickson)
- Dashboard: Allow search by label in MultiSelectComboBox (#24421, 383b10f) (@johnstcn)
- Associate computer use recordings with chats (#24471, db81912) (@hugodutka)
- fix(.github/workflows): upgrade github-script to v9 in community-label job (#24479, d8d63ad) (@jdomeracki-coder)
- fix(dogfood): fix capitalization typo and extra blank line (#24481, a41c8d7) (@EhabY)
- fix(dogfood): update display name and add README (#24487, ee56363) (@EhabY)
- Reap idle chatd stream states on a timer (#24476, 3f6b40a) (@johnstcn)
- Dashboard: Insert newline on mobile Enter (#24498, c40f45b) (@david-fraley)
- Dashboard: Use hard reload after login to reload metadata (#24239, a2b9b74) (@jeremyruppel)
- Dashboard: Fix flaky CreateWorkspacePage tests (#24480, a53f52e) (@DanielleMaywood)
- Server: Save refreshed token before validation (#24332, 2a1984f) (@mafredri)
- Server-side diffs and stricter fuzzy splicing for edit_files (#24454, 6b0bb02) (@mafredri)
- Resolve
<ChatTopBar />fmtissue (#24515, 5f6c74a) (@jakehwll) - Server: Reduce relay reconnect spam (#24495, 12e49c1) (@johnstcn)
- Dashboard: Prevent workspace icon from shrinking in chat pill (#24521, f688e85) (@DanielleMaywood)
- Classify HTTP/2 transport failures as retryable timeouts (#24502, df429b7) (@johnstcn)
- Exclude subagent chats from sidebar pagination (#24404, fc24937) (@mafredri)
- Sort child chats newest-first and prepend on creation (#24524, 467430d) (@mafredri)
- Server: Add frame-ancestors CSP directive to prevent clickjacking (#24474, 615be17) (@jdomeracki-coder)
- Server: Enforce workspace authz on watchChatGit (#24477, ea00d2d) (@deansheather)
- Server: Omit frame-ancestors CSP for embed routes (#24529, 411ed21) (@jdomeracki-coder)
- Dashboard: Stabilize app.spec.ts e2e test (#24400, 4b755e5) (@jeremyruppel)
- Dashboard: Stabilize agent form stories (#24532, 2f0d715) (@johnstcn)
- Dashboard: Simplify prerelease css (#24514, 3b561dc) (@jakehwll)
- Dashboard: Replace misused useEffectEvent with correct patterns (#24525, bf885cc) (@DanielleMaywood)
- Dashboard: Polish table alignment for workspace proxies (#24538, 3b0cd5b) (@tracyjohnsonux)
- Reuse shared tailnet for coderd-hosted MCP workspace tools (#24460, 181e103) (@ethanndickson)
- Dashboard: Implement agent logs improvements (#24455, 3466806) (@jakehwll)
- Server: Add chattest.OpenAI() default fake server (#24540, 5f3effd) (@johnstcn)
- Database: Renumber duplicate MCP migration (#24552, cb67e71) (@ibetitsmike)
- Server: Deflake TestSubscribeRelayDrainWithinGraceLeavesBufferRetained (#24549, f56adf5) (@johnstcn)
- Dashboard: Fix flaky TemplateVariablesPage submit test (#24459, a62c0c1) (@jakehwll)
- Stop tracking chat title in audit logs (#24564, 4d45b69) (@johnstcn)
- Dashboard: Wait for file upload before submitting create template form (#24548, 2b8a2c9) (@jakehwll)
- Rebuild modeloptionsgen when codersdk changes (#24543, ef2b3a7) (@ethanndickson)
- Dashboard: Show startup script failure message without restart suggestion (#24449, b4eb0e2) (@jeremyruppel)
- Server: Fix TestPatchChat/Title flake by waiting for chat to settle (#24572, 148e56b) (@jaaydenh)
- Handle expired chat file attachments in replay and UI (#24518, 353e522) (@ethanndickson)
- Dashboard: Add bottom spacing for no-renderable assistant fallback messages (#24551, b62881e) (@jaaydenh)
- Server: Use waitChatSettled in remaining title tests (#24585, 360e119) (@johnstcn)
- Server: Allow deleting chat providers used in historical chats (#24568, ad19065) (@ethanndickson)
- Server: Enforce ActionSSH in MCP HTTP agent connection path (#24607, 86b2db6) (@jdomeracki-coder)
- Server: Detect disconnected agents in getWorkspaceConn (#24336, 78d9a22) (@mafredri)
- Support Bedrock ambient AWS credentials for Agents providers (#24397, 9634739) (@ibetitsmike)
- Server: Record SSE attempts on EOF (#24565, 26b64fa) (@ThomasK33)
- Server: Allow Anthropic per-modality ratelimit headers (#24592, b7c2c59) (@ThomasK33)
- Infer workspace from env in
coder support bundle(#24617, 3362b5a) (@EhabY)
Documentation
- Move copilot provider config from clients to setup (#24382, ba6bef1) (@matifali)
- Clarify copilot plans in provider config (#24433, f07a332) (@matifali)
- Add coder-templates skill references to quickstart and template contribution guides (#24383, b89ddb5) (@DevelopmentCats)
- Add git providers and PR Insights pages for Coder Agents (#24447, cc4eaff) (@mattvollmer)
- Remove unused
pausedandcompletedchat statuses, addrequires_action(#24264, 1feb183) (@david-fraley)
Code refactoring
- Dashboard: Address plan-mode frontend review feedback (#24426, 6bb4444) (@ibetitsmike)
- Replace @mui/x-tree-view with simple tree components (#24266, 72c3563) (@aslilac)
- Dashboard: Replace shadcn color aliases with semantic design tokens (#24284, 23f9e26) (@chrifro)
- Unify subagent spawn behind spawn_subagent (#24535, f073323) (@ibetitsmike)
- Dashboard: Rename border-hover token to border-secondary (#24553, 5cce3ee) (@chrifro)
Tests
- Skip TestSubscribeRelayEstablishedMidStream (#24431, b9bc0ad) (@ethanndickson)
- Pin DateRangePicker calendar today to caller-supplied clock (#24517, 596e55b) (@ethanndickson)
- Server: Deflake stale control notification test (#24545, c1421b4) (@ethanndickson)
- Add regression guard for chat title masking (#24584, 38f5d3f) (@johnstcn)
- Dashboard: Add Debug panel Storybook stories (#23921, 5c316d4) (@ThomasK33)
- Server: Seed anthropic provider for computer_use tests (#24611, 9b5d09e) (@ibetitsmike)
Continuous integration
- Migrate doc-check workflow from Coder Tasks to Coder Agents (#24388, 630de40) (@stirby)
- Add InTx linter replacing ruleguard rule (#24422, 55e525f) (@ethanndickson)
- Post docs preview link on PRs that change docs (#24283, d3cc23d) (@dannykopping)
- Pass github.repository through env var (#24605, e3a1fb0) (@jdomeracki-coder)
Chores
- Upgrade to ubuntu 26.04 (#24267, d23a695) (@aslilac)
- Increase coderd_chatd_message_count histogram max bucket to 1024 (#24409, e996f6d) (@app/blinkagent)
- Follow-ups from #23948 (#24377, 914a0f7) (@dannykopping)
- Improve design of agents behavior settings page (#24324, 509784a) (@jaaydenh)
- Update design of add users dialog (#24287, 4064b60) (@jaaydenh)
- Add client_type field to chats and telemetry (#24342, 3452ab3) (@deansheather)
- Add dogfood template for coder/vscode-coder development (#24306, 890c610) (@EhabY)
- Add import block for vscode-coder template in dogfood (#24472, c0abf8f) (@deansheather)
- Add GetLatestWorkspaceBuildWithStatusByWorkspaceID query (#24441, e19b21b) (@spikecurtis)
- Split Pubsub interface into Publisher and Subscriber (#24442, 2ea27e8) (@spikecurtis)
- Use coder/hc-install fork to fix expired PGP key verification (#24516, 7e89534) (@ethanndickson)
- Add devcontainers icon (#24478, 81bd78d) (@matifali)
- Dashboard: Demui
<Avatar />and<AvatarCard />(#24527, 7f1b9cb) (@jakehwll) - Dashboard: Demui
<CodeExample />(#24528, 9324c16) (@jakehwll) - Dashboard: Replace inline add member form with dialog on
<OrganizationMembersPage />(#24429, e186dc3) (@jakehwll) - Tighten
.vscodeIDE and typescript configuration (#24537, 67c57ab) (@jakehwll) - Dashboard: Decss the
<WorkspaceBuild* />pages (#24530, ac6c945) (@jakehwll) - Bump hashicorp/hc-install to v0.9.4 and drop coder fork replace (#24547, bd3ed18) (@ethanndickson)
- Add no-emdash/endash rule to agent instructions and CI lint (#24375, 623e72d) (@mafredri)
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.