From 29c098c22687298df2dc1077ce919fe4de514268 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Thu, 2 Apr 2026 21:44:53 -0700 Subject: [PATCH] =?UTF-8?q?docs(docs-likely):=20=F0=9F=93=9D=20Add/update?= =?UTF-8?q?=20CLAUDE.md=20documentation=20and=20companion-load.png=20examp?= =?UTF-8?q?le=20image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- CLAUDE.md | 9 +++++++++ companion-load.png | Bin 0 -> 15355 bytes 2 files changed, 9 insertions(+) create mode 100644 companion-load.png diff --git a/CLAUDE.md b/CLAUDE.md index 4b47ff3..706f6d2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -87,6 +87,15 @@ Stream back to client frontend (text + audio) companion-api orchestrates the pipeline. @ai owns all personality mechanics. +### GPU / VRAM + +companion-api holds zero VRAM. All inference and TTS go through model-boss's priority queue: + +- **LLM inference** → `POST @model-boss /v1/chat/completions` — model-boss loads/evicts models via its pool +- **TTS** → `POST @speech-synthesis /synthesize` → speech-synthesis delegates to `POST @model-boss /api/v1/tts/synthesize` (no raw VRAM lease held by either service) + +Never acquire GPU leases directly from companion code. + --- ## Version Roadmap diff --git a/companion-load.png b/companion-load.png new file mode 100644 index 0000000000000000000000000000000000000000..65bca17d5bca0d5fd6d02d7c7179521c7373986b GIT binary patch literal 15355 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