/ Infrastructure Status Internal
Infrastructure Status

What's actually live

Ground-truth audit of every system — cron jobs, API routes, Supabase tables, and dead code. Sourced directly from the repos.
Last audited: 3 June 2026
1

Overview

System Status Repo What's running
Always-on infrastructure
NHH scheduler Live nearly-headless-hilda 26 active cron jobs. Heartbeat + watchdog always on. Business-hours tasks every 15–30 min.
NHH Slack bot Live nearly-headless-hilda 3 event handlers: app_mention, message, reaction_added.
Client portal
The Burrow Live (core) hedgehog-client-portal 36 API routes, 18 Supabase migrations. Chat not yet wired to real backend.
Autopilots
HH Google Ads autopilot Live hh-google-ads-autopilot 5 crons. Chain-based weekly pipeline Sun 8pm + daily anomaly scan.
HH Meta Ads autopilot Live hh-meta-ads-autopilot 4 crons. run-all Sun 9pm + daily anomaly scan + objection expiry.
MM Google Ads autopilot Live mm-google-ads-autopilot 11 crons. 8 per-client runs Sun 8pm staggered + digest/anomaly/monthly.
Routing
Slack interactions router Live hh-slack-interactions-router 3 routes. Receives all autopilot Slack button clicks, routes to correct backend.
2

NHH scheduler

Nearly Headless Hilda
teddi-coder/nearly-headless-hilda · Fly.io (hilda-scheduler + nearly-headless-hilda)
Live
Autonomous marketing agent running as two Fly.io apps. The scheduler runs 26 cron jobs. The Slack bot handles mentions and messages. All external integrations (ClickUp, Google Drive, Gemini, Gmail, Supabase, MCP servers) are wired via environment variables.
Task Schedule What it does
Always on
heartbeat Every 15 min Health ping to confirm the app is running.
self-healing-watchdog Every 15 min Detects and restarts stuck tasks.
burrow-job-poller Every 2 min Checks Supabase for pending Burrow build jobs and processes them.
Business hours (weekdays, every 15–30 min)
clickup-runner Every 30 min, 9am–5pm Picks up tasks assigned to Hilda CoWork in ClickUp and runs them through the CEO pipeline.
proactive-scan :05 and :35, 9am–5pm AI-driven scan of all client ClickUp tasks. Flags overdue items, missing deliverables, and reply-overdue tasks. Posts to Slack.
client-comment-poll Every 15 min, 8am–5pm Polls ClickUp for new client comments needing action.
support-inbox Every 15 min, 9am–5pm Triages support emails with the hilda-wtf label. Routes to #hilda-triage.
guardrail-check Every 30 min, 8am–6pm Checks that client task guardrails are intact — no cross-client contamination.
client-task-monitor Every 30 min, 9am–5pm Monitors status changes on client tasks.
client-task-prep :15 and :45, 9am–5pm Pre-processes upcoming client tasks before they become due.
email-triage Every 15 min, 9am–5pm Triages the Hilda inbox.
Daily
meeting-outreach 9am weekdays Sends meeting prep outreach emails before client sessions.
promote-scheduled 10am weekdays Promotes scheduled Slack posts after the human review window closes.
meeting-prep 8pm Sun–Thu Builds meeting prep documents for tomorrow's client sessions.
gemini-notes 1pm + 5pm weekdays Scans Google Drive for new Gemini meeting transcripts. Extracts action items, creates ClickUp tasks, posts Slack summary. WIP meetings route to the correct HH or MM list by attendee.
heartbeat-post 7am daily Posts green tick to Slack confirming the scheduler is running.
update-hot-cache 11:50pm daily Pre-warms the hot cache for the following day.
memory-logger Every hour Logs memory stats.
Weekly
source-of-truth Friday 12pm Updates all client Source of Truth docs in ClickUp with latest notes and changes from the week.
failure-analysis Monday 8am AI-driven retrospective on the previous week's failures. Reads Slack error logs.
usage-report Monday 8:30am Posts API and resource usage stats.
extract-learnings Monday 6am Extracts learnings from the previous week's task completions.
lint-client-vault Sunday 6am Validates client data integrity in the vault.
client-data-sync Sunday 11pm Syncs client config to the database.
idempotency-prune Monday 4am Prunes stale idempotency records from Supabase.
app_mention message reaction_added
Commented out (12 tasks — exist in code but not scheduled)
  • weekly-work-plan
  • planning-reports
  • teddi-day-ahead & teddi-week-ahead
  • josh-day-ahead & josh-week-ahead
  • daily-project-briefing
  • monday-funday-prep
  • friday-wrapup-prep
  • weekly-campaign-flag
  • weekly-client-report
  • weekly-data-snapshot
Task files that exist but are never imported
  • mid-month-checkin
  • patch-source-of-truth
  • post-meeting-email
3

The Burrow

Hedgehog Client Portal
teddi-coder/hedgehog-client-portal · Vercel + Supabase (hedgehog-master, Tokyo)
Live (core)
Client-facing portal. 36 API routes, 18 Supabase migrations deployed. Deliverable review, autopilot proposal approvals, AI advisor chat, account settings (briefing info, brand files, global rules), and admin tools. No cron jobs — purely event-driven.
/api/deliverables /api/deliverables/[id]/comments /api/deliverables/[id]/items/[item]/decision /api/deliverables/[id]/status /api/deliverables/build /api/deliverables/build-status /api/chat/[slug] /api/advisor /api/advisor/history /api/autopilot/approvals /api/autopilot/resolve /api/settings/briefing /api/settings/brand-files /api/settings/global-rules /api/hilda/build /api/hilda/chat /api/hilda/status /api/sot/approve /api/sot/brand /api/sot/client /api/sot/clients /api/admin/clients /api/admin/conversations /api/admin/documents /api/admin/generate-onboarding-link /api/admin/refresh-brief /api/burrow/metrics/[slug]/snapshot /api/client-documents /api/creative-studio/save /api/documents /api/history/[slug] /api/onboard /api/tasks
advisor_conversations approval_queue autopilot_proposals client_brand_files client_brand_voice client_briefings client_documents client_global_rules client_personas client_profiles client_source_docs clients conversation_summaries conversations deliverable_comments deliverable_item_decisions deliverable_jobs deliverables messages meta_approvals onboarding_tokens brand-files (storage)
Dead — fixture-backed demo pages (8 pages, not wired to live data)
  • /preview/burrow/* — Klaylife demo with hardcoded fixture data
4

HH Google Ads autopilot

HH Google Ads Autopilot
teddi-coder/hh-google-ads-autopilot · Vercel + Supabase (fcwuqbexvggjvwgdpnya)
Live
Weekly autonomous Google Ads management for HH clients. Chain-based architecture — clients run in sequence with a watchdog to unstick hung chains. Fetches MCP data, runs rules engine and AI analysis, posts Slack approval card, optionally executes changes.
RouteScheduleWhat
/api/run-chainSun 8pmMain weekly pipeline — runs all HH clients in sequence.
/api/chain-watchdogSun 8–11pm every 5 min + Mon 12–2amDetects and unsticks hung chains.
/api/digestSun 10pmPosts Slack summary of the week's scan results.
/api/anomaly-checkWeekdays 9pmDaily anomaly scan across all HH Google Ads accounts.
/api/monthly-report1st of month 8pmMonthly performance summary.
agent_prompt_guidance approval_queue audit_log chain_state clients daily_snapshots feedback_rules intervention_log proposal_surfaces runs semrush_cache
Dead code
  • run-chain-b — second chain variant route exists but no cron triggers it
5

HH Meta Ads autopilot

HH Meta Ads Autopilot
teddi-coder/hh-meta-ads-autopilot · Vercel + Supabase (fcwuqbexvggjvwgdpnya)
Live
Weekly autonomous Meta Ads management for HH clients. Fetches Meta campaign data via MCP, AI-proposes actions, delivers Slack approval cards, tracks interventions and objections.
RouteScheduleWhat
/api/run-allSun 9pmMain weekly pipeline across all HH Meta clients.
/api/weekly-analysisSun 9:30pmCross-client analysis after the weekly run.
/api/anomaly-checkWeekdays 10pmDaily anomaly scan across all HH Meta accounts.
/api/cron/expire-objectionsDaily 6amCleans up expired entries in meta_client_action_objections.
clients meta_agent_prompt_guidance meta_approvals meta_audit_log meta_client_action_objections meta_clients meta_creative_snapshots meta_daily_snapshots_account meta_daily_snapshots_campaign meta_feedback_rules meta_intervention_log meta_landing_page_performance meta_proposal_surfaces meta_runs
Dead code
  • admin/backfill-snapshots — one-off maintenance, not regularly triggered
  • admin/sweep-orphan-cards — one-off maintenance, not regularly triggered
6

MM Google Ads autopilot

MM Google Ads Autopilot (Lightning McQueen)
teddi-coder/mm-google-ads-autopilot · Vercel + Supabase (texktztyyacsvdkgxbkr)
Live
Same architecture as HH Google Ads autopilot but for Mechanic Marketing's 8 clients. Runs per-client rather than as a chain — each client gets its own Sunday cron, staggered 3 minutes apart.
RouteScheduleWhat
/api/run-client (×8)Sun 8pm, staggered 3 minIndividual client runs: Auto Response → Ultra Tune North Ryde (and 6 others).
/api/digestSun 8:30pmSlack digest after all client runs.
/api/anomaly-checkWeekdays 9pmDaily anomaly scan across all MM Google Ads accounts.
/api/monthly-report1st of month 8pmMonthly performance summary.
agent_prompt_guidance approval_queue audit_log clients daily_snapshots feedback_rules intervention_log runs semrush_cache
Dead code
  • run-chain + run-chain-b — routes exist but no cron calls them; all production runs use run-client
  • clickup-backfill — one-off maintenance endpoint, not regularly triggered
7

Slack interactions router

HH Slack Interactions Router
teddi-coder/hh-slack-interactions-router · Vercel (no database)
Live
A single Vercel function that acts as the unified Slack interactions callback URL. Receives button clicks and modal submits from all autopilot Slack messages and routes them to the correct backend. No database, no crons — pure routing layer.
/api/slack/interactions /api/internal/resolve-gads /api/internal/resolve-meta
8

Dead & disabled

Everything below exists in the codebase but is not running. This is the canonical list — if a task isn't here and isn't in the active crons above, it doesn't exist.

Task / feature State Repo Why
NHH — commented out (import exists, no cron)
weekly-work-planOffnearly-headless-hildaOutput too long and overwhelming. Not a NHH use case — complex analysis stays in Cowork.
planning-reportsKillednearly-headless-hildaDisabled. Was generating malformed output. Reports done manually in Cowork.
teddi-day-aheadOffnearly-headless-hildaParked. Output not useful enough for daily use.
teddi-week-aheadOffnearly-headless-hildaParked. Same reason.
josh-day-aheadOffnearly-headless-hildaParked. Same reason.
josh-week-aheadOffnearly-headless-hildaParked. Same reason.
daily-project-briefingOffnearly-headless-hildaParked.
monday-funday-prepOffnearly-headless-hildaParked.
friday-wrapup-prepOffnearly-headless-hildaParked.
weekly-campaign-flagOffnearly-headless-hildaParked.
weekly-client-reportOffnearly-headless-hildaParked.
weekly-data-snapshotOffnearly-headless-hildaParked.
NHH — task files never imported
mid-month-checkinUnwirednearly-headless-hildaFile exists but never imported or scheduled.
patch-source-of-truthUnwirednearly-headless-hildaFile exists but never imported or scheduled.
post-meeting-emailUnwirednearly-headless-hildaFile exists but never imported or scheduled.
Burrow
/preview/burrow/* (8 pages)Demo onlyhedgehog-client-portalFixture-backed Klaylife demo. Not connected to live Supabase data.
Autopilots
run-chain-bUnusedhh-google-ads-autopilotRoute exists, no cron triggers it.
admin/backfill-snapshotsManual onlyhh-meta-ads-autopilotOne-off maintenance endpoint.
admin/sweep-orphan-cardsManual onlyhh-meta-ads-autopilotOne-off maintenance endpoint.
run-chain + run-chain-bUnusedmm-google-ads-autopilotRoutes exist but all production runs use run-client per client instead.
clickup-backfillManual onlymm-google-ads-autopilotOne-off maintenance endpoint.