Self-hosted gets the local shared library + parity polish
Headline features
- Local Shared Library (self-hosted) — publish a PDF once, activate it in any world you GM. Same UI hosted users have, scoped to your own proxy. No tier cap.
- Voice Output v2 — emotional audio tags via ElevenLabs v3 (`[whispers]`, `[excited]`, etc.). Tags rendered as audio; chat shows the clean text.
- Voice Input — push-to-talk speech-to-text. Default hotkey is now backtick (`) to avoid V13 collisions.
- Character Stat Sync — Loremaster reads characters and proposes stat changes; GM reviews and approves in the new GM Review Panel.
- PDF improvements — auto-compression, OCR fallback for scanned PDFs, upload cap raised to 64 MB.
- Phoenix protocol auto-detect — no more guessing `ws://` vs `wss://` for self-hosted proxy URLs.
- Friendlier pre-flight errors — clearer message that opens settings if your Claude key isn't set.
Self-hosted: action required
To get the server-side v0.6.0 features, redeploy your proxy with the matching version. Critical env vars:
| Env var | What it unlocks |
|---|---|
| `DEPLOYMENT_MODE=self_hosted` | Required — without it the proxy boots in hosted mode and rejects you |
| `ENCRYPTION_KEY` | Required — hex-encoded 32 bytes; generate with `openssl rand -hex 32` |
| `VOYAGE_API_KEY` | Semantic PDF search (RAG); falls back to text-only without it |
| `OPERATOR_ELEVENLABS_API_KEY` or per-world setting | Voice output |
| `ADMIN_EMAILS` | List of admin emails for publishing to shared library |
See the proxy's `docs/DEPLOY.md` for the full env-var reference.
What self-hosted still lacks
By design:
- Server-persisted backups (file download only)
- Patreon tier system (you have a license — that is your tier)
- Monthly token quota tracking (pay Anthropic per token directly)
- Community-wide shared library (your local library is single-user)
Welcome-journal upgrade page
Existing users get a fresh "What's New in v0.6.0" page on first login after the upgrade.