[Release Notes](https://sanicframework.org/en/guide/release-notes/v21.9.html)
Features
- [2158](https://github.com/sanic-org/sanic/pull/2158), [#2248](https://github.com/sanic-org/sanic/pull/2248) Complete overhaul of I/O to websockets
- [2160](https://github.com/sanic-org/sanic/pull/2160) Add new 17 signals into server and request lifecycles
- [2162](https://github.com/sanic-org/sanic/pull/2162) Smarter `auto` fallback formatting upon exception
- [2184](https://github.com/sanic-org/sanic/pull/2184) Introduce implementation for copying a Blueprint
- [2200](https://github.com/sanic-org/sanic/pull/2200) Accept header parsing
- [2207](https://github.com/sanic-org/sanic/pull/2207) Log remote address if available
- [2209](https://github.com/sanic-org/sanic/pull/2209) Add convenience methods to BP groups
- [2216](https://github.com/sanic-org/sanic/pull/2216) Add default messages to SanicExceptions
- [2225](https://github.com/sanic-org/sanic/pull/2225) Type annotation convenience for annotated handlers with path parameters
- [2236](https://github.com/sanic-org/sanic/pull/2236) Allow Falsey (but not-None) responses from route handlers
- [2238](https://github.com/sanic-org/sanic/pull/2238) Add `exception` decorator to Blueprint Groups
- [2244](https://github.com/sanic-org/sanic/pull/2244) Explicit static directive for serving file or dir (ex: `static(..., resource_type="file")`)
- [2245](https://github.com/sanic-org/sanic/pull/2245) Close HTTP loop when connection task cancelled
Bugfixes
- [2188](https://github.com/sanic-org/sanic/pull/2188) Fix the handling of the end of a chunked request
- [2195](https://github.com/sanic-org/sanic/pull/2195) Resolve unexpected error handling on static requests
- [2208](https://github.com/sanic-org/sanic/pull/2208) Make blueprint-based exceptions attach and trigger in a more intuitive manner
- [2211](https://github.com/sanic-org/sanic/pull/2211) Fixed for handling exceptions of asgi app call
- [2213](https://github.com/sanic-org/sanic/pull/2213) Fix bug where ws exceptions not being logged
- [2231](https://github.com/sanic-org/sanic/pull/2231) Cleaner closing of tasks by using `abort()` in strategic places to avoid dangling sockets
- [2247](https://github.com/sanic-org/sanic/pull/2247) Fix logging of auto-reload status in debug mode
- [2246](https://github.com/sanic-org/sanic/pull/2246) Account for BP with exception handler but no routes
Developer infrastructure
- [2194](https://github.com/sanic-org/sanic/pull/2194) HTTP unit tests with raw client
- [2199](https://github.com/sanic-org/sanic/pull/2199) Switch to codeclimate
- [2214](https://github.com/sanic-org/sanic/pull/2214) Try Reopening Windows Tests
- [2229](https://github.com/sanic-org/sanic/pull/2229) Refactor `HttpProtocol` into a base class
- [2230](https://github.com/sanic-org/sanic/pull/2230) Refactor `server.py` into multi-file module
Miscellaneous
- [2173](https://github.com/sanic-org/sanic/pull/2173) Remove Duplicated Dependencies and PEP 517 Support
- [2193](https://github.com/sanic-org/sanic/pull/2193), [#2196](https://github.com/sanic-org/sanic/pull/2196), [#2217](https://github.com/sanic-org/sanic/pull/2217) Type annotation changes