← Back to the studio dashboard
Living document · rebuilt as work happens

Build Log & Roadmap

A complete, plain-language record of what's been built for Katie Brown Workshop's social/video/archive operation, what's live right now, and everything still open — split into what Agent Katie can move forward alone and what needs a decision or action from a human.

Last compiled 2026-08-25 · America/New_York · maintained by Agent Katie

A. Chronological Build Log

What was actually built, fixed, or decided — in order. Source files cited in parentheses.
2026-07-29
  • Standing email authorization granted by William: Daily Intelligence Brief auto-sends with no approval needed; all other inbox replies stay approval-gated (forward to William → wait for explicit APPROVED). (TOOLS.md)
  • Upload-Post integration connected — one API to publish to Katie's social accounts (YouTube, Instagram, X; TikTok not connected). (TOOLS.md)
2026-08-03 / 08-04
  • Brand disambiguation rule added — the Food & Wine "Katie Brown" is a different person; filtered out of news collection. (TOOLS.md)
  • OpenAI gpt-image-1 wired in for real photorealistic image drafts (falls back to a text/graphic card if the call fails). (TOOLS.md)
  • Content Approval Queue built: Cloudflare Pages Function + KV store, /api/queue + decision endpoint, team/agent token auth, publisher script, 10-minute cron. At this point there were no real archive photos yet and no video publish path. (TOOLS.md)
2026-08-19
  • Built and deployed Team Room — the chat-first dashboard shell (sage/cream design), 5 Cloudflare Functions (auth, chat, conversations, upload), its own KV store. Live at kbw-team-room.pages.dev. (memory/2026-08-19.md)
  • Fixed a login-state bug and a reload bug that re-triggered the old encryption gate. (memory/2026-08-19.md)
  • Flagged: the quick Cloudflare tunnel exposing the gateway is temporary/restart-fragile — needs a permanent tunnel or reverse proxy eventually. (memory/2026-08-19.md)
2026-08-20
  • Confirmed kbw-team-room.pages.dev (i-Katie) as the primary dashboard going forward; the older signals dashboard demoted to secondary. (memory/2026-08-20.md)
  • Built a visual "Getting Started" guide in the sidebar; simplified login to one shared team password with a 30-day session cookie. (memory/2026-08-20.md)
  • Popcorn AI video creation connected (API key, MCP endpoint, credits confirmed). (memory/2026-08-20.md)
  • Mapped katiebrown.com's site structure; William authorized using site images for social content. (memory/2026-08-20.md)
  • Pinterest follower count corrected after a bad scrape (167,241 → real figure 16,000); Upload-Post found Pinterest + LinkedIn as newly connectable, YouTube handle corrected. (memory/2026-08-20.md)
  • Deep-dived Katie's brand voice materials — built the first Katie Brown Voice Bible from the KB Bible brand doc ("Simple. Fun. Comfortable." / "Katie is a cook, not a chef."); pulled real 2008 Meijer shoot photos into 10 queue items, replacing generated graphics. (memory/2026-08-20.md)
  • Late night: fixed a JS crash, temporarily pulled the login screen during a caching bug, added mood board/quiz/trend scoring, rewrote all 14 live queue captions in Katie's real voice, drafted the first roadmap doc. (memory/2026-08-20.md)
2026-08-21
  • i-Katie chat fixed — auth was issuing plain tokens the chat function couldn't verify; rewrote with proper signed tokens. (memory/2026-08-21.md)
  • Fixed quiz mobile-advance bug and a missing-image rendering gap in the team room. (memory/2026-08-21.md)
  • Generated 13 unique AI photos to replace duplicates, added text overlays to 4 hero images, created the first 2 Instagram Reels via Popcorn, restored 3 YouTube Shorts + 2 Reels that had been accidentally wiped — 25 items pending review at day's end. (memory/2026-08-21.md, images-generated-2026-08-21.md, reels-created-2026-08-21.md)
  • Video publishing path added to the publisher script — not yet tested end-to-end. (memory/reels-created-2026-08-21.md)
  • Private GitHub repo created for the dashboard/team-room source code; first commits pushed. (memory/2026-08-21.md)
  • Major milestone: William shared the full historical Drive archive — the 2000–2013 era ("!KBW DRIVE": PBS/Meijer/NYT years) and the 2014–2016 era ("kbw yahoo": Yahoo Makers years). Described as "the archive access we've been waiting for." (memory/2026-08-21.md)
  • Indexed the 2000–2013 archive: 995 folders, ~4,905 files, 2,574 images, zero video files found in that era. Indexed the 2014–2016 archive: 8,091 items, 38.7 GB, 106 videos, 534 "Katie Loves" photos. Combined system spans ~43 GB, ~9,100+ files, 209 NYT columns, 100+ recipes/DIY projects, 2000–2026. (memory/2026-08-22-kbw-drive-full-index.md, kbw-digital-archive-system.md)
  • Re-enabled the Content Queue Publisher cron (had been off since July 4 due to a channel error) plus Signals Refresh, Daily Brief, and Inbox Triage crons; added email confirmations for publish/failure/rejection. Full draft → queue → approve → publish → confirmation flow confirmed live end-to-end. (memory/2026-08-21.md)
  • Built a 30-day content calendar (Aug 23–Sept 21) with cadence targets; flagged the YouTube Shorts 3/week target as aspirational since the video pipeline was still new. (memory/2026-09-content-calendar.md)
  • Wrote a comprehensive roadmap covering login options, the katiebrown.com SSL issue, Pinterest cleanup, tunnel permanence, archive-photo usage, and voice calibration — used as the basis for most of the following week's work. (memory/2026-08-21-roadmap.md)
2026-08-22
  • Fixed an email-flood bug: the publisher's rejection notifier had been re-firing every 10 minutes for the same two items, sending 123+ duplicate emails to William over ~34 hours. Cron paused, root cause patched (a "seen" flag was never actually being set), stuck items marked terminal, cron re-enabled and verified clean. (memory/2026-08-22.md)
  • Fixed 4 dashboard bugs (mood board stale, quiz blank, conversations disappearing, trends not clickable) — all traced to one root cause: the dashboard was skipping real login, so every background call to chat/preferences/conversations was silently failing auth. Fixed to establish a real session quietly in the background with the same one-click feel. Also fixed trend headlines to link to real articles, and tightened the data-refresh-to-live-site lag from up to 4.5 hours down to about 15 minutes. (memory/2026-08-22.md)
  • Fixed the approval queue actually publishing: discovered the dashboard's approval wall and the real publish queue had drifted into two disconnected systems — some visible items didn't exist in the real queue (approving them silently did nothing) and some real live items never showed up in the UI at all. Reconnected the dashboard to read the one real queue. (memory/2026-08-22.md)
  • Fixed an approve/reject field-name mismatch that caused the UI to show "✓ Approved" even when the real API had rejected the request with an error — approvals were silently not taking effect. Verified live: approved a real post, confirmed it published to X. (memory/2026-08-22.md)
  • Fixed a hard crash in the "Getting to Know You" quiz that silently broke the entire dashboard for any visitor who'd answered one of the photo-based questions — this explained why some earlier fixes appeared "not to take" for certain people. (memory/2026-08-22.md)
  • Corrected i-Katie's own self-description — it had been telling people it had narrower, read-only access than it actually has; it can, in fact, edit the dashboard/team-room source directly (same human-approval rules for anything published/sent/deleted still apply). (memory/2026-08-22.md)
  • Rebuilt the quiz's 15 photo thumbnails with AI-generated images written directly from each answer's own label, after finding several of the original stock photos didn't match their questions at all (one showed blueberries for a room-preference question). Verified all 15 now match. (memory/2026-08-22.md)
  • Wired the quiz answers into i-Katie's actual conversational tone for the first time (previously they updated a progress bar and nothing else) — plumbing verified working, not yet spot-checked in a long real conversation. (memory/2026-08-22.md)
  • Re-indexed the Yahoo Drive archive at William's request — found no new content had actually landed; the uniform recent timestamp across all files turned out to be a re-share/permissions touch, not new uploads. Surfaced a clarifying question back to William (still open). (memory/2026-08-22-yahoo-drive-reindex.md)
  • Pushed all fixes to GitHub; ran a full stability pass across every dashboard section with zero new errors found.
  • Built a standalone Overview / source-of-truth page explaining i-Katie's vision, the "two i-Katies" split, every connection's live/blocked status, and known gaps — linked from the sidebar. (memory/2026-08-22.md, team-room/overview.html)
  • Started walking William live through Google Workspace SSO setup (Cloudflare Access) so the team can log in with real @katiebrown.com accounts instead of the shared password — paused mid-setup, waiting on William to report what he sees on the OAuth "Audience" screen. (memory/2026-08-22-google-sso-walkthrough.md)
  • Built a genuine voice-recording feature (browser microphone capture, stored clips, playback/delete) for future Popcorn voice-cloning use — tested the storage/serving pipeline end-to-end; not yet connected to an actual voice-cloning call, and no real recording from Katie exists yet to test against. (memory/2026-08-22.md)
  • Discussed possible MCP (Model Context Protocol) expansion directions with William — no decision made yet. (memory/2026-08-22.md)
2026-08-24
  • Indexed the remaining Yahoo Drive collections into the searchable Digital Asset Library — pushed roughly 6,900+ new asset records (KB01–KB06 Makers-era footage/stills alone: 6,320). Total library size grew from ~2,600 to ~9,550 indexed assets. Two folders skipped on purpose: an empty "Sag Harbor Before/After" folder, and raw editing-project files with no standalone content. (memory/2026-08-24-yahoo-dam-ingest.md)
  • Built and proved out an AI likeness/morph capability (Runway, reference-image mode) that can take a real archive photo of Katie and generate a new styled image that preserves her actual likeness, at Katie's explicit request after rejecting a purely synthetic AI photo. Verified working on one test image, then deleted the test — deliberately not wired into any automated pipeline, since SOUL.md treats an actual AI likeness of Katie as a Brand-Authority-level decision requiring her/William's explicit sign-off on the reference photo, style, and specific output before it ever reaches the queue. (memory/2026-08-24-archive-photo-ai-morph-capability.md)
  • Extracted 6 personal essays from Katie's unpublished "Katie Brown Entertains" book manuscript (old Word files) as high-value first-person voice reference material — confirmed unpublished/rights-status-uncertain, flagged not to publish or quote at length without checking with William/Katie first. (memory/2026-08-24-book-manuscript-voice-corpus.md)
  • Expanded the "daily wisdom" nugget bank used in the morning brief from 22 to 54 curated, non-repeating entries, mined from the KB Bible PDF, old NYT column drafts, bio/interview documents, and the manuscript essays above — deliberately held to a strict quality bar rather than padding toward a target of 75–150; video/social transcription (Instagram, YouTube) explicitly deferred as a separate future project. (memory/2026-08-24-wisdom-bank-expansion.md)
2026-08-25 (today)
  • Morning status check: all crons running clean, inbox has nothing needing triage, 14 items sitting in the approval queue backlog awaiting a human review pass.
  • This build log & roadmap page created as a living reference document.

B. Current State

What's actually live and working today, and what's known-broken or half-built.

Live & working

SystemStatusNotes
i-Katie dashboard (kbw-team-room.pages.dev)LivePrimary team dashboard — chat, mood board, trend watch, quiz, queue, DAM browser, overview page
Content Approval QueueLiveCloudflare KV-backed; single real queue after the Aug 22 dual-system fix; 14 items in pending_approval as of 8/25
Publisher cron (Instagram + X photos)LiveRuns every 10 min, only touches items with status=approved; email confirmations on publish/fail/reject
Digital Asset Library (DAM)Live~9,550 indexed images/videos from both Drive eras + Yahoo era; searchable at /dam
Gmail / Calendar / Drive (agentkatie@)LiveRead/search/draft; sending stays approval-gated except the pre-authorized daily brief
Daily Intelligence BriefLiveAuto-sends daily, pre-authorized by William
Inbox triage cronLiveForwards anything needing a reply to William for approval; auto-skips newsletters/spam
Popcorn video generationLive2 Reels produced so far, sitting in the queue as drafts
AI photo generation (OpenAI + Runway)LiveSynthetic photos (OpenAI) live in the daily pipeline; likeness-preserving morph (Runway) built and proven but gated behind explicit sign-off
Voice recording featureBuilt, unusedStorage/playback works; not yet connected to a real voice-cloning call; no real Katie recording exists yet

Known-broken / known-limited

C. Tasks for Agent Katie can move alone

Work Agent Katie can pick up and progress without waiting on a human decision first (final publish/send/delete still stays gated as always).

D. Tasks for the Team needs a person

Decisions, approvals, or actions that can only come from William, Katie, or Prentiss.

E. Standing Decisions & Policies

Rules already agreed and currently in force — recorded here so nothing gets re-litigated by accident.