# Next Session: Build Annie's Phone Conversation Loop

**Use this prompt to continue from Session 391 (2026-04-02)**

---

```
Continue from Session 391. Annie's phone pipeline is fully validated — she called Rajesh and Roshni, spoke (Kokoro TTS), listened (Whisper STT), all local on Panda GPU. Now build the continuous conversation loop.

## What's Working (DO NOT re-implement)
- Pixel 9a connected to Panda via USB ADB (device tegu, serial 62271XEBF9DFD4)
- Bluetooth HFP paired (Pixel MAC FC:41:16:C5:AC:61, trusted)
- PipeWire nodes during active call:
  - Input (caller→Panda): bluez_input.FC_41_16_C5_AC_61.0
  - Output (Panda→caller): bluez_output.FC_41_16_C5_AC_61.1
- Kokoro TTS on Panda GPU (af_heart voice, 24kHz → 16kHz resample via ffmpeg)
- Whisper base STT on Panda GPU (16kHz mono input)
- ADB call: adb shell am start -a android.intent.action.CALL -d tel:+91XXXXXXXXXX
- ADB end call: adb shell input keyevent KEYCODE_ENDCALL
- ADB unlock: adb shell input text 445566 + KEYCODE_ENTER (PIN at ~/.her-os/pixel-pin)
- pw-play/pw-record for BT HFP audio injection/capture
- Panda venv: ~/workplace/her/her-os/.venv/ (uiautomator2, Pillow, whisper, kokoro, soundfile)
- Read docs/ARCHITECTURE-PANDA-VOICE-PIPELINE.md for the full validated architecture
- Read memory/project_bt_hfp_validated.md for BT HFP details
- History: history/2026-04-02-first-call/ (10 artifacts — screenshots, audio, transcripts, script)

## What to Build
1. **Continuous conversation loop**: Annie calls → speaks → listens → STT → LLM generates response → TTS → speaks → listens → repeat. VAD (voice activity detection) to know when caller stops speaking.
2. **Integrate Nemotron LLM on Titan**: Panda SSHes to Titan or calls vLLM HTTP API (port 8003) for response generation. Annie already has a full personality/system prompt on Titan.
3. **Auto-answer incoming calls**: When someone calls Annie's number (+917899079007), auto-answer and start the conversation loop.

## Existing Pipeline (reuse, don't reinvent)
- Annie already has a working voice pipeline on Titan (Pipecat + STT + LLM + TTS) for WebRTC calls
- Read services/annie-voice/bot.py for the existing conversation loop architecture
- The phone call loop should mirror bot.py's architecture but use BT HFP audio instead of WebRTC
- Context loader, personality, tools — all reusable from services/annie-voice/

## Also Pending
- Enable bypass charging on Pixel (Settings → Battery → Limit to 80%)
- Set up wireless ADB as backup
- Set up Fi Money zero-balance bank account + GPay
- Research Kannada TTS/STT for mom calls (AI4Bharat IndicConformer + IndicF5)
- Carry forward: ASYNC_TASK dead code, PYTHONDONTWRITEBYTECODE in start.sh, Docker bridge NAT

## Key Numbers
- Rajesh: +917899218911
- Roshni: +917899643116
- Annie (Pixel): +917899079007 (Airtel)
```
