Releases: coder/coder
Release list
v2.36.3
Changelog
Note
This is a mainline Coder release. We advise enterprise customers without a staging environment to install our latest stable release while we refine this version. Learn more about our Release Schedule.
Continuous integration
Bug fixes
- Add flag to disable workspace agent context sync (#28522, f1f331b) (@sreya)
- Dashboard: Render change-version picker in place so it clears the dialog (#28490, 281d487)
Compare: v2.36.1...v2.36.3
Container image
docker pull ghcr.io/coder/coder:2.36.3
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.35.6
Stable (since August 25, 2026)
Changelog
Continuous integration
Bug fixes
Chores
Compare: v2.35.4...v2.35.6
Container image
docker pull ghcr.io/coder/coder:2.35.6
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.36.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.
Bug fixes
- Price AI usage by configured provider type (#27836, 2934aa0)
- Only write AI model prices that changed (#27923, d295caf)
- Label unpriced token usage metric by provider name and type (#28210, 83f6423) (@ssncferreira)
- Dashboard: Include owner context in Agents org picker permission check (#28076, 10e6321) (@ibetitsmike)
- Server: Send assigned chat model IDs verbatim (#28144, 7fe2ec4) (@ibetitsmike)
- Dashboard: Prefer permitted organization for chat creation (#28078, 9548f23) (@ibetitsmike)
Documentation
- Documentation: Backport release calendar to release/2.36 (#28011, a7f2917)
- Fix P2/P3 typos and syntax errors from drift sweep (#28101, eca838d) (@nickvigilante)
- Correct broken CLI commands and flags from drift sweep (#28098, 81f0dce) (@nickvigilante)
- Fix prometheus metric name and slack webhook backtick (#28085, 2d47088) (@nickvigilante)
- Remove invalid
--yesflag fromcoder template version promote(#28084, 73d95e9) (@nickvigilante)
Chores
Compare: v2.36.0...v2.36.1
Container image
docker pull ghcr.io/coder/coder:2.36.1
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.35.4
Stable (since August 10, 2026)
Changelog
Security patches
- Server: Reject workspace proxy hostname prefixes (#27544, d547bea24a) (@geokat) (GHSA-h58h-qvv5-xvwg)
Bug fixes
- Remove 403 from key failover and cooldown on 401 (#27419, c9388a1) (@ssncferreira)
- Dashboard: Backport admin settings dropdown visibility fix to release/2.35 (#27850, fe656fc)
- Update google.golang.org/grpc to v1.82.1 (#27925, fd5efa5)
- Update github.com/DataDog/dd-trace-go/v2 to v2.8.1 (#27938, 81add7e)
Compare: v2.35.3...v2.35.4
Container image
docker pull ghcr.io/coder/coder:2.35.4
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.34.8
Changelog
BREAKING CHANGES
- fix!: require org membership for user ACLs (#26852, 85bcd5d3a3) (GHSA-7v78-w67v-pm2g)
Security patches
- Server: Reject workspace proxy hostname prefixes (#27544, d547bea24a) (@geokat) (GHSA-h58h-qvv5-xvwg)
- Redact env var values in agent debug manifest endpoint (#26904, c15ae01435) (GHSA-73wg-wxvv-9r4j)
- Prevent open redirect in proxy authentication flow (#26647, 5c059ba989) (GHSA-98qx-9p2x-c4wh)
- Only return group member count for workspace ACL (#26206, d70055a0fa) (GHSA-cvrm-2xxr-hpcv)
- Server: Scope provisioner module file downloads to the daemon's org (#26635, d6ea2bd16e) (GHSA-hrhj-hpwc-9hmc)
Bug fixes
- Server: Show correct deletion time in dormancy notification (backport #26488) (#27895, b080be4461)
- Dashboard: Backport admin settings dropdown visibility fix to release/2.34 (#27851, 350070e97d)
- Update google.golang.org/grpc to v1.82.1 (#27928, 877fbeb17f)
- Update github.com/DataDog/dd-trace-go/v2 to v2.8.1 (#27940, 7bd778d881)
Compare: v2.34.7...v2.34.8
Container image
docker pull ghcr.io/coder/coder:2.34.8
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.36.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
-
Dynamic client registration disabled by default (#27316)
POST /oauth2/register(RFC 7591 Dynamic Client Registration) is now controlled by a persistent admin setting,oauth2_dcr_enabled, independent of the experiment system. The setting defaults to disabled. A new auditedGET/PUT /api/v2/oauth2-provider/settingsendpoint lets an owner toggle it live without a restart. When disabled, new registrations are rejected with an RFC 7591-shaped 403, andregistration_endpointis omitted from discovery metadata.Migration: Deployments that rely on dynamic client registration must explicitly enable the new setting via the API or UI after upgrading. Existing registered clients are unaffected; only new registrations are gated.
-
login_type=nonedeprecated; existing accounts converted to password login (#26851)login_type=none(legacy passwordless machine users) is deprecated in favor of premium service accounts. A database migration (000554) automatically converts existing non-systemlogin_type=noneaccounts tologin_type=password. Creation of newlogin_type=noneaccounts viaPOST /usersandcoder users create(including the deprecated--disable-loginflag) is now rejected unless a service account is explicitly requested.Migration: Automatic for existing users. Legacy
login_type=noneaccounts will be migrated to password login on first startup after upgrading. Review any automation that creates users withlogin_type=noneand update it to use service accounts instead. -
chat_model_configs.providercolumn removed (#26877)The
providercolumn has been dropped from thechat_model_configstable. Provider type is now derived exclusively from the linkedai_providersrow viaai_provider_id. The experimental HTTP/SDK response for model configs drops theproviderfield and makesai_provider_idrequired; consumers should resolve provider type by joining against the AI providers listing. Telemetry continues to emitprovidervia a JOIN, so BigQuery columns and Nexus dashboards are unaffected.Migration: Update any custom queries or SDK consumers that read
chat_model_configs.providerdirectly. Resolve provider type viaai_provider_idand the AI providers listing instead.
Features
AI Governance
Budget tracking and enforcement
User and group AI spend is now tracked, enforced, and exposed across the platform.
- Record user daily AI spend on token usage and enforce budgets on the pre-request path (#26741, #26562, #26915)
- User AI spend endpoint and group/member spend endpoints (#26978, #27123, #27130, #27568)
- Prometheus metrics for AI Governance cost control (#27490)
- CSV export for AI spend data (#27491)
- Budget threshold notifications for users and admins (#27346, #27415)
- Fall back to the Everyone group for AI spend attribution (#27364)
- Dashboard: show spend for unlimited and zero AI budgets; announce cost controls in AI Governance (#27458, #27543)
- Dashboard: polished AI budget members table (#26805)
- Network calls column and badges added to AI sessions table (#27269, #27341)
Seat counting
- Count only workspace-capable users toward license seats (#27279)
- Exclude AI Bridge usage from AI Governance seat counting (#27280)
Standalone AI Gateway
The AI Gateway can now be deployed as a standalone process with its own start command, health endpoints, observability stack, and Helm chart.
coder ai-gateway startcommand (#26605)/healthzand/readyzendpoints (#26988)- Logging, tracing, and metrics (#27068)
- Helm chart for standalone AI Gateway (#27256)
--aigateway-proxy-targetflag (#27122)- Prefixed standalone metrics (#27526)
- Known-models catalog and AI Gateway price generation (#27146)
- AWS Bedrock mantle endpoint and Bedrock mantle protocol selector in the provider form (#26745, #27156)
- Generate STS external ID for Bedrock role assumption (#26869)
- Show Bedrock external ID in the provider edit form (#26919)
- Synthetic gateway keys (#27170)
- NATS mTLS pubsub implementation (#26902)
Coder Agents
Chat quality of life
- Full-text search over chat messages (#27126)
- Manual chat compaction via
/compactcommand (#27081) - Persisted whole-chat summary with background generation; summary tab in right sidebar with per-chat cost endpoint (#26657, #26649)
- Workspace skills available in the agent chat slash menu (#25600)
- Searchable agent model picker with instance-based grouping and custom provider icons (#26927, #27026)
- Configurable reasoning effort per agent and advisor; model and effort override in
spawn_agent(#26974, #27196, #27385) - Admins can override the chat compaction model (#27151)
- Anthropic 1M context window toggle for Agents model configs (#27257)
- Model content-filter refusals surfaced as a blocked chat error; reasoning-only refusals classified as terminal errors (#27118, #27476)
- MCP server OAuth grant disconnect UI, provider-side revocation on disconnect, and graceful handling of revoked grants (#27299, #27300, #27264)
- Chat lifecycle hooks: suffix messages, idle failure, and content updates dispatched from the backend and wired into chatd (#27401, #27428, #27429)
- Notify users when chats are shared (#26914)
- Structured error fields in
wait_agenterror payload; child error detail surfaced inlast_error(#27478, #27477) WatchAIProviderssynchronizes provider changes to clients in real time (#27091)- Accumulate user daily AI spend and retain user constraints in compaction summaries (#26741, #27230)
claude-fable-5andclaude-mythos-5added as known model defaults (#27131)- Support Anthropic
/v1/messagesroute on Copilot (#26911) - Record all tool call types and provider item IDs for tool usage (#26855, #26856)
- Remove chat chain mode and unused chat statuses (#26980, #27064)
- Add chat suffix messages, idle failure, and content update support (#27428)
Template Builder
- Improved image management experience (#27018)
- Auto-fill customization fields from the base template (#27272)
- Browser back and forward support in the wizard (#27104)
- Provisioner warning and disabled create button when no provisioners are available (#26935, #26938)
- Module deselection from the main content area (#27113)
- Template Builder session telemetry (#27124)
- Show all step content without inner scroll (#27437)
User Secrets
- User secrets file parser and shared validator (#26723)
- Bulk user secret import endpoint and SDK client (#26724)
- Bulk secret import upload in the Add secret dialog (#26725)
- Enable/disable support for user secrets (#27537)
coder secret importCLI command for bulk secret files (#27534)- Beta label removed; user secrets are now generally available (#27510)
RBAC & Auth
- Support multiple OIDC redirect URIs (#25408)
- Agent runtime hour license claims and entitlement feature (#27459)
Workspace & Platform
- Workspace restart functionality via API (#25757)
- Expose external auth token expiry in agent API and CLI (#26883)
- Tailnet tunnels logged to the connection log (#27423)
- Add dry-run flag via
CommandExecutorinterface (#26422)
Dashboard
- OSC 52 clipboard support in the web terminal (#26437)
- Confirm before batch stopping workspaces (#27631)
- Hide workspace resources when the user lacks workspace-create permission (#27278)
- Rename "Dismiss warnings" to "Mute warnings" and make health callouts dismissible (#27554)
- Show "Archived chats" sidebar heading when viewing archived chats (#26926)
- Search users by display name (#27398)
AppearanceProviderintroduced to decoupleexternalImagesfrom theme (#27197)
Bug fixes
Server
- Preserve scopes on Entra v1 token refresh (#24851)
- Allow user-admin password resets to succeed (#26537)
- Recover timed out agents (#27254)
- Retry quickgen without temperature when the model rejects it (#27120)
- Remove compaction timeout (#27007)
- Clarify wait agent timeout (#27335)
- Avoid request recorder race (#27525)
- Prevent concurrent token refreshes (#26530)
- Match
sync.Mapsemantics in the typed wrapper (#27582) - Sanitize workspace MCP tool names (#26928)
- Reject workspace proxy hostname prefixes (#27544)
- Fix runner bootstrap race (#26989)
- Remove standalone AI Gateway HTTP listener dependency on loading providers (#27303)
- Give chat message IDs an append-order guarantee (#27495)
- Order the chat prompt query and its boundary by ID (#27619)
- Resolve duplicate 000554 migration collision (#27581)
- Explain default GitHub app org visibility on login rejection (#27374)
AI
- Handle Sonnet 5 adaptive thinking in Bedrock (#27339)
- Disable keep-alive on the STS assume-role client (#26971)
- Validate Bedrock protocol at provider construction (#27234)
- Stop sending adaptive thinking to pre-4.6 Anthropic models (#27314)
- Hide and reject chat models from disabled AI providers (#27070)
- Textualize advisor prompt tool exchanges (#27059)
- Classify aibridge 403 as
ChatErrorKindUsageLimit(#27538) - Extract plain-text provider error bodies (#27597)
- Remove chatd usage limit enforcement (#27535)
- Remove 403 from key failover; cooldown on 401 (#27419)
- Delete unused
ChatMessagePart.Signaturefield (#27588) - Stop manual title generation from writing to
chat_messages(#27087) - Serialize chat model config default election with advisory lock (#27114)
- Use pasted-text attachments as chat title input (#27067)
...
v2.34.7
Changelog
Bug fixes
- Bump github.com/go-chi/chi/v5 from 5.2.4 to 5.3.1 (backport 2.34) (#27148, e77a5be)
- Bump Go version from 1.26.4 to 1.26.5 (backport 2.34) (#27158, e885cf3)
- fix(scripts/releaser): remove doubled "v" in release calendar latest release link (#27261, 744439f)
- Resolve client IP from the rightmost untrusted X-Forwarded-For entry (backport 2.34) (#27236, eda3747)
- Dashboard: Keep activity bump editable when allow_user_autostop is on (#27083, ee17a3b)
- Dashboard: Replace ansi-to-html in the log viewer (#27206, ffa50fb) (@aslilac)
- Server: Harden oauth2 redirect validation (#27274, 58e20ab) (@aslilac)
- Remove 403 from key failover and cooldown on 401 (#27419, b7d2742) (@ssncferreira)
Documentation
- Documentation: Fix bmcp_ described as suffix instead of prefix (#27392, 2b9e328) (@nickvigilante)
Compare: v2.34.6...v2.34.7
Container image
docker pull ghcr.io/coder/coder:2.34.7
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.35.3
Changelog
Bug fixes
- Bump github.com/go-chi/chi/v5 v5.2.4 to v5.3.1 (#27147, abe4d01)
- Bump Go version from 1.26.4 to 1.26.5 (backport 2.35) (#27159, ae1d4ef)
- fix(scripts/releaser): remove doubled "v" in release calendar latest release link (#27259, f2653d4)
- Dashboard: Replace ansi-to-html in the log viewer (#27206, 17cbc26) (@aslilac)
- Server: Harden oauth2 redirect validation (#27274, 65e2bfb) (@aslilac)
Compare: v2.35.2...v2.35.3
Container image
docker pull ghcr.io/coder/coder:2.35.3
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.35.2
Changelog
Note
This is a mainline Coder release. We advise enterprise customers without a staging environment to install our latest stable release while we refine this version. Learn more about our Release Schedule.
Bug fixes
- Bump coder/fantasy for gpt-5.6 Responses routing (#27132, d331a10) (@ibetitsmike)
- Correct gvisor replace directive to match module path (#26822, a330eff)
- Dashboard: Keep activity bump editable when allow_user_autostop is on (#27083, 5c2838a) (@jakehwll)
Documentation
Compare: v2.35.1...v2.35.2
Container image
docker pull ghcr.io/coder/coder:2.35.2
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.
v2.34.6
Stable (since July 14, 2026)
Changelog
Bug fixes
- Correct gvisor replace directive to match module path (conflicts) (#26822, 92c345b) (@denisra)
- Server: Require deployment-wide workspace read permissions for W… (#27029, 94a997d)
- Dashboard: Redirect to new organization after create (#26890, db643c8) (@aslilac)
- Dashboard: Match Formik onSubmit args in Bedrock story (#27211, 660dc56)
Compare: v2.34.5...v2.34.6
Container image
docker pull ghcr.io/coder/coder:2.34.6
Install/upgrade
Refer to our docs to install or upgrade Coder, or use a release asset below.