Haunted Tables 👻

It’s been two weeks since the last update, and this one is smaller. No big new features, just making things faster and fixing a few things that were quietly failing.

Turns out Journal was a bit haunted. Each page of shots loaded slower than the one before, so the deeper you scrolled, the worse it got. That one was on me: a cleanup right before the last update broke it. 🙈 While I was in there, I also found that every page of 30 shots set up about 180 little JavaScript controllers. Now a single one handles them all, pages show up about twice as fast, and the next page starts loading well before you reach the bottom.

On the API side, apps can now search community shots. This came from a PR for Decenza, so it can show what everyone else brewed with the coffee you’re about to dial in. I went with new parameters on GET /api/shots instead of a separate endpoint: community switches to community shots, and all the Community filters plus the new canonical_coffee_bag_id work with it, or on your own shots without it. Add full and you get the shot details too, just without the telemetry and with stricter rate limits. Same as on the website, only shots uploaded in the last month show up unless you have Premium. It’s all in the API docs.

Airtable got some attention too. When a base hit its plan’s record limit, new shots just stopped syncing, and the only one who knew was me, staring at thousands of errors. 😬 Now you get an email about it. Or you can skip the sync altogether with Journal. Connecting without picking a base where you’re a Creator now tells you so, and shots that still pointed to an old base after reconnecting now upload to the new one instead of failing.

A few smaller things: uploading a GaggiMate or Meticulous profile instead of a shot now tells you exactly that, GaggiMate shots without a timestamp upload fine (dated when you upload them), and picking files from Google Drive on Android should work now. Linking or unlinking a bag’s canonical coffee in Coffee Management now updates the shots you already brewed from it, filtering Community by notes, profile, or grinder is faster, and fonts now come from Visualizer instead of Google, so loading a page no longer pings Google. Everything else is in the full changelog.

As always, if something looks off, please let me know through GitHub issues or email.

Thanks for reading, and have a spooky weekend! 🎃