**New features**
* Support running arbitrary Docker containers in all workload types (Realtime, Async, Batch, Task) https://github.com/cortexlabs/cortex/pull/2173 ([RobertLucian](https://github.com/RobertLucian), [miguelvr](https://github.com/miguelvr), [vishalbollu](https://github.com/vishalbollu), [deliahu](https://github.com/deliahu), [ospillinger](https://github.com/ospillinger))
* Support autoscaling Async APIs to zero replicas https://github.com/cortexlabs/cortex/pull/2224 https://github.com/cortexlabs/cortex/issues/2199 ([RobertLucian](https://github.com/RobertLucian))
**Breaking changes**
* With this release, we have generalized Cortex to exclusively support running arbitrary Docker containers for all workload types (Realtime, Async, Batch, and Task). This enables the use of any model server, programming language, etc. As a result, the API configuration has been updated: the `predictor` section has been removed, the `pod` section has been added, and the `autoscaling` parameters have been modified slightly (depending on the workload type). See updated docs for [Realtime](https://docs.cortex.dev/workloads/realtime), [Async](https://docs.cortex.dev/workloads/async), [Batch](https://docs.cortex.dev/workloads/batch), and [Task](https://docs.cortex.dev/workloads/task). If you'd like to to see examples of Dockerizing Python applications, see our [test/apis](https://github.com/cortexlabs/cortex/tree/0.36/test/apis) folder.
* The `cortex prepare-debug` command has been removed; Cortex now exclusively runs Docker containers, which can be run locally via `docker run`.
* The `cortex patch` command as been removed; its behavior is now identical to `cortex deploy`.
* The `cortex logs` command now prints a CloudWatch Insights URL with a pre-populated query which can be executed to show logs from your workloads, since this is the recommended approach in production. If you wish to stream logs from a pod at random, you can use `cortex logs --random-pod` (keep in mind that these logs will not include some system logs related to your workload).
* gRPC support has been temporarily removed; we are working on adding it back in v0.37.
**Bug fixes**
* Handle exception when initializing the Python client when the default environment is not set https://github.com/cortexlabs/cortex/pull/2225 https://github.com/cortexlabs/cortex/issues/2223 ([deliahu](https://github.com/deliahu))
**Docs**
* Document how to configure SMTP in Grafana (e.g to enable email alerts) https://github.com/cortexlabs/cortex/pull/2219 ([RobertLucian](https://github.com/RobertLucian))
**Misc**
* Show CloudWatch Insights URL with a pre-populated query in the output of `cortex logs` https://github.com/cortexlabs/cortex/issues/2085 ([vishalbollu](https://github.com/vishalbollu))
* Improve efficiency of batch job submission validations https://github.com/cortexlabs/cortex/pull/2179 https://github.com/cortexlabs/cortex/issues/2178 ([deliahu](https://github.com/deliahu))