feat(backend): BACKEND_SLOT_PINNING — per-phase engine slot ownership
Each pipeline phase owns one llama-server slot (steward 0, orchestrator 1, synthesizer 2), carried as id_slot in extra_body through the same mechanism tool_choice already uses, so the phase's stable prompt prefix stays in that slot's KV cache and a turn re-prefills only its new tokens. Off by default; a no-op on the Claude backend and ignored by Ollama, so the flag is safe on any backend and the cutover itself stays a pure env swap. The merge helper preserves existing extra_body keys — mutation-checked (dropping the merge fails exactly the test written for it). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- `BACKEND_SLOT_PINNING` (default off): pins each pipeline phase to a
|
||||
llama-server slot (steward=0, orchestrator=1, synthesizer=2) so a
|
||||
phase's stable prompt prefix stays in that slot's KV cache. No-op on
|
||||
Claude; ignored by Ollama.
|
||||
|
||||
## [2.5.0] - 2026-09-11
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user