diff --git a/src/auto-reply/reply/agent-runner-execution.ts b/src/auto-reply/reply/agent-runner-execution.ts index d1f0e276d..49a50cd29 100644 --- a/src/auto-reply/reply/agent-runner-execution.ts +++ b/src/auto-reply/reply/agent-runner-execution.ts @@ -127,6 +127,9 @@ export async function runAgentTurnWithFallback(params: { run: (provider, model) => { // Notify that model selection is complete (including after fallback). // This allows responsePrefix template interpolation with the actual model. + logVerbose( + `[responsePrefix] onModelSelected callback exists: ${!!params.opts?.onModelSelected}, provider=${provider}, model=${model}`, + ); params.opts?.onModelSelected?.({ provider, model, diff --git a/src/auto-reply/reply/normalize-reply.ts b/src/auto-reply/reply/normalize-reply.ts index ac8e85f2e..a9d0d0060 100644 --- a/src/auto-reply/reply/normalize-reply.ts +++ b/src/auto-reply/reply/normalize-reply.ts @@ -1,3 +1,4 @@ +import { logVerbose } from "../../globals.js"; import { stripHeartbeatToken } from "../heartbeat.js"; import { HEARTBEAT_TOKEN, isSilentReplyText, SILENT_REPLY_TOKEN } from "../tokens.js"; import type { ReplyPayload } from "../types.js"; @@ -43,9 +44,17 @@ export function normalizeReplyPayload( } // Resolve template variables in responsePrefix if context is provided + if (opts.responsePrefix?.includes("{")) { + logVerbose( + `[responsePrefix] normalizing: prefix="${opts.responsePrefix}", context=${JSON.stringify(opts.responsePrefixContext)}`, + ); + } const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix; + if (opts.responsePrefix?.includes("{") && effectivePrefix !== opts.responsePrefix) { + logVerbose(`[responsePrefix] resolved to: "${effectivePrefix}"`); + } if ( effectivePrefix && diff --git a/src/telegram/bot-message-dispatch.ts b/src/telegram/bot-message-dispatch.ts index c609a07c2..22dd9a420 100644 --- a/src/telegram/bot-message-dispatch.ts +++ b/src/telegram/bot-message-dispatch.ts @@ -163,10 +163,14 @@ export const dispatchTelegramMessage = async ({ disableBlockStreaming, onModelSelected: (ctx) => { // Mutate the object directly instead of reassigning to ensure the closure sees updates + logVerbose( + `[responsePrefix] telegram onModelSelected fired: provider=${ctx.provider}, model=${ctx.model}, thinkLevel=${ctx.thinkLevel}`, + ); prefixContext.provider = ctx.provider; prefixContext.model = extractShortModelName(ctx.model); prefixContext.modelFull = `${ctx.provider}/${ctx.model}`; prefixContext.thinkingLevel = ctx.thinkLevel ?? "off"; + logVerbose(`[responsePrefix] telegram prefixContext updated: ${JSON.stringify(prefixContext)}`); }, }, });