Deploy Notes 05.24.2026
Random Thoughts from a Restless Mind
Category: Deploy Notes
Published On: May 25, 2026
๐ง The Droplets
Routine maintenance โ system packages updated, reboots applied. No infrastructure changes this week.
๐ Personal Home Page โ v2026.5.4
Mostly internal plumbing this week, but the kind that pays dividends. Ported the /todo skill from sibling projects so deferred items survive across Claude conversations, and added a docs/releases/ convention with a stub that gets auto-generated whenever I bump the version โ Sunday-night deploys are about to get meaningfully less error-prone when a release needs one-time setup steps. Also locked in three new Symfony conventions in CLAUDE.md (FormType vs manual CSRF, per-feature exception namespaces, Requirement::UUID on route placeholders) so future-me stops re-deriving them. Plus a twig/twig security bump (v3.23.0 โ v3.26.0) that clears seven advisories including a critical PHP code injection.
๐ฌ They Said It! โ v2026.5.4 โ theysaidit.app
Light week โ synced over the new project docs and skills, plus the same Twig security bump.
๐ง Accumulated Knowledge โ v2026.5.4 โ accumulatedknowledge.app
Just ported over the /todo skill. Quiet release.
๐ค Uncle Versace Bot (dashboard) โ v2026.5.4
Big release. Several genuinely user-facing things landed:
- Check-In Seasons + Leaderboard Widget. Streamers can now run named seasons on top of !checkin โ per-season streaks and totals run alongside the lifetime numbers without touching them, so existing streaks are safe. There's also a public OBS leaderboard widget that auto-resolves to the active season or falls back to lifetime when nothing's running, with milestone badges (๐ฅ streaks, โญ totals) computed at render time. !checkin season start to kick one off.
- !featurerequest from chat. Streamers and mods can submit feature requests directly from chat instead of opening the dashboard. Goes straight into the same backlog the roadmap pulls from.
- Wheel: Create from Winners. Once you've marked two or more winners on a wheel spin, a new button hands them off to a fresh wheel pre-populated with their names and colors. Tournament-bracketing got a lot less click-y.
- Task Board widget: chat call-to-action. New toggle-able CTA tells viewers how to add and complete their own tasks via !task, and it's alias-aware for streamers who've remapped the command (e.g. !todo).
- Task Board widget defaults. The customize page now has a "Save as my Task Board defaults" button that promotes a board's tweaks to channel-wide defaults โ so new Task Boards inherit your styling instead of resetting to the channel brand every time the active board rotates. Fixes a real annoyance from co-working streams.
On the foundations side, also shipped the Platform Identity layer โ a global identity record keyed by stable Twitch user ID (not the mutable login), plus a per-channel viewer record and an append-only name-history audit log. Means when a viewer renames themselves on Twitch, their check-in streak and chat history stop fragmenting across two ghost identities. Nothing visible on the streamer-facing side yet โ that's a follow-up โ but every chat event from this point forward links to a stable identity.
And the big internal one: the botโdashboard wire contract got reshaped to the bot's native Twurple envelope โ same release on both sides, lockstep deploy. Knock-on benefit is that nine new chat event types finally land in the log (subs, resubs, sub gifts, community subs, timeouts, bans, message removes, chat clears, announcements) โ the dashboard had been silent on all of those. Whisper events were dropped on the way through; a multi-tenant dashboard has no good home for a private DM to the bot account.
๐ฌ Uncle Versace Bot (Node.js) โ v2026.5.4
Counterpart to the dashboard release above. Forwards the nine new chat event types Twurple exposes, retired the tmi.js compatibility shim, removed the whisper handler, and fixed a /me action bug where the raw IRC \x01ACTION ... \x01 wrapper bytes were leaking into the message text. Also added Prettier + ESLint + Vitest plus a /check-code skill that runs all three before a PR โ bringing the Node sibling in line with the pre-PR tooling the Symfony projects have had for a while.
๐ฎ On Deck
- Battle Royale. First true game feature in the bot. Boom Bears-style passive battle royale โ viewers !join, the sim runs for 3โ5 minutes, eliminations stream into an OBS widget. Unblocked by this week's identity foundation.
- Identity backfill. One-shot console command to populate the new channel_viewer_id FK on historical chat_log rows from data already in the JSON. Pre-launch data hygiene.
- Widget Defaults Phase 2. Standalone editor for per-widget-type defaults, plus extending the layer to Auctions and the Check-In Leaderboard.