Necessary to account for `File` or `Tempfile` types. `StringIO` is also included to make testing easier since they have, roughly, the same Object API. `Pathname` is always preferred but when dealing with file uploads, attachments, etc. these will be `Tempfile` instances so this new type aids with this.
Milestone: minor
link:https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released[Details]. For the most part, this is a minor update despite Ruby bumping to a major version. One breaking change is that you no longer can use `CGI` for parsing URLs. Here's the details:
* Removed all `Pathname` requires since it's a core class now. 🎉
* Use `Rack::Utils.parse_query` instead of `CGI.parse`.
* Passing a non-String -- or any object that can't cast to a string/path -- for a `Pathname`, results is a different error message now.
* Includes minor/patch updates to supporting gems as well.
Milestone: minor
No longer needed as all of these dependencies have been folded into the application. This includes the removal of the Containable and Infusible gems as those were only needed for library purposes.
Milestone: patch
Necessary to revert the refactorings made in 3a6e82ddee (Updated to Caliber 0.84.0) because the RuboCop team has addressed community feedback and relaxed the restriction on using `it` in functional pipelines. 🎉
Milestone: patch
link:https://alchemists.io/projects/caliber/versions/0.84.0/[Details]. This also picks up a Rouge patch.
One of the interesting quirks of this change is that the RuboCop team changed how `it` works for functional pipelines. I've refactored the code to account for this change but also raised concern with the RuboCop team since this was surprising to introducing in a minor version bump.
Milestone: minor
Necesssary to provide safe defaults and ensure they show up in the error responses. The defaults are done at the type level rather than the settings level which is why the setting only uses an empty hash as the default.
Support for integer has been added so you can use an integer or float for the `process_timeout` and `timeout` values. This also ensures the defaults are supplied when only partial settings are supplied.
Issue: 225
Milestone: patch
Necessary to allow folks to supply a limited amount of settings for the Ferrum browser. This will soon be used as an application setting that will be provided to `Terminus::Aspects::Screens::Shoter` when performing screen shots.
Issue: 222
Milestone: minor
Necessary, with the filters, to ensure sensitive information isn't leaked in the logs. The property formatter is being used as a sort of temporary solution to log all details in a clean fashion (this will need to be revisited in the future).
Issue: 210
Milestone: minor
Necessary to reduce unnecessary typing and setup by defaulting to 200 status (this mimics Hanami's own response status which is 200 if you don't supply a different value). Now, only when the status isn't 200, do you need to supply a code.
Milestone: patch
Necessary to ensure you can leverage the link:https://usetrmnl.com/framework[TRMNL Framework] when using the Designer and/or Screens API because you'll need to pull in our stylesheet and associated JavaScript code in order for the screen to render properly.
Issue: 192
Milestone: patch
Originally, the idea was that this functionality might be extracted to a gem (could still be possible) but decided to bring this into the main application for improved organization and reference.
Milestone: patch
Necessary to modify the original implementation by ensuring images are attached to screens instead of stored in the public folder.
_This is a breaking change_ that will require the Screens API create action to be updated shortly.
Milestone: minor
Necessary to modify the original implementation by ensuring images are attached to screens instead of stored in the public folder.
_This is a breaking change_ that will require the Screens API create action to be updated shortly.
Milestone: minor