Timriley iconTimrileySep 16, 2026 ~2 min source read

Continuations 2026/37: Response streaming

Weeknotes from Tim Riley covering a new job, maintenance fixes, Dry CLI improvements for streaming and styled text, Hanami Action response streaming, sponsor updates, and recent maintainer activity.

Continuations 2026/37: Response streaming

Share this story

Send the public story page.

Useful takeaways from this story.

Added response streaming support to Hanami Action and pushed a related fix inspired during a trip to Sydney.

Dry CLI gained per-stream styled text support and injectable stream dependencies (stdout, stderr, stdin) to improve testing and behavior when redirecting.

dry-rails was updated for Rails 8 and released as dry-rails v0.8.0 via an automated maintainer release.

# Continuations 2026/37: Response streaming

These weeknotes cover work across several Ruby libraries and community activity. Tim Riley reports a new job, maintenance fixes prompted by a gem upgrade, practical improvements to Dry CLI for streams and styled text, a Hanami Action response-streaming addition, sponsor-list updates, and maintainership developments across the Dry ecosystem.

New job and context

Tim started a new role at HotDoc as a manager/engineer. That change in schedule pushed these notes later than usual, but it also frames the week: small bursts of focused maintenance and collaboration across libraries he helps maintain.

Dry Monads: fix for json gem 3.0

Dry Monads' CI started failing after the json gem removed the json/add custom serialization machinery in version 3.0. The codebase was migrated to the new JSON::Coder API and released as Dry Monads v1.11.0. This is a targeted compatibility change to keep serialization working under the newer json gem behavior.

Dry CLI: styled text and stream dependency handling

Styled text support landed in Dry CLI. Key characteristics:

  • Work was collaborative, with multiple contributors (Aaron and Tim) adding different parts of the feature.

Separately, Tim continued work on Dry CLI's handling of streams so that stdout, stderr, and stdin can be injected as command dependencies. That makes commands easier to test while allowing subclasses to retain their own initialize methods. The approach is described as slightly unorthodox but pragmatic: keep framework-level dependencies unobtrusive while improving testability.

Hanami Action: response streaming added

Community and maintainership notes

  • Tim updated the individual sponsors listing on the Hanakai sponsors page to reflect 32 sponsors, with plans to automate those updates in future work.
  • Adam performed the project's first automated maintainer release, publishing dry-rails v0.8.0. The process completed smoothly and represents a shift toward automated releases handled by additional maintainers.

Small personal notes

Tim made a short trip to Sydney to visit a friend and got sunburnt on a walk between Coogee and Bondi. The visit coincided with a productive burst of maintenance work and inspiration for the Hanami Action streaming change.

Questions raised in community channels

Tim answered Discord questions about advanced ROM associations and array associations on changesets. These are active areas of discussion among maintainers and users.

What this means for users

  • If you rely on Dry Monads and upgraded the json gem, update to Dry Monads v1.11.0 to avoid serialization issues.
  • If you use Dry CLI and need testing-friendly streams or conditional styling when redirecting output, new styled text features and injectable streams will be useful.
  • Hanami Action users can try the new response streaming support and report feedback to the maintainers.
  • Rails projects integrating dry-rails should track the v0.8.0 release and the updated Rails compatibility.

Overall, this week focused on compatibility maintenance, practical improvements around streams and styling, and ongoing community-driven releases and automation.

More context around this story.

Continuations 2026/35: Brief moments of lucidity
Timriley iconTimrileyAug 31, 2026

Continuations 2026/35: Brief moments of lucidity

Originally appeared on Tim Riley . Been sick as a dog ever since I wrote my last weeknotes, so there’s not a lot to report here except general feelings of uselessness. Good news, though: I’m now on antibiotics and hoping to be back to normal within a few days. 🤞 In my brief moments of lucidity, I managed to push forwa

Streaming Large HTTP Responses Without Killing Your Memory
Dev iconDevSep 4, 2026

Streaming Large HTTP Responses Without Killing Your Memory

Hey memory-conscious developers! 👋 Ever downloaded a 500MB file with HttpClient and watched your app's memory balloon? Today we'll fix that with streaming! The Problem: Buffering Everything By default, HttpClient buffers the entire response in memory: // 😱 This loads EVERYTHING into memory! var content = await client

Continuations 2026/34: First anniversary!
Timriley iconTimrileyAug 26, 2026

Continuations 2026/34: First anniversary!

Originally appeared on Tim Riley . Happy first anniversary to my weeknotes ! I started these exactly 52 weeks ago , and managed to write on 49 weeks since then. I’ll call that a success! After all this time, it still feels good. I’m going to keep it up. This week is also my first of three weeks of funemployment between

Continuations 2026/38: Goodbye Guard
Timriley iconTimrileySep 21, 2026

Continuations 2026/38: Goodbye Guard

Originally appeared on Tim Riley . I’m trying to get these weeknotes back on track: aiming for a Monday release at the latest. Happy Monday :) The biggest thing I got up to this week was reviewing all of Andrea ’s wonderful work adding internal code reloading to Hanami—goodbye Guard! The Dry System piece is now merged,

Loading more related stories...

Keep reading in the app

Open the app view to save this story, compare related coverage, and continue from the same source.

Open in app