fix: centralize verbose overrides and tool stream gating

This commit is contained in:
Peter Steinberger
2026-01-10 00:52:11 +01:00
parent 9a8d3aed26
commit 097550c299
15 changed files with 203 additions and 127 deletions

View File

@@ -58,6 +58,7 @@ import {
import { resolveOutboundTarget } from "../infra/outbound/targets.js";
import { normalizeMainKey } from "../routing/session-key.js";
import { defaultRuntime, type RuntimeEnv } from "../runtime.js";
import { applyVerboseOverride } from "../sessions/level-overrides.js";
import { resolveSendPolicy } from "../sessions/send-policy.js";
import {
normalizeMessageProvider,
@@ -249,10 +250,6 @@ export async function agentCommand(
let sessionEntry = resolvedSessionEntry;
const runId = opts.runId?.trim() || sessionId;
if (sessionKey) {
registerAgentRunContext(runId, { sessionKey });
}
if (opts.deliver === true) {
const sendPolicy = resolveSendPolicy({
cfg,
@@ -276,6 +273,13 @@ export async function agentCommand(
persistedVerbose ??
(agentCfg?.verboseDefault as VerboseLevel | undefined);
if (sessionKey) {
registerAgentRunContext(runId, {
sessionKey,
verboseLevel: resolvedVerboseLevel,
});
}
const needsSkillsSnapshot = isNewSession || !sessionEntry?.skillsSnapshot;
const skillsSnapshot = needsSkillsSnapshot
? buildWorkspaceSkillSnapshot(workspaceDir, { config: cfg })
@@ -306,10 +310,7 @@ export async function agentCommand(
if (thinkOverride === "off") delete next.thinkingLevel;
else next.thinkingLevel = thinkOverride;
}
if (verboseOverride) {
if (verboseOverride === "off") delete next.verboseLevel;
else next.verboseLevel = verboseOverride;
}
applyVerboseOverride(next, verboseOverride);
sessionStore[sessionKey] = next;
await saveSessionStore(storePath, sessionStore);
}