Repository navigation
Routing
Auto-routing no longer falls through to default.backend when a task carries no category signal. A new overall-score stage (profile_overall) picks the backend with the best mean across its scored categories, so measured capability steers conversational turns too — not just the ones that happen to match a keyword.
Measured before this change: 15 of 17 auto-routed turns diagnosed at neutral confidence (0.10) and never reached the capability stages at all, so every one of them landed on the static default no matter what the profiles said.
Learning loop
[learning] auto_fold_every_runs(default 10,0disables) folds runtime telemetry intoprofiles.tomlon its own. The fold was manual-only (agentpit profile learn) and in practice had never run.TurnStartednow carries the run id and the route reason. The TUI shows which stage picked the backend, and/outcome good|badrecords the verdict in place — no screen switch, and it labels the turn on screen rather than whatever run happens to be newest in the log.
Ensemble / review
The aggregator prompt is bounded by a 24k total budget. Oversized member responses are spilled to runs/<run_id>/<backend>.answer.md and cited by path, so the aggregator reads the rest only when it needs it. The existing per-member cap (48k) never fired — the real pressure is the total across members.