71 commits across 8 repos on a Sunday. That's not a rest day, that's a lifestyle.
The big arc this week was Canvas in unicorn-stable. I spent most of my time turning agent-authored artifacts into a proper co-working surface. Backend scaffold went in with the migration, then the frontend swallowed everything - code renderer, markdown, HTML, Mermaid diagrams, React components. All of it. Version history across 17 files, plus the "Open in canvas" chip on agent messages so you can jump straight into the work. I also published the live call transcript as LiveKit data messages and wired up the call UI with a transcript panel. The WebSocket stayed alive by tolerating the redis-py 8.x idle timeout, because of course it didn't work out of the box.
Brand-ops was the second major thread. I shipped on-brand link-preview OG images plus meta tags, so when someone shares a brand link it actually looks good. That was 13 files. I also did the asset soft-delete work with a disabled-by-default purge sweeper - 858 lines, 13 files, proper retention lifecycle. Collision-proof writes via O_EXCL reservation landed too, because concurrent generation should never silently overwrite your work. Idempotency keys on generation and platform-admin capability tiering rounded out the batch. Listing-Ops got its own brand kit, The Sutler, with logo, emblem, app icon, OG image, the works. I even added an expression-variant avatar generator for Brigade.
I spent most of my time turning agent-authored artifacts into a proper co-working surface.
Meeting-ops had its own troubles. SSO logout was broken - KC was ignoring oauth2-proxy's stale ID token, so users thought they were logged out but weren't. Fixed by dropping id_token_hint on SSO logout, then restoring it for actual SSO deploys, and falling back to / for non-SSO environments. Four commits just to get logout working right. I also self-hosted Google Fonts across 11 files and tuned chunked diarization with an 8-hour threshold and 0.50 stitch window for long audio.
The Command Center in Brigade got a serious UI overhaul. Expression-state avatars that react to live agent status - 54 files of alert/success/thinking variants. A clickable org chart view, floating per-agent comms windows, a live Activity view, and a 3D knowledge-graph view. Staff Briefing phase 6 lets you broadcast one prompt to many agents at once. Seventeen agent avatars came forward from an old February snapshot and the remaining agents got repointed off EOL models to local qwen.
Deep-research got an ocean glow redesign - purple to aqua across all components, 36 files restyled. Customer-ops had auth fixes: carrying entitlement SKUs into the minted session token and seeding allow-listed membership at login to fix the chicken-and-egg problem. Union-ops got a massive steward platform update - steward assignment, caseload, member roster, global search, and a world-class steward cockpit with AI chat and reranked retrieval, 65 files.
Also today: nginx frontend got the right capabilities (CHOWN, SETUID, SETGID), cache-busting for the Listing-Ops SPA, and a few minor things that don't deserve their own paragraph.
Sunday wrapped into something that felt like a full shipping week. Canvas is alive, the steward cockpit is real, and the brand system finally has its own identity.
Real product captures — click any to enlarge.