All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.1.0 - 2026-09-07
Initial release. Builds on mutare_plug, which carries the Plug.Conn
families (:plug_halt, :http_status, :plug_session, :resp_header,
:resp_cookie, :resp_body).
Added
Mutare.Phoenix.Redirect(:redirect_status) — swaps explicit atomstatus:options onPhoenix.Controller.redirect/2among valid redirect status siblings.Mutare.Phoenix.Body(:controller_body) — blanks the body argument ofPhoenix.Controller.json/2to%{}and oftext/2/html/2to""("does any test read the rendered body?"); on a literal text/html body its whole-call rewrite supersedes the built-in string family's sentinel leaves via Mutare's overlap pruning.Mutare.Phoenix.Download(:download_disposition) — flips the explicitdisposition:option ofPhoenix.Controller.send_download/3between:attachmentand:inline.Mutare.Phoenixas aMutare.CallRoutingextension (list it under:extensions): routes thePhoenix.RouterDSL (get/scope/…):skip, so compile-time route definitions are left unmutated, andPhoenix.Component.sigil_H/2(~H) arguments as compile-time literals, so HEEx never poisons the metamutant build.Mutare.Phoenix.all/0for splicing the Phoenix families into a:mutatorslist, composing withMutare.Plug.all/0.