feat(backend): T-4 — named sessions through the boilerroom wrapper
The flavor probe gains a third answer: the wrapper names itself on /health, so behind OLLAMA_HOST tatlock now distinguishes boilerroom, a bare llama-server, and Ollama. Through the wrapper each pipeline phase is a named session with the decided eviction ranking — tatlock-steward/-orchestrate/-synthesize at 40, librarian at 30, lower parks sooner (webber will sit at 20; Open WebUI stays session-less and can never evict anyone). Against a bare llama-server the raw id_slot pins survive unchanged, Ollama gets neither, and an unprobed flavor sends nothing rather than guessing — the backend stays swappable by env alone. tool_choice through the wrapper follows the llama-server rule, since that is who answers. The wrapper's balancing and compaction-due signals are read everywhere: an httpx response hook on the provider covers every PydanticAI call, streams included, and the steward's raw call reads the body extras. Acting on compaction_due is a future ticket — the signal just must not pass silently. Verified end to end against the live wrapper: the dev server probed flavor=boilerroom, a full pipeline turn answered in 5.7 s, and GET /sessions showed all three phase sessions resident at rank 40 with engine-reported occupancies. The demonstration also filled the production slot map — session-less prod delegations would have 503d — cleared by a wrapper restart and filed as boilerroom T-11 (sessions need an exit). A latent test flaw surfaced too: the ollama tool_choice test relied on the dev backend probing as ollama; it now pins the flavor it claims to test. 27 selector tests (9 new), 677 total green; three mutations shown to fail their tests (librarian rank, the wrapper branch, the no-nudge set); the new wrapper contract class runs 10/10 against the live boundary. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+6
-1
@@ -8,11 +8,16 @@ API_HOST=0.0.0.0
|
||||
API_PORT=8000
|
||||
API_PREFIX=/v1
|
||||
|
||||
# Ollama Configuration (local - primary backend)
|
||||
# Local backend (primary). The var name is legacy: any OpenAI-compatible
|
||||
# server works — Ollama, a bare llama-server, or the boilerroom wrapper
|
||||
# (http://127.0.0.1:8602 on tower-of-joy). The flavor is probed at
|
||||
# startup; through the wrapper, BACKEND_SLOT_PINNING=true sends named
|
||||
# sessions with the T-4 eviction ranking instead of raw slot pins.
|
||||
OLLAMA_HOST=http://localhost:11434
|
||||
OLLAMA_DEFAULT_MODEL=gemma4:e2b
|
||||
OLLAMA_TIMEOUT=120
|
||||
STEWARD_TIMEOUT=60
|
||||
BACKEND_SLOT_PINNING=false
|
||||
|
||||
# Anthropic Configuration (Claude - cloud fallback)
|
||||
# Set ANTHROPIC_API_KEY to keep the Claude fallback available: it is used
|
||||
|
||||
Reference in New Issue
Block a user