refactor(config): move embedder/l3 to top-level [embedder]/[l3] sections

They are shared infra (the orchestrator uses them for workflow repo-knowledge,
not just the router chat layer), so [router.embedder]/[router.l3] was misleading.
Loader/writer use the new names; legacy [router.*] still read as a fallback.
Also notes the STEERING LLM-reformulation cost as a ponytail follow-up.
This commit is contained in:
2026-07-03 13:16:20 +04:00
parent 6437d29914
commit 77c28ba313
4 changed files with 18 additions and 7 deletions
@@ -186,6 +186,11 @@ class DefaultRouterFacade(
emitIdeasCaptured(sessionId, ideas.ideas)
}
// ponytail: STEERING launders the user's text through the router LLM (the `content` above)
// before injecting it as a note. For a clear instruction that's an extra inference that can
// distort intent; the reformulation only earns its cost when the input is terse/context-
// dependent. Upgrade path: inject the raw (validated) input directly and skip the rewrite
// unless a heuristic flags the message as too short/ambiguous to stand alone.
val steeringEmitted = mode == ChatMode.STEERING && rawContent.isNotBlank()
if (steeringEmitted) {
val validationError = validateSteering?.invoke(content)