Federation Watchtower — Submission Narrative
Project Story
What inspired you
I had no Qwen credits left after Hermes kept corrupting my work — nesting within nesting within nesting, duplicated chains multiplying on top of each other. I burned 25,000 credits the moment I looked away. That's the failure that started this.
But from that loss came an iteration: a TV sitcom where agents working on tasks could be seen on screen, doing really stupid stuff. When something happened, they'd have a speech bubble triggered by it:
- Test fails? "The boiler room just combusted — everybody get to safety!"
- Thirty duplicate files being processed consecutively? "I made a checklist for my checklists checklist — does anybody wanna make a checklist about that?"
The comedy is the hook. But the purpose is to monitor what's actually happening — to not be left clueless while giving everything you've got.
Personal context
Bro.. I have a 1.87 GHz, 2-core, 4GB RAM, 2013 ThinkPad that barely opens a web browser. I'm a single father with a past that isn't lavish, and that's made it hard to get a job — constantly being shown the door, dealing with the fallout of a mistake I made over 10 years ago. I'm very creative, I prefer truth and doing my own due diligence before asking for help or believing someone, and I like pushing boundaries: testing new systems, building things that serve a real purpose. I figure things out, think mechanically, and try everything I can to get myself and my daughter in a better position.
When I started using Codex, I had five project demos that weren't quite functional. About 700 credits later, I realized the app I wanted to make wasn't going to cut it. I mentioned the Scaffolding for five projects. I had actually completely forgotten about the whole Federation idea which wasoriginally a comical afterthought, a quirky agent monitoring layer for any project that wanted to join via MCP. Codex refined my concept into something possible and robust, then helped consolidate it into something functional and manageable.
After running out of credits and having to take it to Claude (which I've grown to strongly dislike), I realized that everything that had transpired between Codex and I was exactly how I always want everything to be built: proper, robust, accurate, and solidified. All we had to do was start implementing the UI and features.
From burning 25,000 credits, using almost half my allocation on a separate project idea within Codex, persistent disappointment and struggles to take care of my daughter and find steady employment — Codex made me have a little bit more faith in myself and the ideas I come up with. Win or lose, I take pride knowing this exists. As long as we can learn to laugh a little bit and continue to grow, everything will be OK.
What You learned
- Visibility is the product. Operational truth matters more than theatrical presentation. The sitcom is the hook; the audit trail is the value.
- Guardrails must fire before side effects. A denied lease, failed validation, or watchdog expiry must stop work before the next irreversible action.
- Additive migrations are safer than destructive changes. Of the 9 D1 migrations, most are CREATE TABLE or ADD COLUMN; one later migration recreated a table to drop a foreign-key constraint that was rejecting valid rows, copying every row across first, so no data was lost.
- Scoped credentials beat shared secrets. Owner-scoped and agent-scoped credentials (
fw_agent_...) prevent impersonation and enable audit attribution. - Resource constraints force creativity. Building on a 2013 ThinkPad with 4GB RAM means every dependency matters. The dependency-free widget wasn't an aesthetic choice — it was necessity.
- Codex accelerates consolidation, not invention. The idea was mine; Codex made it feasible, wired the surfaces, and produced the documentation. The collaboration worked because I brought a clear vision and Codex brought execution speed.
How you built your project
Timeline: ~2 weeks during OpenAI Build Week 2026
Phase 1 — Concept: Extracted the Federation idea from a comical afterthought into a formal concept. Created FOREVER-SYSTEM protocol as foundational architecture. Defined agent lifecycle state machine with explicit transitions.
Phase 2 — Infrastructure: Set up Cloudflare Worker with Durable Objects, D1, R2, Queue/DLQ bindings. Wrote 6 additive migrations (0001-0006) for persistent storage. Implemented owner/agent credential system with scoped tokens.
Phase 3 — Guardrails: Built duplicate/runaway detection, budget thresholds, validation gates. Implemented watchdog expiry with offline transitions. Created hash-chained audit decisions and incident records.
Phase 4 — Presentation: Built camera-style Watchtower UI with 35-agent capacity. Created procedural SVG avatars (deterministic from agentId/avatarSeed). Added event bubbles, feed-only mode, reduced-motion support.
Phase 5 — Admin & Submission: Implemented full admin management (agents, rooms, organizations). Added alert webhooks with receipts (Slack/Discord/json formats). Wrote testing scripts, deployment guide, video script, submission docs.
Tools: Codex (primary), Claude (fallback), Cloudflare Workers, TypeScript, Node.js, SQLite (D1), R2 storage.
Challenges you faced
| Challenge | How I Overcame It |
|---|---|
| 25,000 credits lost to runaway loops | Built guardrail enforcement, watchdog expiry, and cooperative leases that stop work before the next side effect |
| Five disjointed project demos | Used Codex to consolidate into one functional repository with shared infrastructure |
| Running out of Codex credits mid-build | Switched to Claude for final implementation, then documented everything for reproducibility |
| Building on 2013 hardware (4GB RAM) | Eliminated unnecessary dependencies, used dependency-free widget, kept bundle size minimal |
| Keeping secrets out of the repository | .gitignore for .dev.vars, Worker secrets via wrangler secret put, scoped credentials never logged |
| Aligning presentation with operational truth | Ambient cameos explicitly labelled ambient presentation · no event — never fabricate an agent, event, or heartbeat |
| Meeting OpenAI Build Week requirements | Created SUBMISSION_RUNBOOK.md, VIDEO_RECORDING_GUIDE.md, and this narrative to ensure all fields are complete |
Project Description
Federation Watchtower is a developer tool that makes autonomous agent work visible before it becomes expensive. It's an agent-operations control plane with a security-camera sitcom presentation: real agents, heartbeats, events, guardrails, validation decisions, and watchdog signals are made readable for humans without turning the operational record into theater.
The sitcom is the interface layer. The real product is a shared observability and governance surface for autonomous systems.
Live public Watchtower: https://watch.drdeeks.xyz
API host: https://fapi.drdeeks.xyz
Member/operator surface: https://federation.drdeeks.xyz
How Codex Accelerated the Work
| Build Week criterion | Repository evidence |
|---|---|
| Non-trivial working implementation | Worker, Durable Objects, D1, R2, Queue/DLQ, REST, WebSocket, static Watchtower, tests, and a local demo path. |
| Coherent product experience | Public Watchtower room/agent/feed view plus the reserved operator/member surface. |
| Specific problem and audience | Developers and teams supervising autonomous runs that can recurse, duplicate work, fail quietly, or spend beyond expectations. |
| Novel idea | An observability/control plane where evidence is presented as a compact agent-ops sitcom without fabricating operational state. |
| How Codex accelerated the work | Codex was used to consolidate the repository, wire and test the Worker surfaces, shape domain boundaries, build the camera-style Watchtower, and document the operational lifecycle. |
Codex /feedback Session ID: 019f6d08-6448-7d50-ad6d-8d92bde8c5f3
Technical Implementation
| Component | Technology | Purpose |
|---|---|---|
| Edge runtime | Cloudflare Workers | Global low-latency API and static asset hosting |
| State coordination | Durable Objects | Per-project agent registries and global federation coordination |
| Structured storage | D1 (SQLite) | Projects, agents, rooms, events, federation applications, verified organizations, access logs |
| Object storage | R2 | Federation vault for evidence exports and audit artifacts |
| API contracts | TypeScript REST + WebSocket | Machine-readable ingress for agents and external systems |
| Integration layer | MCP-oriented contracts | External organizations and agent clients |
| Browser embedding | Dependency-free JavaScript widget | Deterministic SVG avatars and embeddable broadcast |
| Branding | Canonical SVG + theme tokens | Lightweight splash screen and consistent visual identity |
| Reference patterns | Repository guardrails | Blueprint validation, crew coordination, source verification, self-healing operations |
Why This is a Developer Tool
| Use case | How Watchtower helps |
|---|---|
| Agentic workflows | See what autonomous agents are doing in real time before credits disappear |
| DevOps & CI/CD | Guardrail signals, validation gates, and budget thresholds become explicit events |
| Observability | Unified event feed with machine-readable packets and human-readable status bubbles |
| Testing | Validation failures, runaway detection, and duplicate chains are logged as incidents |
| Security | Audit trails, incident tracking, hash-chained decisions, bounded evidence exports |
| Operational safety | Watchdog expiry, cooperative leases, controlled tool authorization, stop-before-side-effect rules |
What's Working Now
- A Cloudflare Worker backed by Durable Objects, D1, R2, and an alert Queue/DLQ
- Public, read-only room, roster, agent-detail, event-feed, and WebSocket observation surfaces
- Administrative project/agent registration and heartbeat/status routes
- Signed, idempotent operational event ingress with timestamp/replay checks and secret-shaped metadata redaction
- Runtime-neutral liveness: a signed
heartbeatevent can arrive from an agent package, CI runner, webhook adapter, or MCP/REST integration - Guardrail decisions for duplicate/runaway chains, validation failures, budgets, cooperative leases, controlled tool authorization, and heartbeat expiry/watchdog incidents
- Hash-chained audit decisions, incident records, bounded evidence exports, and an embeddable dependency-free JavaScript widget
- A standard-library Loop Enforcer adapter that treats a denied lease, gate, or controlled-tool decision as a stop result (
exit 3)
Built with Codex and GPT-5.6 during OpenAI Build Week 2026
Codex /feedback Session ID: 019f6d08-6448-7d50-ad6d-8d92bde8c5f3
Built With
- agentops
- cloudflare-workers
- d1
- durable-objects
- gpt-5.6
- guardrails
- model-context-protocol
- node.js
- openai-codex
- r2
- svg
- typescript
- websockets

Log in or sign up for Devpost to join the conversation.