Skip to content

v1.1.0

Choose a tag to compare

@flavorjones flavorjones released this 08 Oct 14:23
· 12 commits to master since this release
53cc559

v1.1.0 / 2026-10-08

HotCell::Server

Added

  • An operation can say why it couldn't decode an input: a subclass of HotCell::UnreadableInput that defines self.cause sends that cause with the unreadable failure. HotCell::Codes::PROTECTED names the first such cause, protected. See docs/codes.md.

HotCell::Client

Added

  • The exception that the client raises for a failed call carries the HotCell::Failure, so an application can read the failure's code and cause without parsing the message. Call hot_cell_failure on the exception, or rescue HotCell::Verdict, a module that the client extends onto every such exception, to catch it whatever classes the application registered. See Response codes. (#97)

ActiveStorage::HotCell::Client

Fixed

  • A JPEG uploaded as .jfif, .jif or .jfi is transformed instead of failing permanently as unreadable. Rails names a web image's variant format after the upload's extension. The ImageMagick transformer has no coder for these extensions, and the Vips transformer has no saver for .jif or .jfi. The transformers now send the cell the canonical extension of the format's content type, such as jpg, which is the extension Rails falls back to. (#84)

HotCell::Client::Legacy

Added

  • hotcell-client-legacy is a new gem that lets an application on a legacy Ruby version call a cell. It has no dependencies, and it speaks the same wire protocol as hotcell-client but leaves out Rails integration, Active Storage support and metrics. See docs/client-legacy.md. (#100)

ActiveStorage::HotCell::Server

Added

  • The mutool and Poppler PDF previewers answer unreadable with cause protected for a password-protected PDF. An application that shows a lock placeholder for these PDFs can read the cause instead of matching the tool's error message.