## Changelog

### Features

- Add support for `coder_script`. This allows different sources (such as [modules](http://registry.coder.com/modules)) to provide their own scripts (#9584) (@kylecarbs)
  ![coder_script example](https://user-images.githubusercontent.com/7122116/270478499-9214d96f-b58d-4284-adfd-817304c2d98e.png)
- The template editor lets you create a workspace for a version when published, even if it is not promoted (#9475) (@aslilac)
- Add `template_id` and `template_name` to [workspace data source](https://registry.terraform.io/providers/coder/coder/latest/docs/data-sources/workspace) (#9655) (@sreya)
- Implement agent process management. This will ensure the agent stays running when the workspace is under high load in Linux (#9461) (@sreya)
- Show update messages on workspace page (#9705) (@aslilac)
- Show version messages in version lists (#9708) (@aslilac)
- Add `envFrom` value to Helm chart (#9587) (@ericpaulsen)
- Add Hashicorp Nomad template (#9786) (@matifali)
- Add middle click support for workspace rows (#9834) (@Parkreiner)
- Create a workspace from any template version (#9861) (@aslilac)
- Add `&hellip;` to actions that require confirmation (#9862) (@aslilac)
- Colorize CLI help page (#9589) (@ammario)
- Add simple healthcheck formatting option (#9864) (@coadler)
- Log `start` timestamp for http requests (#9776) (@mafredri)
- Render .sh and .tpl files in the template editor (#9674) (@BrunoQuaresma)
- Show CLI flags and env variables for the options (#9757) (@BrunoQuaresma)
- Linux builds of Coder can optionally be built with boringcrypto (#9543) (@spikecurtis)

### Bug fixes

- Use `$coder_version` instead of hardcoded version in release script (#9539) (@aslilac)
- Remove tf provider versions in examples/ (#9586) (@ericpaulsen)
- Stop inserting provisioner daemons into the database (#9108) (@spikecurtis)
- Use CRC32 to shorten app subdomain (#9645) (@mtojek)
- Update autostart/autostop text (#9650) (@aslilac)
- Fix case insensitive agent ssh session env var (#9675) (@Emyrk)
- Fix wait for build job (#9680) (@mtojek)
- Prevent workspace search bar text from getting garbled (#9703) (@Parkreiner)
- Remove broken fly.io template from starter templates (#9711) (@bpmct)
- Reconnect terminal on non-modified key presses (#9686) (@code-asher)
- Make sure fly_app name is lower case (#9771) (@pi3ch)
- User should always belong to an organization (#9781) (@mtojek)
- Use terminal emulator that keeps state in ReconnectingPTY tests (#9765) (@spikecurtis)
- Hide empty update message box (#9784) (@aslilac)
- Call agent directly in cli tests (#9789) (@spikecurtis)
- Use AlwaysEnable for licenses with all features (#9808) (@spikecurtis)
- Give more room to lonely resource metadata items (#9832) (@aslilac)
- Consider all 'devel' builds as 'dev' builds (#9794) (@Emyrk)
- Resolve flake in log sender by checking context (#9865) (@kylecarbs)
- Add case for logs without a source (#9866) (@kylecarbs)
- Allow expansion from `log_path` for `coder_script` (#9868) (@kylecarbs)
- Remove pinned version for dogfood (#9872) (@kylecarbs)
- Wait for bash prompt before commands (#9882) (@spikecurtis)
- Avoid logging env in unit tests (#9885) (@johnstcn)
- Specify IgnoreErrors in slogtest options for scaletest cli tests (#9751) (@johnstcn)
- Display pasted session token (#9710) (@ericpaulsen)
- Emit CollectedAt as UTC in convertWorkspaceAgentMetadata (#9700) (@johnstcn)
- Subscribe to workspace when streaming agent logs to detect outdated build (#9729) (@mafredri)
- Remove troublesome test case (#9874) (@johnstcn)
- Use debug log on context cancellation in flush (#9777) (@mafredri)
- Use debug log on query cancellation in flush (#9778) (@mafredri)
- Migrate workspaces.last_used_at to timestamptz (#9699) (@johnstcn)
- 8d8402da0 fix(coderd/database): avoid clobbering workspace build state (#9826) (@johnstcn)
- Avoid truncating inserts that span multiple lines (#9756) (@johnstcn)
- Fix manifest of gcp docs (#9559) (@matifali)
- Do not skip deleted users when encrypting or deleting (#9694) (@johnstcn)
- Fix typo in examples.gen.json (#9718) (@johnstcn)
- Wait for non-zero metrics before cancelling in TestRun (#9663) (@johnstcn)
- wget terraform directly from releases.hashicorp.com (#9594) (@johnstcn)
- Modify logic for determining terraform arch (#9595) (@johnstcn)
- Fix frontend renderer error (#9653) (@BrunoQuaresma)

Compare: [`v2.1.5...v2.2.0`](https://github.com/coder/coder/compare/v2.1.5...v2.2.0)

## Container image

- `docker pull ghcr.io/coder/coder:v2.2.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.
