Files
gbrain/skills/migrations/v0.8.0.md
Garry Tan 91ced664b6 feat: Voice v0.8.0 + feature discovery + Edge Function removal (#55)
* chore: remove Supabase Edge Function MCP deployment

The Edge Function never worked reliably. All MCP traffic goes through
self-hosted server + ngrok tunnel. Removes deploy-remote.sh, edge-entry.ts,
supabase/functions/, .env.production.example, and CHATGPT.md (OAuth not
implemented).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: rewrite MCP docs for self-hosted + ngrok deployment

All per-client guides updated from Edge Function URLs to self-hosted
server + ngrok tunnel pattern. DEPLOY.md rewritten with local vs remote
paths. ALTERNATIVES.md now shows self-hosted as primary, with ngrok,
Tailscale, and Fly.io/Railway comparison.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: voice recipe v0.8.0 — 25 production patterns from real deployment

Identity separation, pre-computed bid system, conversation timing fix,
proactive advisor mode, radical prompt compression, OpenAI Realtime
Prompting Guide structure, auth-before-speech, brain escalation, stuck
watchdog, never-hang-up rule, thinking sounds, fallback TwiML, tool set
architecture, trusted user auth, caller routing, dynamic VAD, on-screen
debug UI, live moment capture, belt-and-suspenders post-call, mandatory
3-step post-call, WebRTC parity, dual API events, report-aware query
routing. WebRTC pseudocode updated with native FormData and 6 gotchas.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: post-upgrade feature discovery framework

upgrade.ts captures old version before upgrading, then execs
gbrain post-upgrade (new binary) to read migration files and print
feature pitches. Migration files get YAML frontmatter with feature_pitch
field (headline, description, recipe, tiers). CLI prints excited builder
tone post-upgrade. v0.8.0 migration offers voice setup with environment
detection (server vs local) and 3-tier progressive disclosure.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add Voice section to README with WebRTC screenshot + tweet link

Her out of the box: voice-to-brain with 25 production patterns. WebRTC
client screenshot embedded. Remote MCP section rewritten for self-hosted
+ ngrok. Setup block genericized.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: add recipe validation tests + genericize personal refs

5 new integration tests: secrets completeness, semver version, requires
resolution, all-recipes-parse, no-personal-references. Test fixture
genericized. CLAUDE.md/TODOS.md/SKILLPACK updated for v0.8.0. build:edge
script removed from package.json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: bump version and changelog (v0.8.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:52:30 -10:00

4.9 KiB

version, feature_pitch
version feature_pitch
0.8.0
headline description recipe tiers
Your AI can answer the phone now WebRTC works in a browser tab, phone number optional. Your agent picks its own name and personality. twilio-voice-brain
name label prerequisites env
webrtc-local Try voice locally (browser only)
node
openai-key
local
name label prerequisites env
webrtc-remote Voice from anywhere (browser + tunnel)
node
openai-key
ngrok
server
name label prerequisites cost
phone Real phone number
twilio-account
~$20/mo

v0.8.0 Migration: Voice-to-Brain Production Patterns + Remote MCP Simplification

This migration introduces the voice-to-brain feature discovery flow and updates the remote MCP deployment path.

What's New

Voice-to-Brain v0.8.0

The voice recipe now includes 21 production patterns from a real deployment: identity separation, pre-computed engagement bids, context-first prompts, proactive advisor mode, prompt compression, caller routing, dynamic VAD, post-call processing with audio recording, and report-aware query routing.

WebRTC works out of the box with just an OpenAI key. A phone number via Twilio is optional.

Remote MCP Simplified

The Supabase Edge Function deployment path has been removed. Remote MCP now uses a self-hosted server + ngrok tunnel. Simpler, more reliable, works with any AI client.

Agent Instructions

Step 1: Check if voice-to-brain is already installed

ls ~/.gbrain/integrations/twilio-voice-brain/heartbeat.jsonl 2>/dev/null

If the file exists: "Voice is already set up from a previous install. Skipping." Proceed to Step 6.

If not: proceed to Step 2.

Step 2: Detect environment

Check for indicators of server vs local deployment:

  • Is there an ngrok or cloudflared process running? (pgrep -f ngrok or pgrep -f cloudflared)
  • Is there a public URL configured in ~/.gbrain/config.json?
  • Is the OS Linux (likely server) or macOS (likely local)?

Server (OpenClaw/Hermes on Render/Railway): use 2-tier flow (WebRTC remote, then phone) Local (macOS with PGLite brain): use 3-tier flow (WebRTC local, then remote, then phone)

Step 3: Pitch voice to the user

Tell the user:

"v0.8.0 adds Voice — your AI can answer phone calls and create brain pages from every conversation. Your agent picks its own name, knows who's calling, and greets them with context from the brain.

[If server]: WebRTC works with your existing tunnel. Just needs an OpenAI key. [If local]: WebRTC works right in your browser. Just needs Node + OpenAI key.

Want me to set up voice? (yes / not now)"

If the user says "not now" or declines: "No problem. You can set up voice anytime with gbrain integrations show twilio-voice-brain." Skip to Step 6.

Step 4: Environment-appropriate setup

Server — Tier 1: WebRTC remote

Read recipes/twilio-voice-brain.md and execute:

  1. Step 1 (prerequisites check)
  2. Step 2, Credential 2 only (OpenAI API key — ngrok is already running)
  3. Step 4 (create voice server)
  4. Step 6 (start server and verify health)

Tell the user: "Voice is live! Open https://YOUR-URL/call in a browser to try it."

Local — Tier 1: WebRTC local only

Read recipes/twilio-voice-brain.md and execute:

  1. Step 1 (prerequisites check)
  2. Step 2, Credential 2 only (OpenAI API key)
  3. Step 4 (create voice server)
  4. Start server on localhost:8765

Tell the user: "Voice is live! Open http://localhost:8765/call in your browser."

Local — Tier 2 offer:

"Want voice from anywhere? Adding ngrok gives you a public URL so you can call from any browser or connect a phone number later."

If yes: Execute Step 3 from the recipe (ngrok setup) and the ngrok-tunnel recipe. If no: "No problem. Local-only WebRTC is fully functional."

Step 5: After WebRTC works, ask about phone number

"WebRTC is working. Want to add a real phone number so people can call you? This needs a Twilio account (~$20/mo for 100 min of calls)."

If yes: Execute Step 2 (Twilio credentials), Step 5 (Twilio phone number setup), and Step 7 (smoke test — the phone calls the user). If no: "No problem. You can add a phone number anytime with gbrain integrations show twilio-voice-brain."

Step 6: Update Edge Function references (if applicable)

If the user previously had Edge Function MCP configured:

  • The Edge Function deployment has been removed in v0.8.0
  • Remote MCP now uses self-hosted server + ngrok tunnel
  • Read docs/mcp/DEPLOY.md for the updated setup
  • If they had Claude Desktop configured with the old URL, help them update it

Step 7: Done

Log the migration completion:

mkdir -p ~/.gbrain/migrations
echo '{"version":"0.8.0","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","voice_setup":"RESULT"}' >> ~/.gbrain/migrations/completed.jsonl

Tell the user: "v0.8.0 migration complete. Run gbrain integrations doctor to verify all integrations are healthy."