Thai-ing Up Loose Ends

It’s only been a few days since the last update, but I wanted to give you a heads-up: I’m off to Thailand 🇹🇭 and will be there until November 20th.

I’m taking my laptop with me, so I’ll keep an eye on everything and deal with whatever comes up. Replies might take a bit longer than usual though, so please bear with me. 🙏 Visualizer itself doesn’t take holidays, so everything keeps running as usual, Premium included. When I was in Japan this summer, there wasn’t a single incident, so fingers crossed for another boring few weeks. 🤞

Before leaving, I fixed something a few people ran into: downloading a shot into DYE with its share code failed for shots uploaded from Decaid, the new Decent app formerly known as Reaprime. Decaid only uploads the newer JSON version of the profile, without the TCL fields DYE reads, so DYE got an empty profile and choked on it. Now Visualizer builds the TCL profile from the JSON one, so Decaid shots download fine, even ones uploaded before the fix, and the profile download button on the shot page gives you a proper TCL file too. Shots without any profile no longer offer an empty one either.

If you build on the Visualizer API, OAuth apps can now use PKCE. It’s optional and S256 only, so apps that sign in with a client secret don’t need to change anything. Mobile, desktop, and browser apps can’t keep a secret, though, so they should be registered as non-confidential and use PKCE instead. One catch: Visualizer used to ignore PKCE parameters, and now it checks them, so an app that sends them incorrectly will start failing. I emailed everyone who registered an OAuth app with the details, and you can try the PKCE sign-in right in the API docs.

And for the RSS fans out there, the updates feed now includes the full posts instead of just the excerpts, so you can read them right in your feed reader. 🤓

Behind the scenes, Visualizer now builds on the Ruby core team’s own Docker image. Ruby 4.0.9 took about 16 hours to show up in the image I used before, and only minutes in this one, so Ruby security fixes can reach Visualizer much sooner. The switch went through without any downtime. Plus the usual dependency updates, all in the full changelog.

As always, if something looks off, please let me know through GitHub issues or email. I’ll still read everything, maybe just a bit later than usual. 😅

Thanks for reading, enjoy the rest of your week, and please try not to break anything while I’m gone! ☕