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

```bash
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:
```bash
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."
