Uncle Versace

Deploy Notes 06.14.2026

Random Thoughts from a Restless Mind

Category: Deploy Notes

Published On: June 17, 2026

💧 The Droplets

Routine Sunday maintenance, plus some runbook hardening that came out of a real near-miss. The weekly-maintenance checklist now does a post-reboot uptime check, since the login MOTD caches its "system information" block and can show pre-reboot stats - not something to trust on its own. The shared verification loop also got split into a hard-coded block per droplet: on 06-08 the old "adjust per box" loop got pasted unadjusted on LEMP 2, so LEMP 1's sites were checked and LEMP 2's own site quietly wasn't. The deploy runbook picked up a standing post-deploy smoke-check too - a quick curl for a 200 - so a deploy isn't "done" until the site is confirmed serving.

🏠 Personal Home Page - v2026.6.2

The Uncle Versace Bot is back on the Projects page. It got pulled a while ago when the project's future was uncertain; it's since grown into the biggest thing I'm working on, so it's earned its card back. Behind the scenes, generated Doctrine migrations now use a custom template so every new migration ships with a description stub instead of a blank one. Small, but it makes the migration history actually readable.

🎬 They Said It! - v2026.6.2 - theysaidit.app

This one finishes the genre migration I started last release. The old free-text genre column is gone now that everything reads from the proper Genre entity and association, and the one-time backfill command that moved the data over got deleted along with it. Two-step on purpose: the previous release added the new model and backfilled it while keeping the old column as a rollback safety net, and this release drops the column now that the new model's proven stable in production. Nothing changes for anyone using the app - genres render exactly as before.

🧙 Accumulated Knowledge - v2026.6.2 - accumulatedknowledge.app

Bigger change here: I pulled archetypes out of the entire user-facing app. The /archetype pages, the navbar link, the home-page card, the deck and format archetype filters and sorts, the profile columns, the deck badges, the archetype field on deck creation - all gone.

The short version of why: archetype theory is genuinely contested. Depending on who you ask there are 3, 4, 6, 9, or more "archetypes," with no canonical answer and a lot of heated boundary arguments about what counts as midrange versus tempo. On top of that, every major MTG tool out there (MTGGoldfish, Untapped, MTGDecks) uses "archetype" to mean a deck-name cluster like "Izzet Phoenix" - which is exactly what this app already calls a Deck - so my theory-category field was muddying the vocabulary on top of everything else. Add in that it was unproven whether anyone actually slices their stats this way, and it just wasn't earning its place in the UI.

To be clear, this is a UI removal only. The data, the schema, and the admin-side archetype management are all untouched, so nothing's lost and it's fully revisitable. If it ever comes back, it'll come back in an industry-standard shape rather than as a fixed taxonomy.

🤖 Uncle Versace Bot (dashboard) - v2026.6.2

The meatiest release in a while. The streamer-facing highlights:

  • Viewers directory. A new "Viewers" page under Activity that lists everyone who's been seen in your channels. Each viewer gets a profile with their full chat history and a name-change history audit. It's all keyed on the immutable Twitch ID rather than the username string, so when a viewer renames on Twitch they stay one entry with both names recorded, instead of splitting in two.
  • Widget background opacity. A new opacity control on the Channel Brand page (and per-widget on each customize page) that makes a widget's background fill translucent while text and border stay solid. Live-previewed, and it works across every widget.
  • Task Board continuous scroll. A new "end credits" scroll display mode as an alternative to the paginated page rotation, with Slow/Medium/Fast speed options and an optional pinned host row.
  • Task Board chat clearing. Two broadcaster-only sub-commands so you can reset a co-working board from chat instead of building a fresh one each stream: !task clearall wipes the whole board and !task cleardone (alias !task clearcompleted) wipes just the completed ones. Both are immediate, no undo.
  • Shorter !task done. Viewer-facing surfaces - chat help, the on-stream widget prompt, chat confirmations - now lead with !task done instead of !task complete. Quicker to type and less room on the overlay; !task complete still works as an alias.

On the admin and behind-the-scenes side: a pile of admin-panel fixes landed - Feature Requests can be marked Completed again, deleting a Feature Request that has votes no longer errors out, a couple of 500s on the Channel edit form and the EventSub/Stream Log filters are fixed, custom row and batch actions no longer bounce you back to page 1, and the dashboard's "EventSub Issues" card stopped showing a permanent false alarm. There's also a set of new read-only admin grids (EventSub subscriptions, Spotify connections, stream logs, platform identities, the command catalog) for visibility. And a one-time identity backfill linked the historical chat-log backlog to viewers - that's the work that makes those new viewer profiles show full history instead of starting from today. Toolwise, the repo also picked up a CI workflow and tighter static-analysis gates.

🔮 On Deck

  • "Sign in with Twitch." The proper OAuth flow is the next big prerequisite, and it unlocks the item below.
  • Channel-point redemption reactions. I dug into the feasibility this past week and it fits the existing EventSub setup cleanly - letting the bot react to channel point redeems (chat replies, check-ins, more), opt-in and disabled by default.
  • Native stream alerts. Still researching building these in as a replacement for StreamElements.

More in Deploy Notes

Deploy Notes 06.07.2026

💧 The DropletsRoutine maintenance — system packages updated, reboots applied, no infrastructure changes....

Continue reading...

Deploy Notes 05.31.2026

💧 The DropletsNot a routine week. The headline was bumping the PHP Redis client extension (ext-redis)...

Continue reading...

Deploy Notes 05.24.2026

💧 The DropletsRoutine maintenance — system packages updated, reboots applied. No infrastructure changes...

Continue reading...