tag:github.com,2008:https://github.com/athena-framework/framework/releases
Release notes from framework
2025-10-04T16:36:20Z
tag:github.com,2008:Repository/437616894/v0.21.1
2025-11-13T23:27:42Z
v0.21.1
<h3>Fixed</h3>
<ul>
<li>Fix improper handling of optional file uploads (<a href="https://github.com/athena-framework/athena/pull/595" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/595/hovercard">#595</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
PallasAthenaie
tag:github.com,2008:Repository/437616894/v0.21.0
2025-09-05T00:00:33Z
v0.21.0
<h3>Changed</h3>
<ul>
<li><strong>Breaking:</strong> Leverage <code>ATH::AbstractFile</code> within <code>ATH::BinaryFileResponse</code> (<a href="https://github.com/athena-framework/athena/pull/563" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/563/hovercard">#563</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Leverage <code>mime</code> component within <code>ATH::BinaryFileResponse</code> (<a href="https://github.com/athena-framework/athena/pull/545" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/545/hovercard">#545</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Setter methods on <code>ATH::Response</code> and subclasses now return <code>self</code> to better support method chaining (<a href="https://github.com/athena-framework/athena/pull/563" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/563/hovercard">#563</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add support for Athena Contract component types (<a href="https://github.com/athena-framework/athena/pull/544" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/544/hovercard">#544</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add native file upload support (<a href="https://github.com/athena-framework/athena/pull/559" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/559/hovercard">#559</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Correctly apply <code>emit_nil</code> value from <code>ATHA::View</code> (<a href="https://github.com/athena-framework/athena/pull/526" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/526/hovercard">#526</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
PallasAthenaie
tag:github.com,2008:Repository/437616894/v0.20.1
2025-02-08T19:31:06Z
v0.20.1
<h3>Fixed</h3>
<ul>
<li>Fix <code>ATH::ViewHandler</code> bundle configuration values not being correctly set (<a href="https://github.com/athena-framework/athena/pull/520" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/520/hovercard">#520</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16
tag:github.com,2008:Repository/437616894/v0.20.0
2025-01-26T20:40:17Z
v0.20.0
<h3>Changed</h3>
<ul>
<li><strong>Breaking:</strong> Normalize exception types (<a href="https://github.com/athena-framework/athena/pull/428" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/428/hovercard">#428</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> The <code>ATHR::Interface.configuration</code> macro is no longer scoped to the resolver namespace (<a href="https://github.com/athena-framework/athena/pull/425" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/425/hovercard">#425</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Rename <code>ATHR::RequestBody::Extract</code> to <code>ATHA::MapRequestBody</code> (<a href="https://github.com/athena-framework/athena/pull/425" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/425/hovercard">#425</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Rename <code>ATHR::Time::Format</code> to <code>ATHA::MapTime</code> (<a href="https://github.com/athena-framework/athena/pull/425" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/425/hovercard">#425</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Update minimum <code>crystal</code> version to <code>~> 1.14.0</code> (<a href="https://github.com/athena-framework/athena/pull/433" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/433/hovercard">#433</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Refactor auto redirection logic to be more robust (<a href="https://github.com/athena-framework/athena/pull/436" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/436/hovercard">#436</a>, <a href="https://github.com/athena-framework/athena/pull/480" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/480/hovercard">#480</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Refactor <code>ATHR::RequestBody</code> to raise more accurate deserialization errors (<a href="https://github.com/athena-framework/athena/pull/490" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/490/hovercard">#490</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add support for <a href="https://athenaframework.org/guides/proxies/" rel="nofollow">Proxies & Load Balancers</a> (<a href="https://github.com/athena-framework/athena/pull/440" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/440/hovercard">#440</a>, <a href="https://github.com/athena-framework/athena/pull/444" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/444/hovercard">#444</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add new <code>trusted_host</code> bundle scheme property to allow setting trusted hostnames (<a href="https://github.com/athena-framework/athena/pull/474" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/474/hovercard">#474</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add support for deserializing <code>application/x-www-form-urlencoded</code> bodies via <code>ATHA::MapRequestBody</code> (<a href="https://github.com/athena-framework/athena/pull/477" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/477/hovercard">#477</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>ATHA::MapQueryString</code> to map a request's query string into a DTO type (<a href="https://github.com/athena-framework/athena/pull/477" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/477/hovercard">#477</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>ATH::Exception.from_status</code> helper method (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>ATHA::MapQueryParameter</code> for handling query parameters (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>#validation_groups</code> and <code>#accept_formats</code> annotation properties to <code>ATHA::MapRequestBody</code> (<a href="https://github.com/athena-framework/athena/pull/486" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/486/hovercard">#486</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>#validation_groups</code> annotation property to <code>ATHA::MapQueryString</code> (<a href="https://github.com/athena-framework/athena/pull/486" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/486/hovercard">#486</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>ATH::Request#port</code> and <code>ATH::Response#redirect?</code> methods (<a href="https://github.com/athena-framework/athena/pull/436" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/436/hovercard">#436</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>#host</code>, <code>#scheme</code>, <code>#secure?</code>, and <code>#from_trusted_proxy?</code> methods to <code>ATH::Request</code> (<a href="https://github.com/athena-framework/athena/pull/440" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/440/hovercard">#440</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>ATH::Request#content_type_format</code> to return the request format's name from its <code>content-type</code> header (<a href="https://github.com/athena-framework/athena/pull/477" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/477/hovercard">#477</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>ATH::IPUtils</code> module (<a href="https://github.com/athena-framework/athena/pull/440" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/440/hovercard">#440</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>.unquote</code>, <code>.split</code>, and <code>.combine</code> methods <code>ATH::HeaderUtils</code> (<a href="https://github.com/athena-framework/athena/pull/440" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/440/hovercard">#440</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add request matchers for headers and query parameters (<a href="https://github.com/athena-framework/athena/pull/491" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/491/hovercard">#491</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Removed</h3>
<ul>
<li><strong>Breaking:</strong> Remove <code>ATHA::QueryParam</code> (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Remove <code>ATHA::RequestParam</code> (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Remove <code>ATH::Exception::InvalidParameter</code> (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Remove everything within <code>ATH::Params</code> namespace (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Remove <code>ATH::Action#params</code> (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Remove <code>ATH::Listeners::ParamFetcher</code> (<a href="https://github.com/athena-framework/athena/pull/426" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/426/hovercard">#426</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix query parameters being dropped when redirecting to a trailing/non-trailing slash endpoint (<a href="https://github.com/athena-framework/athena/pull/436" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/436/hovercard">#436</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix auto redirection with non-standard ports (<a href="https://github.com/athena-framework/athena/pull/480" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/480/hovercard">#480</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix <code>multipart/form-data</code> not being mapped to the <code>form</code> format (<a href="https://github.com/athena-framework/athena/pull/441" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/441/hovercard">#441</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix being unable to provide the path of an <code>ARTA::Route</code> annotation on a class as a positional argument (<a href="https://github.com/athena-framework/athena/pull/482" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/482/hovercard">#482</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix error when attempting to use <code>ATH::Controller#redirect_view</code> and <code>ATH::Controller#route_redirect_view</code> (<a href="https://github.com/athena-framework/athena/pull/498" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/498/hovercard">#498</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix error when attempting to use <code>ATH::Spec::APITestCase#unlink</code> (<a href="https://github.com/athena-framework/athena/pull/498" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/498/hovercard">#498</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16
tag:github.com,2008:Repository/437616894/v0.19.2
2024-07-31T17:34:24Z
v0.19.2
<h3>Added</h3>
<ul>
<li>Add <code>ATH.run_console</code> as an easier entrypoint into the console application (<a href="https://github.com/athena-framework/athena/pull/413" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/413/hovercard">#413</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add support for additional boolean conversion values from request attributes (<a href="https://github.com/athena-framework/athena/pull/422" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/422/hovercard">#422</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li><strong>Breaking:</strong> <code>ATH::RequestMatcher::Method</code> now requires an <code>Array(String)</code> as opposed to any <code>Enumerable(String)</code> (<a href="https://github.com/athena-framework/athena/pull/431" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/431/hovercard">#431</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Update minimum <code>crystal</code> version to <code>~> 1.13.0</code> (<a href="https://github.com/athena-framework/athena/pull/433" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/433/hovercard">#433</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Updates usages of <code>UTF-8</code> in response headers to <code>utf-8</code> as preferred by the RFC (<a href="https://github.com/athena-framework/athena/pull/417" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/417/hovercard">#417</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix the content negotiation implementation not working (<a href="https://github.com/athena-framework/athena/pull/431" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/431/hovercard">#431</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16
tag:github.com,2008:Repository/437616894/v0.19.1
2024-04-27T14:20:31Z
v0.19.1
<h3>Fixed</h3>
<ul>
<li>Fix <code>framework</code> component docs landing on an empty page (<a href="https://github.com/athena-framework/athena/pull/399" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/399/hovercard">#399</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix <code>Athena::Clock</code> not being aliased to the interface correctly (<a href="https://github.com/athena-framework/athena/pull/400" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/400/hovercard">#400</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix <code>ATHA::View</code> annotation being defined in incorrect namespace (<a href="https://github.com/athena-framework/athena/pull/403" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/403/hovercard">#403</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix <code>ATH::ErrorRenderer</code> not being aliased to the interface correctly (<a href="https://github.com/athena-framework/athena/pull/404" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/404/hovercard">#404</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16
tag:github.com,2008:Repository/437616894/v0.19.0
2024-04-10T00:23:40Z
v0.19.0
<h3>Changed</h3>
<ul>
<li><strong>Breaking:</strong> change how framework features are configured (<a href="https://github.com/athena-framework/athena/pull/337" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/337/hovercard">#337</a>, <a href="https://github.com/athena-framework/athena/pull/374" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/374/hovercard">#374</a>, <a href="https://github.com/athena-framework/athena/pull/383" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/383/hovercard">#383</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Update minimum <code>crystal</code> version to <code>~> 1.11.0</code> (<a href="https://github.com/athena-framework/athena/pull/270" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/270/hovercard">#270</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Integrate website into monorepo (<a href="https://github.com/athena-framework/athena/pull/365" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/365/hovercard">#365</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Support for Windows OS (<a href="https://github.com/athena-framework/athena/pull/270" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/270/hovercard">#270</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>ATH::RequestMatcher</code> as a generic way of matching an <code>ATH::Request</code> given a set of rules (<a href="https://github.com/athena-framework/athena/pull/338" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/338/hovercard">#338</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Raise an exception if a controller's return value fails to serialize instead of just returning <code>nil</code> (<a href="https://github.com/athena-framework/athena/pull/357" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/357/hovercard">#357</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add support for new Crystal 1.12 <code>Process.on_terminate</code> method (<a href="https://github.com/athena-framework/athena/pull/394" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/394/hovercard">#394</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix macro splat deprecation (<a href="https://github.com/athena-framework/athena/pull/330" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/330/hovercard">#330</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Normalize <code>ATH::Request#method</code> to always be uppercase (<a href="https://github.com/athena-framework/athena/pull/338" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/338/hovercard">#338</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fixed not being able to use top level configuration annotations on controller action parameters (<a href="https://github.com/athena-framework/athena/pull/356" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/356/hovercard">#356</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16
tag:github.com,2008:Repository/437616894/v0.18.2
2023-10-10T03:24:27Z
v0.18.2
<h3>Changed</h3>
<ul>
<li>Change routing logic to redirect <code>GET</code> and <code>HEAD</code> requests with a trailing slash to the route without one if it exists, and vice versa (<a href="https://github.com/athena-framework/athena/pull/307" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/307/hovercard">#307</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add native tab completion support to the built-in <code>ATH::Commands</code> (<a href="https://github.com/athena-framework/athena/pull/296" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/296/hovercard">#296</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add support for defining multiple route annotations on a single controller action method (<a href="https://github.com/athena-framework/athena/pull/315" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/315/hovercard">#315</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Require the new <code>Athena::Clock</code> component (<a href="https://github.com/athena-framework/athena/pull/318" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/318/hovercard">#318</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add additional <code>ATH::Spec::APITestCase</code> request helper methods (<a href="https://github.com/athena-framework/athena/pull/312" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/312/hovercard">#312</a>, <a href="https://github.com/athena-framework/athena/pull/313" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/313/hovercard">#313</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix incorrectly generated route paths with a controller level prefix and no action level <code>/</code> prefix (<a href="https://github.com/athena-framework/athena/pull/308" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/308/hovercard">#308</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16
tag:github.com,2008:Repository/437616894/v0.18.1
2023-05-29T19:31:58Z
v0.18.1
<h3>Added</h3>
<ul>
<li>Add support for serializing arbitrarily nested controller action return types (<a href="https://github.com/athena-framework/athena/pull/273" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/273/hovercard">#273</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Allow using constants for controller action's <code>path</code> (<a href="https://github.com/athena-framework/athena/pull/279" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/279/hovercard">#279</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix incorrect <code>content-length</code> header value when returning multi-byte strings (<a href="https://github.com/athena-framework/athena/pull/288" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/288/hovercard">#288</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16
tag:github.com,2008:Repository/437616894/v0.18.0
2023-02-21T00:19:42Z
v0.18.0
<h3>Changed</h3>
<ul>
<li><strong>Breaking:</strong> upgrade <a href="https://athenaframework.org/EventDispatcher/" rel="nofollow">Athena::EventDispatcher</a> to <a href="https://github.com/athena-framework/event-dispatcher/blob/master/CHANGELOG.md#020---2023-01-07">0.2.x</a> (<a href="https://github.com/athena-framework/athena/pull/205" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/205/hovercard">#205</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> deprecate the <code>ATH::ParamConverter</code> concept in favor of <a href="https://athenaframework.org/Framework/Controller/ValueResolvers/Interface" rel="nofollow">Value Resolvers</a> (<a href="https://github.com/athena-framework/athena/pull/243" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/243/hovercard">#243</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> rename various types/methods to better adhere to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="803467524" data-permission-text="Title is private" data-url="https://github.com/crystal-lang/crystal/issues/10374" data-hovercard-type="issue" data-hovercard-url="/crystal-lang/crystal/issues/10374/hovercard" href="https://github.com/crystal-lang/crystal/issues/10374">crystal-lang/crystal#10374</a> (<a href="https://github.com/athena-framework/athena/pull/243" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/243/hovercard">#243</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> Change <code>ATH::Spec::AbstractBrowser</code> to be a <code>class</code> (<a href="https://github.com/athena-framework/athena/pull/249" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/249/hovercard">#249</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li><strong>Breaking:</strong> upgrade <a href="https://athenaframework.org/Validator/" rel="nofollow">Athena::Validator</a> to <a href="https://github.com/athena-framework/validator/blob/master/CHANGELOG.md#030---2023-01-07">0.3.x</a> (<a href="https://github.com/athena-framework/athena/pull/250" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/250/hovercard">#250</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Improve service <code>ATH::Controller</code>s to not need the <code>public: true</code> <code>ADI::Register</code> field (<a href="https://github.com/athena-framework/athena/pull/213" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/213/hovercard">#213</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Update minimum <code>crystal</code> version to <code>~> 1.6.0</code> (<a href="https://github.com/athena-framework/athena/pull/205" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/205/hovercard">#205</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add trace logging to <code>ATH::Listeners::CORS</code> to aid in debugging (<a href="https://github.com/athena-framework/athena/pull/265" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/265/hovercard">#265</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Introduce new <code>framework.debug</code> parameter that is <code>true</code> if the binary was <em>not</em> built with the <code>--release</code> flag (<a href="https://github.com/athena-framework/athena/pull/249" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/249/hovercard">#249</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add built-in <a href="https://athenaframework.org/Framework/Spec/Expectations/HTTP" rel="nofollow">HTTP Expectation</a> methods to <code>ATH::Spec::WebTestCase</code> (<a href="https://github.com/athena-framework/athena/pull/249" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/249/hovercard">#249</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <code>#response</code> and <code>#request</code> methods to <code>ATH::Spec::AbstractBrowser</code> types (<a href="https://github.com/athena-framework/athena/pull/249" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/249/hovercard">#249</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <a href="https://athenaframework.org/Framework/aliases/#ATHR" rel="nofollow">ATHR</a> alias to make using value resolver annotations easier (<a href="https://github.com/athena-framework/athena/pull/243" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/243/hovercard">#243</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <a href="https://athenaframework.org/Framework/Commands/DebugEventDispatcher" rel="nofollow">ATH::Commands::Commands::DebugEventDispatcher</a> framework CLI command to aid in debugging the event dispatcher (<a href="https://github.com/athena-framework/athena/pull/241" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/241/hovercard">#241</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add <a href="https://athenaframework.org/Framework/Commands/DebugRouter" rel="nofollow">ATH::Commands::Commands::DebugRouter</a> and <a href="https://athenaframework.org/Framework/Commands/DebugRouterMatch" rel="nofollow">ATH::Commands::Commands::DebugRouterMatch</a> framework CLI commands to aid in debugging the router (<a href="https://github.com/athena-framework/athena/pull/224" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/224/hovercard">#224</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Add integration for the <a href="https://athenaframework.org/Console/" rel="nofollow">Athena::Console</a> component (<a href="https://github.com/athena-framework/athena/pull/218" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/218/hovercard">#218</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Correctly populate <code>content-length</code> based on the response content's size (<a href="https://github.com/athena-framework/athena/pull/267" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/267/hovercard">#267</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Prevent wildcard CORS <code>expose_headers</code> value when <code>allow_credentials</code> is <code>true</code> (<a href="https://github.com/athena-framework/athena/pull/264" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/264/hovercard">#264</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Correctly handle <code>JSON::Serializable</code> values within <code>Hash</code>/<code>NamedTuple</code> controller action return types (<a href="https://github.com/athena-framework/athena/pull/253" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/253/hovercard">#253</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
<li>Fix <a href="https://athenaframework.org/Framework/ParameterBag/#Athena::Framework::ParameterBag#get?(name,_type)" rel="nofollow">ATH::ParameterBag#get?</a> not returning <code>nil</code> if it could not convert the value to the desired type (<a href="https://github.com/athena-framework/athena/pull/243" data-hovercard-type="pull_request" data-hovercard-url="/athena-framework/athena/pull/243/hovercard">#243</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Blacksmoke16/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Blacksmoke16">@Blacksmoke16</a>)</li>
</ul>
Blacksmoke16