Thomas Digital · Internal · Session Recap
The Command Center chat, rebuilt to just work.
A full-day rebuild of the Command Center's chat system — the part that kept timing out, freezing, and bleeding one conversation into another. Every fix below was checked on the live site, not just claimed. The AI Design System's hidden failure was also traced to root.
2026-07-24 · live at cc.thomasdigital.com · build 4e5c81a · verified this session
The scoreboard
What you asked for → what's proven on the live site
DONEChats no longer bleed into each other
Two chats in two tabs used to merge. Fixed and proven with a side-by-side test using secret codewords — zero cross-talk.
DONENo more timing out / freezing
Fixed at four layers. Proven with a disconnect-mid-answer test that reconnects and finishes, plus quiet-stretch heartbeat tests.
DONEImage upload works
Uploaded a picture with the word "PINEAPPLE" — the AI read it back correctly.
DONESlash commands, live model routing, working cost bar
Typing "/" pops the command menu; the panel shows which model is running; the cost bar's $0.68 matched the billing ledger to the cent.
DONEOne clean artifact panel
The stacking-garbage panel now holds one design, updates in place, and expands full-screen.
DONEEvery page's chat knows its page
On the Spend page, the side chat correctly said "You're on the /spend page" and read your live spend figure.
REVIEWAI Design System — unblocked, producing real designs
Two hidden bugs fixed. It now produces finished designs and stops for your sign-off (as designed). One piece — clicking a design to give feedback — is still to build.
Why the chats broke
The three real causes, in plain terms
Cause 01
Two tabs shared one hidden identity
When a message went out before its conversation was fully created, it fell back to one shared bucket on the Mac. Two tabs doing that at once got mixed together. Now every conversation gets its own private identity, and each browser tab gets its own tag.
route.ts · ChatRail.tsx
Cause 02
The connection gave up during quiet moments
When the AI paused to think or run a long tool, nothing was sent to keep the line open, so the browser, the tunnel, or a timer would drop it. Now a heartbeat pulses every 20 seconds through every layer, timeouts were widened past the real work limits, and the connection is kept warm on purpose.
steve_ws.py · phone-steve-cc-bridge.py · cc-chat-routing flags
Cause 03
A dropped connection killed the whole answer
If the line dropped mid-answer, the message was lost — even though the AI kept working. Now the browser reconnects and picks the answer back up exactly where it left off, and re-attaches automatically when you return to a backgrounded tab.
steve-socket-transport.ts
Your browser→
Vercel (the website)→
Cloudflare tunnel→
Mac chat server→
Claude
Every hop above now has a heartbeat + reconnect. The answer keeps running on the Mac even if your browser blinks.
The AI Design System
The real reason it "never worked once"
Two invisible bugs were fixed: a background safety process was killing every run at the 10-minute mark (a fresh run now survives well past it), and finished runs were being falsely labeled "FAILED."
The deeper truth: no run was ever going to show "shipped" on its own. The final step needs your approval on two sign-off stations. The system was quietly stopping and waiting for you — which past runs mislabeled as failure and never surfaced as "done, needs your OK."
- A fresh test run produced three complete, professional homepage designs for a demo coffee brand, then correctly paused for you to pick a direction.
- Two earlier client runs (power-and-motion, sme-consulting) are also live and finished-pending-your-review — you had working designs all along.
- Still to build (saved as a task): clicking a design concept to give feedback in a chat that knows that specific design and the designer lens.
If you want it back the way it was
One command · nothing client-facing was touched
cd /Users/openclaw/projects/command-center-v1
git checkout 9a1574c3
bash /Users/openclaw/.openclaw/bin/cc-deploy-prod.sh
The Mac-side helper scripts each have a dated backup and revert the same way. No client website, domain, or client data was changed — only your own Command Center.