## Changelog

### Important changes

#### New "Workspace" page design

![Workspace-page](https://raw.githubusercontent.com/coder/coder/main/docs/changelogs/images/workspace-page.png)

- Workspace header is more slim (#11327) (#11370) (@BrunoQuaresma)
- Build history is in the sidebar (#11413) (#11597) (@BrunoQuaresma)
- Resources is in the sidebar (#11456) (@BrunoQuaresma)

#### Single Tailnet / PG Coordinator

This release includes two significant changes to our networking stack: PG Coordinator and Single Tailnet. The changes
are backwards-compatible and have been tested significantly with the goal of improving network reliability, code quality, session control, and stable versioning/backwards-compatibility.

### Features

- The "Health Check" page can help admins to troubleshoot common deployment/network issues (#11494) (@johnstcn)
  ![Health Check](https://raw.githubusercontent.com/coder/coder/main/docs/changelogs/images/health-check.png)
- Added support for bulk workspace updates (#11583) (@aslilac)
  ![Bulk updates](https://raw.githubusercontent.com/coder/coder/main/docs/changelogs/images/bulk-updates.png)
- Expose `owner_name` in `coder_workspace` resource (#11639) (#11683) (@mtojek)
  ![Owner name](https://raw.githubusercontent.com/coder/coder/main/docs/changelogs/images/owner-name.png)
  > This is currently only managed in account settings. In a future release, we may capture this from the identity provider or "New user" form: #11704
- Add logging to agent stats and JetBrains tracking (#11364) (@spikecurtis)
- Group avatars can be selected with the emoji picker (#11395) (@aslilac)
- Display current workspace version on `coder list` (#11450) (@f0ssel)
- Display application name over sign in form instead of `Sign In` (#11500) (@f0ssel)
- 🧹 Workspace Cleanup: Coder can flag or even auto-delete workspaces that are not in use (#11427) (@sreya)
  ![Workspace cleanup](http://raw.githubusercontent.com/coder/coder/main/docs/changelogs/images/workspace-cleanup.png)
  > Template admins can manage the cleanup policy in template settings. This is an [Enterprise feature](https://coder.com/docs/v2/latest/enterprise)
- Add a character counter for fields with length limits (#11558) (@aslilac)
- Add markdown support for template deprecation messages (#11562) (@aslilac)
- Add support for loading template variables from tfvars files (#11549) (@mtojek)
- Expose support links as [env variables](https://coder.com/docs/v2/latest/cli/server#--support-links) (#11697) (@mtojek)
- Allow custom icons in the "support links" navbar (#11629) (@mtojek)
  ![Custom icons](https://i.imgur.com/FvJ8mFH.png)
- Add additional fields to first time setup trial flow (#11533) (@coadler)
- Manage provisioner tags in template editor (#11600) (@f0ssel)
- Add `coder open vscode` CLI command (#11191) (@mafredri)
- Add app testing to scaletest workspace-traffic (#11633) (@mafredri)
- Allow multiple remote forwards and allow missing local file (#11648) (@mafredri)
- Add provisioner build version and api_version on serve (#11369) (@johnstcn)
- Add provisioner_daemons to /debug/health endpoint (#11393) (@johnstcn)
- Improve icon compatibility across themes (#11457) (@aslilac)
- Add docs links on health page (#11582) (@johnstcn)
- Show version files diff based on active version (#11686) (@BrunoQuaresma)

### Bug fixes

- Prevent UI from jumping around when selecting workspaces (#11321) (@Parkreiner)
- Test for expiry 3 months on Azure certs (#11362) (@spikecurtis)
- Use TSMP for pings and checking reachability (#11306) (@spikecurtis)
- Correct wording on logo url field (#11377) (@f0ssel)
- Change coder start to be a no-op if workspace is started (@spikecurtis)
- Create tempdir prior to cleanup (#11394) (@kylecarbs)
- Send end of logs when dbfake completes job (#11402) (@spikecurtis)
- Handle unescaped userinfo in postgres url (#11396) (@f0ssel)
- Fix GCP federation guide formatting (#11432) (@ericpaulsen)
- Fix workspace proxy command app link href (#11423) (@Emyrk)
- Make ProxyMenu more accessible to screen readers (#11312) (@Parkreiner)
- Generate new random username to prevent flake (#11501) (@f0ssel)
- Relax CSRF to exclude path based apps (#11430) (@Emyrk)
- Stop logging error on canceled query (#11506) (@spikecurtis)
- Fix MetricsAggregator check for metric sameness (#11508) (@spikecurtis)
- Force node version v18 (#11510) (@mtojek)
- Carry tags to new templateversions (#11502) (@f0ssel)
- Use background context for inmem provisionerd (#11545) (@spikecurtis)
- Stop logging errors on canceled cleanup queries (#11547) (@spikecurtis)
- Correct app url format in comment (#11523) (@f0ssel)
- Correct flag name (#11525) (@f0ssel)
- Return a more sophisticated error for device failure on 429 (#11554) (@Emyrk)
- Ensure wsproxy `MultiAgent` is closed when websocket dies (#11414) (@coadler)
- Apply appropriate artifactory defaults for external auth (#11580) (@Emyrk)
- Remove cancel button if user cannot cancel job (#11553) (@f0ssel)
- Publish workspace update on quota failure (#11559) (@f0ssel)
- Fix template edit overriding with flag defaults (#11564) (@sreya)
- Improve wsproxy error when proxyurl is set to a primary (#11586) (@Emyrk)
- Show error when creating a new group fails (#11560) (@aslilac)
- Refresh all oauth links on external auth page (#11646) (@Emyrk)
- Detect JetBrains running on local ipv6 (#11653) (@code-asher)
- Avoid returning 500 on apps when workspace stopped (#11656) (@sreya)
- Detect JetBrains running on local ipv6 (#11676) (@code-asher)
- Close pg PubSub listener to avoid race (#11640) (@spikecurtis)
- Use raw syscalls to write binary we execute (#11684) (@spikecurtis)
- Allow ports in wildcard url configuration (#11657) (@Emyrk)
- Make workspace tooltips actionable (#11700) (@mtojek)
- Fix X11 forwarding by improving Xauthority management (#11550) (@mafredri)
- Allow remote forwarding a socket multiple times (#11631) (@mafredri)
- Correctly show warning when no provisioner daemons are registered (#11591) (@johnstcn)
- Update last_used_at when workspace app reports stats (#11603) (@johnstcn)
- Add missing v prefix to provisioner_daemons.api_version (#11385) (@johnstcn)
- Revert addition of v prefix to provisioner_daemons.api_version (#11403) (@johnstcn)
- Add daemon-specific warnings to healthcheck output (#11490) (@johnstcn)
- Ignore deleted wsproxies in wsproxy healthcheck (#11515) (@johnstcn)
- Add missing scoped token resource to JFrog docs (#11334) (@matifali)
- Make primary workspace proxy always be updatd now (#11499) (@johnstcn)
- Ignore `NOMAD_NAMESPACE` and `NOMAD_REGION` when Coder is running in nomad (#11341) (@FourLeafTec)
- Fix workspace topbar back button (#11371) (@BrunoQuaresma)
- Fix pill spinner size (#11368) (@BrunoQuaresma)
- Fix external auth button loading state (#11373) (@BrunoQuaresma)
- Fix insights picker and disable animation (#11391) (@BrunoQuaresma)
- Fix loading spinner on template version status badge (#11392) (@BrunoQuaresma)
- Display github login config (#11488) (@BrunoQuaresma)
- HealthPage/WorkspaceProxyPage: adjust border colour for unhealthy regions (#11516) (@johnstcn)
- Show wsproxy errors in context in WorkspaceProxyPage (#11556) (@johnstcn)
- Fix loading indicator alignment (#11573) (@BrunoQuaresma)
- Remove refetch on windows focus (#11574) (@BrunoQuaresma)
- Improve rendering of provisioner tags (#11575) (@johnstcn)
- Fix resource selection when workspace resources change (#11581) (@BrunoQuaresma)
- Fix resource selection when workspace has no prev resources (#11594) (@BrunoQuaresma)
- Fix workspace resource width on ultra wide screens (#11596) (@BrunoQuaresma)
- Remove search menu vertical padding (#11599) (@BrunoQuaresma)
- Fix sidebar scroll (#11671) (@BrunoQuaresma)
- Fix search menu for creating workspace and templates filter (#11674) (@BrunoQuaresma)

### Documentation

- Fix broken link to JFrog module (#11322) (@yonarbel)
- Update FE fetching data docs (#11376) (@BrunoQuaresma)
- Add template autostop requirement docs (#11235) (@deansheather)
- Add guide for Google to AWS federation (#11429) (@ericpaulsen)
- Escape enum pipe (#11513) (@mtojek)
- Add guide for template ImagePullSecret (#11608) (@ericpaulsen)
- Add steps to configure supportLinks in Helm chart (#11612) (@ericpaulsen)
- Add workspace cleanup docs (#11146) (@sreya)
- Add FAQ regarding unsupported base image for VS Code Server (#11543) (@matifali)

Compare: [`v2.6.0...v2.7.0`](https://github.com/coder/coder/compare/v2.6.0...v2.7.0)

## Container image

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

## 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.
