# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.9.7] - 2023-01-30
- Fix parsing of METADATA results with NIL values. [#103](https://github.com/async-email/async-imap/pull/103)
## [0.9.6] - 2023-01-27
### Changes
- Add GETMETADATA command. [#102](https://github.com/async-email/async-imap/pull/102)
## [0.9.5] - 2023-12-11
### Fixes
- Reset IDLE timeout when keepalive is received
## [0.9.4] - 2023-11-15
### Fixes
- Do not ignore EOF errors when reading FETCH responses. [#94](https://github.com/async-email/async-imap/pull/94)
## [0.9.3] - 2023-10-20
### Dependencies
- Update `async-channel` to version 2.
## [0.9.2] - 2023-10-20
### Fixes
- Fix STATUS command response parsing. [#92](https://github.com/async-email/async-imap/pull/92)
## [0.9.1] - 2023-08-28
### Fixes
- Replace byte pool with bytes to fix memory leak. [#79](https://github.com/async-email/async-imap/pull/79)
### Documentation
- Remove outdated reference to `rustls.rs` example
### Miscellaneous Tasks
- Fix beta (1.73) clippy
## [0.9.0] - 2023-06-13
### Fixes
- Switch from `ouroboros` to `self_cell`. [#86](https://github.com/async-email/async-imap/pull/86)
`ouroboros` is [no longer maintained](https://github.com/joshua-maros/ouroboros/issues/88) and has a [RUSTSEC-2023-0042 advisory](https://rustsec.org/advisories/RUSTSEC-2023-0042) suggesting switch to [`self_cell`](https://github.com/Voultapher/self_cell).
## [0.8.0] - 2023-04-17
### Changed
- Remove `async-native-tls` dependency. TLS streams should be created by the library users as documented in `lib.rs`. #68
- Do not generate artificial "broken pipe" errors when attempting to send a request
after reaching EOF on the response stream. #73
- Do not attempt to track if the stream is closed or not.
`ImapStream` can wrap any kinds of streams, including streams which may become open again later,
like files which can be rewinded after reaching end of file or appended to.
### Fixes
- Update byte-pool to 0.2.4 to fix `ensure_capacity()`.
Previously this bug could have resulted in an attempt to read into a buffer of zero size
and erronous detection of the end of stream.
## [0.7.0] - 2023-04-03
### Added
- Added changelog.
- Add `ID` extension support.
### Fixed
- Fix parsing of long responses by correctly setting the `decode_needs` variable. [#74](https://github.com/async-email/async-imap/pull/74).
### Changed
- Make `async-native-tls` dependency optional.
- Update to `base64` 0.21.
## [0.6.0] - 2022-06-27
### Added
- Add `QUOTA` support.
- Add `CONDSTORE` support: add `Session.select_condstore()`.
- Full tokio support.
### Fixed
- Do not ignore `SELECT` command errors.
### Changed
- Replace `rental` with `ouroboros`.
- Replace `lazy_static` with `once_cell`.
## [0.5.0] - 2021-03-23
### Changed
- Update async-std, stop-token, migrate to stable channels.
## [0.4.1] - 2020-10-14
### Fixed
- Fix response handling in authentication. [#36](https://github.com/async-email/async-imap/pull/36)
### Changed
- Update `base64` to 0.13.
## [0.3.3] - 2020-08-04
### Fixed
- [Refactor buffering, fixing infinite loop](https://github.com/async-email/async-imap/commit/9a7097dd446784257ad9a546c6f77188e983acd6). [#33](https://github.com/async-email/async-imap/pull/33)
- Updated `byte-pool` from 0.2.1 to 0.2.2 due to important bugfix.
### Changed
- [Do not try to send data when the stream is closed](https://github.com/async-email/async-imap/commit/68f21e5921a002e172d5ffadc45c62bf882a68d6).
## [0.3.2] - 2020-06-11
### Changed
- Bump `base64` to 0.12.
## [0.3.1] - 2020-05-24
### Fixed
- Ignore unsolicited responses if the channel is full.
## [0.3.0] - 2020-05-23
### Added
- Make streams and futures `Send`.
## [0.2.0] - 2020-01-04
### Added
- Added tracing logs for traffic.
### Fixed
- Correctly decode incomplete reads of long IMAP messages.
- Avoid infinite loop in decoding.
- Correct response value for manual interrupt in IDLE.
- Handle OAuth responses without challenge.
- Don't crash if we can't read the greeting from the server.
- Improved handling of unsolicited responses and errors.
### Changed
- Use thiserror for error handling.
## [0.1.1] - 2019-11-16
### Fixed
- Ensure there is enough space available when encoding.
## 0.1.0 - 2019-11-11
[0.9.7]: https://github.com/async-email/async-imap/compare/v0.9.6...v0.9.7
[0.9.6]: https://github.com/async-email/async-imap/compare/v0.9.5...v0.9.6
[0.9.5]: https://github.com/async-email/async-imap/compare/v0.9.4...v0.9.5
[0.9.4]: https://github.com/async-email/async-imap/compare/v0.9.3...v0.9.4
[0.9.3]: https://github.com/async-email/async-imap/compare/v0.9.2...v0.9.3
[0.9.2]: https://github.com/async-email/async-imap/compare/v0.9.1...v0.9.2
[0.9.1]: https://github.com/async-email/async-imap/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/async-email/async-imap/compare/v0.8.0...v0.9.0
[0.8.0]: https://github.com/async-email/async-imap/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/async-email/async-imap/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/async-email/async-imap/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/async-email/async-imap/compare/v0.4.1...v0.5.0
[0.4.1]: https://github.com/async-email/async-imap/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/async-email/async-imap/compare/v0.3.3...v0.4.0
[0.3.3]: https://github.com/async-email/async-imap/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/async-email/async-imap/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/async-email/async-imap/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/async-email/async-imap/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/async-email/async-imap/compare/v0.1.1...v0.2.0
[0.1.1]: https://github.com/async-email/async-imap/compare/v0.1.0...v0.1.1