esc
Sunday Night The Rocket That Flew
The V3 Saga

Sunday Night The Rocket That Flew

The Mission After the Weekend Saga's architectural epiphanies, it was time to prove the theory. Target: Rocket components with full lifecycle. Objective: Make web components feel like they belong in...

December 13, 2025

The Mission

After the Weekend Saga’s architectural epiphanies, it was time to prove the theory. Target: Rocket components with full lifecycle. Objective: Make web components feel like they belong in a Go codebase.

The Battle of the Infinite Spinner

00:15 AM: Page loads. Spinner spins. Spins more. Still spinning.
00:16 AM: “We need both JS imports? No wait, just one. No wait…”
00:17 AM: datastar-pro-rocket.js - the pro version with rockets, obviously.
Page loads. 🎉

The Signal Hunt

Components rendered. Looked beautiful. Clicked “Back”…

Uncaught ReferenceError: $tabID is not defined
    at cleanup
    at disconnectedCallback

The reptile brain speaks: “but when we create a component we can pass the tabid as a data-parameter somehow?”

Claude (99.7% trusting the reptile): Let me check the docs…

data-props:tab-id="string" + $$tabId = 🦎🧠💪

The Moment of Truth

📦 Loading catalog component
📋 Loading menu  
📦❌ Catalog component closed    ← onCleanup() FIRED

The component lifecycle works. Setup runs, cleanup runs. Server knows when components live and die. Go templates serving Rocket fuel.

What We Shipped

  • Menu loads Rocket components via @get (no pre-rendering hidden divs)
  • Props passed properly: data-attr:tab-id$$tabId
  • onCleanup() notifies server on component removal
  • Full emoji-powered lifecycle logging

The Stack (as of midnight)

Browser ──@get──→ Go Handler ──SSE──→ <agent-catalog>
                                          ↓
                                      $$tabId captured
                                          ↓
                                      onCleanup()
                                          ↓
                                      fetch('/close')
                                          ↓
                                      📦❌ logged

Status

  • Rocket: launched 🚀
  • Reptile brain: vindicated 🦎
  • Architecture: validated ✓
  • Sleep: soon™

The V3 POC lives. The game loop is dumb. The components are smart. NATS routes. Context manages lifecycle. And now Rocket components join the party.

Tomorrow: maybe Phase 2 Strategy component. Or maybe more kombucha. The reptile will decide.