## Changelog

### Features

- Expose user seat limits in Prometheus metrics (#10169) (@mtojek)
- Template admins can pick which days can be used for autostart (#10226, #10263) (@Emyrk)
- feat: fix 404 on the first app loads when unauthenticated (#10262) (@Emyrk)
- feat(coderd): add support for sending batched agent metadata (#10223) (@mafredri)
- feat(codersdk/agentsdk): use new agent metadata batch endpoint (#10224) (@mafredri)
- Add ExtraTemplates in provisioners Helm chart (#10256) (@johnstcn)
- Limit workspace filtering to `Running`, `Stopped`, `Failed`, `Pending` states (#10283) (@BrunoQuaresma)
- Add all safe experiments to the deployment page (#10276) (@Kira-Pilot)

### Bug fixes

- Fixes an issue with web terminal rendering by using UTF-8 (#10190) (@code-asher)
- Display template names even if no display name is set (#10233) (@Parkreiner)
- fix: display health alert in `DeploymentBannerView` (#10193) (@aslilac)
- fix(agent): send metadata in batches (#10225) (@mafredri)
- fix(cli): scaletest: create-worksapces: remove invalid character for kubernetes provider in implicit plan (#10228) (@johnstcn)
- fix(coderd): make activitybump aware of default template ttl (#10253) (@johnstcn)
- fix(coderd/provisionerdserver): pass through api ctx to provisionerdserver (#10259) (@johnstcn)
- fix(scaletest): fix flake in Test_Runner/Cleanup (#10252) (@johnstcn)
- fix(site): ensure empty string error shows default message (#10196) (@Kira-Pilot)
- fix(site): display empty component when workspace has no parameters (#10286) (@BrunoQuaresma)
- fix(site): do not return next page if the current size is lower than the limit (#10287) (@BrunoQuaresma)
- fix(site): fix state used to check if creating was loading (#10296) (@BrunoQuaresma)
- fix: prevent metadata queries from short-circuting (#10312) (@Parkreiner)
- fix: set K8s deployment strategy to Recreate (#10321)

### Documentation

- Mention /icons in the template documentation (#10230) (@aslilac)
- Reorganize template docs (#10297) (@matifali)

### Other changes

- Clarify external auth regex (#10243) (@ericpaulsen)
- Prevent terminal being created twice (#10200) (@code-asher)

Compare: [`v2.3.0...v2.3.1`](https://github.com/coder/coder/compare/v2.3.0...v2.3.1)

## Container image

- `docker pull ghcr.io/coder/coder:v2.3.1`

## Install/upgrade

Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.
