**New features**
* Add new API type `TaskAPI` for running arbitrary Python jobs ([docs](https://docs.cortex.dev/workloads/task/example)) https://github.com/cortexlabs/cortex/pull/1717 https://github.com/cortexlabs/cortex/issues/253 ([miguelvr](https://github.com/miguelvr), [RobertLucian](https://github.com/RobertLucian))
* Write Cortex's logs as structured logs, and allow use of Cortex's structured logger in predictors (supports adding extra fields) ([aws docs](https://docs.cortex.dev/clusters/aws/logging), [gcp docs](https://docs.cortex.dev/clusters/gcp/logging)) https://github.com/cortexlabs/cortex/pull/1778 https://github.com/cortexlabs/cortex/pull/1803 https://github.com/cortexlabs/cortex/pull/1804 https://github.com/cortexlabs/cortex/issues/1732 https://github.com/cortexlabs/cortex/issues/1563 ([vishalbollu](https://github.com/vishalbollu))
* Support preemptible instances on GCP ([docs](https://docs.cortex.dev/clusters/gcp/install)) https://github.com/cortexlabs/cortex/pull/1791 https://github.com/cortexlabs/cortex/issues/1631 ([RobertLucian](https://github.com/RobertLucian))
* Support private load balancers on GCP ([docs](https://docs.cortex.dev/clusters/gcp/install)) https://github.com/cortexlabs/cortex/pull/1786 https://github.com/cortexlabs/cortex/issues/1621 ([deliahu](https://github.com/deliahu))
* Support GCP instances with multiple GPUs ([docs](https://docs.cortex.dev/clusters/gcp/install)) https://github.com/cortexlabs/cortex/pull/1789 https://github.com/cortexlabs/cortex/issues/1784 ([deliahu](https://github.com/deliahu))
**Breaking changes**
* `cortex logs` now streams logs from a single replica at random when there are multiple replicas for an API. The recommended way to analyze production logs is via a dedicated logging tool (by default, logs are sent to [CloudWatch](https://us-west-2.console.aws.amazon.com/cloudwatch/home) on AWS and [StackDriver](https://console.cloud.google.com/logs/query) on GCP)
**Bug fixes**
* Misc Python client fixes https://github.com/cortexlabs/cortex/pull/1798 https://github.com/cortexlabs/cortex/pull/1782 https://github.com/cortexlabs/cortex/pull/1772 ([vishalbollu](https://github.com/vishalbollu), [RobertLucian](https://github.com/RobertLucian))
**Docs**
* Document the shared `/mnt` directory for TensorFlow predictors https://github.com/cortexlabs/cortex/pull/1802 https://github.com/cortexlabs/cortex/issues/1792 ([deliahu](https://github.com/deliahu))
* Misc GCP docs improvements https://github.com/cortexlabs/cortex/pull/1799 ([deliahu](https://github.com/deliahu))
**Misc**
* Improve out-of-memory status reporting ([RobertLucian](https://github.com/RobertLucian))
* Improve batch job cleanup process https://github.com/cortexlabs/cortex/pull/1797 https://github.com/cortexlabs/cortex/pull/1796 ([vishalbollu](https://github.com/vishalbollu))
* Remove grpc msg send/receive limit https://github.com/cortexlabs/cortex/pull/1769 https://github.com/cortexlabs/cortex/issues/1740 ([RobertLucian](https://github.com/RobertLucian))