feat(backend): every generation call carries a session name

The release audit swept every agent.run and raw chat call: the two
streaming orchestrate paths never carried a binding (they predate the
v2.6.0 pinning), and the biographer and housekeeper ran bare. Through
the wrapper a session-less call takes idle slots only and 503s once
four sessions are resident — so the streaming paths join
tatlock-orchestrate, and the experts share tatlock-experts at rank 35:
between the librarian and the phases, the two least-used consumers
trade the spare slot by rank instead of anyone hitting an empty pool.
Rank mutation shown to fail its test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-13 09:43:27 +02:00
co-authored by Claude Fable 5
parent 5b141669ce
commit fd2cd55747
5 changed files with 22 additions and 5 deletions
+2 -2
View File
@@ -206,12 +206,12 @@ async def run_housekeeper(
try:
# Temperature 0.1 for slight exploration (skipped on Claude backend)
from src.anthropic.model_selector import get_sampling_settings
from src.anthropic.model_selector import get_sampling_settings, with_phase_binding
result = await agent.run(
prompt,
message_history=message_history,
model_settings=get_sampling_settings(0.1),
model_settings=with_phase_binding(get_sampling_settings(0.1), "experts"),
)
logger.info(