# 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.1.0/),
and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/).
## [1.1.0] - 2026-10-01
### Added
- `runMarionetteTWith`, allowing connections to an arbitrary host and port.
- `ClientEnv`, the reader environment that `MarionetteT` runs against.
- `Test.Marionette.Actions` and `Test.Marionette.Key` modules to support structured virtual input device actions.
### Removed
- `UnexpectedResult`, unexpected / timed out responses are now discarded rather than ending the session.
- `CommandWithCallback`, replaced by `QueuedCommand`.
### Changed
- `incoming` takes a callback to run if reading or decoding the connection ever fails,
instead of asynchronously killing the whole session.
- `MarionetteTimeout` carries the `Command` that timed out instead of the raw wire message.
### Fixed
- Command timeouts no longer close the session.
- Raised command timeout from 5s to 15s.
- Closed connection no longer spin the reader.
- Command callback are before sending instead of after.
- Timed-out commands are deregistered.
- `Test.Marionette.Commands.performActions` now accepts action sequences to simulate keyboard, mouse, and touch events, rather than doing nothing.
## [1.0.1] - 2026-08-07
### Fixed
- Rethrow async exceptions in the Client.
## [1.0.0] - 2026-07-14
### Added
- Initial release.