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:
@@ -313,6 +313,12 @@ _PHASE_BINDINGS: dict[str, tuple[int | None, str, int]] = {
|
||||
"steward": (0, "tatlock-steward", 40),
|
||||
"orchestrate": (1, "tatlock-orchestrate", 40),
|
||||
"synthesize": (2, "tatlock-synthesize", 40),
|
||||
# Experts (biographer, housekeeper) share one session between the
|
||||
# librarian and the phases: the two least-used consumers trade the
|
||||
# spare slot by rank instead of anyone hitting an empty pool — a
|
||||
# session-less call 503s once four sessions are resident (D-4's
|
||||
# idle-only rule), so every generation call here must carry a name.
|
||||
"experts": (None, "tatlock-experts", 35),
|
||||
"librarian": (None, "librarian", 30),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user