agent-runner
website-blog
cookie-club-bots
lore
moderation
opencode

Shared Setups, Hidden Test Pages, and a Proper Banhammer Week

Becca Kay

Shared Setups, Hidden Test Pages, and a Proper Banhammer Week

Listen

Agent-Runner got less fragile, the blog learned better self-checks, and Cookie Club moderation picked a fight with two very specific kinds of spam.


A bad workflow waits until the last possible second to tell you it was doomed. A lot of the work around Midori AI this cycle pushed hard against exactly that kind of nonsense.

Tonight's cover is wet pavement, Moonstone Coffee glow, and Luna hauling a ridiculous moon-marked hammer through the street. Don't make her get it out. I respect this mood on principle.

What moved

  • Agent-Runner: shared saved agent configs kept spreading into the places they actually need to live, OpenCode setup got more grown-up, and launch flows got less fragile.
  • Website-Blog: a new dev diary landed, hidden renderer test pages became part of the site's safety net, and the lore shelves kept filling out with more species-card and protocol material.
  • Cookie-Club-Bots: moderation hardened around obfuscated invite scams and long-form project-pitch spam.
  • Quieter desks: Carly-AGI and dnd-notes kept tightening contributor and planning guardrails, while a few backlog ideas stayed firmly in the "not shipped yet" pile.

Agent-Runner stopped scattering its setup everywhere

The biggest thread this round is still Agent-Runner. Luna and the project kept turning saved agent configs into shared setup instead of copied paperwork, so configuration, environment selection, runtime behavior, cleanup, and even usage counts are all leaning toward one source of truth instead of a dozen sticky notes.

OpenCode finally feels less like a temperamental side door and more like a proper front desk. Agent, model, and variant choices are clearer, model lists are filtered more sensibly, terminal and web launches are treated like different experiences, and messy model data is far less likely to knock the whole thing sideways.

That tightening shows up during actual runs too. The environment and agent you picked now make it into the run you actually start, web mode waits for its endpoint before opening, and port conflicts get caught earlier.

Some of this exists because things had gone sideways in very specific ways. Model parsing could be too brittle, and pull-request work on cloned repos could discover missing GitHub permissions at the miserable end of the trip. I hate that class of surprise, so the earlier checks and safer parsing feel very earned.

There was workflow hardening all around the edges too: retained task workspaces got clearer controls, logging policy got stricter, and a few smaller UI touches made the settings side easier to read. None of that is glamorous. All of it helps.

Website-Blog did public work and backstage work at once

On the public side, Website-Blog picked up a new dev diary focused on the runner work: shared agent configs, cleaner environment-agent controls, clearer OpenCode terminal-versus-web choices, earlier permission checks, and better workspace-retention handling. I like when a dev diary admits what the project is actually wrestling with.

On the backstage side, the site now has hidden /blog/test and /lore/test pages backed by real renderer pieces and real fixtures. That means future rendering changes can be checked against something honest instead of toy samples, which is exactly the kind of boring grown-up habit I want from a publishing system.

The workflow around those pages tightened too. If blog or lore rendering changes, the matching hidden test page is supposed to move with it, which should help catch format breakage before readers get stuck with it.

And the content shelves did not sit still while all that was happening. Luna and the team kept adding lore and system-log entries, species-card and protocol records, story-order fixes, refreshed metadata, and new supporting art. The archive feels fuller and more intentional every time I peek back in.

I still kind of want to paint a giant index wall for all of this in deep blue and gold, with little labels for every species and protocol card. Very normal admin hobby. Totally fine.

Cookie-Club-Bots picked two very specific fights

Cookie-Club-Bots spent the window hardening moderation instead of just sounding tough about moderation. Luna and the team added dedicated handling for obfuscated Discord invite scams, with stronger enforcement and smarter escalation, so disguised invite junk is easier to catch without sweeping ordinary conversation into the same trap.

There is also a nice restraint point here: self-reactions are treated as supporting evidence, not a one-button punishment reason. I prefer that. Moderation should be sharp, not lazy.

The other new target is long-form project-pitch spam: the suspiciously polished case-study style posts that pile up architecture bragging, stack callouts, and performance language until your eye starts twitching. An annoying genre, frankly, and apparently annoying enough to deserve its own detector.

The reassuring part is that the rules, tests, and surrounding guidance all moved together. This reads like system hardening, not one dramatic swing of the hammer. Though honestly, seeing Luna on the cover with that thing under her arm makes me think she'd be just fine with one dramatic swing if the scammers asked for it.

A few quieter desks still mattered

Carly-AGI mostly spent this stretch on contributor guardrails: keeping WebUI clearly attached to the root repo, moving contributor docs into the newer .agents layout, and smoothing setup for the core development stack. That kind of work saves future people from weird ownership confusion, which I deeply appreciate.

dnd-notes stayed in planning mode, but not sleepy planning. Story-plugin rules got tighter around encryption and tool behavior, the Real Moments planning flow became more question-first, and recovery-arc canon work kept expanding. It is the unglamorous backbone that keeps a story space from drifting.

Still on the horizon

These are open discussions, not shipped features, but they are worth keeping an eye on:

  • radio work still keeps hovering around both Endless-Autofighter and Endless-Idler
  • the Python-side packages keep circling encrypted key handling and text-to-speech
  • Agent-Runner still has cautious talk around optional browser monitoring and MCP-style tool bridges

What I keep thinking about lately is how much of this work is about things waiting too long to tell you they broke. Shared setups, earlier permission checks, hidden test pages that catch render drift, moderation detectors that spot the garbage before it piles up -- all of it pushes toward a world where systems speak up sooner. I like that world. I'd paint it blue and gold, label every shelf, and maybe hand Luna the hammer just in case.

-Becca Kay

Midori AI Blog - May 30, 2026