Fresh Shots in Your Inbox

It is a turbulent world out there. Lots of things are happening all the time, so even though I have not posted anything since the last update, that definitely does not mean nothing happened.

A surprising amount of maintenance time now goes into keeping an eye on AI-related vulnerabilities, supply chain attacks, CVEs, dependency releases, runtime updates, and all the other boring but important things that keep Visualizer running safely. Not very glamorous, but absolutely necessary.

There was also one notable downtime incident. On April 22, Visualizer was down for about half an hour because of issues with the hosting provider. The database was unreachable during a Hetzner outage, and there was not much I could do except monitor and wait for things to recover. If you want more background, there was also a Reddit thread about Hetzner cloud leaf faults. Sincere apologies to everyone affected!

On the more user-facing side, Visualizer now has email notifications for new shot uploads in addition to the existing push notifications. Because I need to pay for email delivery, these are disabled by default and limited to Premium users. To put it in prespective: just 2 weeks ago there was a new record: 23,227 shots uploaded in a single week. 🤯

There were also some parser and chart improvements. Visualizer now parses Beanconqueror water dispensed data for Sanremo YOU exports, and I fixed a water flow timing issue in that same area. I also fixed temperature graphs using a full 0 to 100 scale instead of a useful range, which made the temperature line look almost flat. Dual axis charts also align zero thresholds more sensibly now.

Coffee Management got a few smaller improvements too. Active coffee bags are sorted ahead of frozen ones in the shot edit dropdown, and the coffee bag combobox now preserves the original ordering where that matters. The Loffee Labs importer was also updated to their new API.

I also finally fixed passkey login not prompting for Bitwarden. That one has been open for a while, and passkeys are one of those features where browser support and authenticator behavior can be surprisingly fiddly, but it should behave much better now.

Behind the scenes, Visualizer moved through Ruby 4.0.3, 4.0.4, and 4.0.5, got a Rails security bump, a refreshed Dockerfile, Bootsnap frozen strings, dependency updates, some Postgres tuning, and a bunch of other small changes.

As always, if you run into bugs or have ideas for improvements, please keep opening GitHub issues.

Thanks for reading, and enjoy your weekend! ☕