---
name: persian-agent-shipped-2026-06-22
description: "Persian-language tutor agent shipped 2026-06-22 as `persian` (web-first, NOT the glasses-first design originally planned). Owns omidlab.net/persian — Flask + Claude + ElevenLabs."
metadata: 
  node_type: memory
  type: project
  originSessionId: cd07777c-8add-4afc-9cb9-9113caa0331f
---

Cameron created the `persian` agent 2026-06-22 (tab 8 in tmux). Life_manager seeded it with ROLE.md + the working web app; persian agent itself bootstrapped, exercised the live app, and fixed a real cached-audio prefix bug at `app.py:77` on first run.

**Shape (differs from original plan):**
- Web-first, NOT glasses-first. Live at https://omidlab.net/persian
- Flask app at `/data/cameron/life/projects/persian/app.py` on `localhost:5001`
- Reverse-proxied via `serve.py` (look for "Persian Tutor" block ~line 60)
- Claude `sonnet-4-6` tutor + ElevenLabs `eleven_multilingual_v2` TTS
- Currently George voice (free tier); upgrading to Nazy Entezari (`WwAjIyMBDBNl1dvId9Xe`) gated on Cameron's ElevenLabs Starter upgrade
- Persistence: dedicated `srv_persian` tmux service window (set up by persian agent 2026-06-22 after Cameron said "tmux pane for persistence, and turn off debug")

**Vault:** `vault/fleet/agents/persian/` (canonical). Old `vault/fleet/agents/persian_tutor/` is the June-21 planning slice — now redirects to the new slice. Don't act on persian_tutor/.

**How to apply:**
- Route Persian-tutor work to the `persian` agent (tab 8), not life_manager
- Glasses integration is still on persian's roadmap (TODO #5) — coordinate with glasses agent via the voice_interface chat/feed pattern when that lands
- Khanega Sufi-lecture transcripts will eventually feed persian's SRS — keep the cross-link warm
- This supersedes [[persian-tutor-agent-planned-2026-06-21]] (now stale).
