From d8a6317dfc61814df5972486c6e15e20606758a2 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 24 Jan 2026 10:03:19 +0000 Subject: [PATCH] fix: show voice mode in status --- src/auto-reply/status.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/auto-reply/status.ts b/src/auto-reply/status.ts index e65f8e35b..410e2f38c 100644 --- a/src/auto-reply/status.ts +++ b/src/auto-reply/status.ts @@ -13,6 +13,14 @@ import { type SessionEntry, type SessionScope, } from "../config/sessions.js"; +import { + getTtsMaxLength, + getTtsProvider, + isSummarizationEnabled, + isTtsEnabled, + resolveTtsConfig, + resolveTtsPrefsPath, +} from "../tts/tts.js"; import { resolveCommitHash } from "../infra/git-commit.js"; import { estimateUsageCost, @@ -244,6 +252,17 @@ const formatMediaUnderstandingLine = (decisions?: MediaUnderstandingDecision[]) return `馃搸 Media: ${parts.join(" 路 ")}`; }; +const formatVoiceModeLine = (config?: ClawdbotConfig): string | null => { + if (!config) return null; + const ttsConfig = resolveTtsConfig(config); + const prefsPath = resolveTtsPrefsPath(ttsConfig); + if (!isTtsEnabled(ttsConfig, prefsPath)) return null; + const provider = getTtsProvider(ttsConfig, prefsPath); + const maxLength = getTtsMaxLength(prefsPath); + const summarize = isSummarizationEnabled(prefsPath) ? "on" : "off"; + return `馃攰 Voice: on 路 provider=${provider} 路 limit=${maxLength} 路 summary=${summarize}`; +}; + export function buildStatusMessage(args: StatusArgs): string { const now = args.now ?? Date.now(); const entry = args.sessionEntry; @@ -379,6 +398,7 @@ export function buildStatusMessage(args: StatusArgs): string { const usageCostLine = usagePair && costLine ? `${usagePair} 路 ${costLine}` : (usagePair ?? costLine); const mediaLine = formatMediaUnderstandingLine(args.mediaDecisions); + const voiceLine = formatVoiceModeLine(args.config); return [ versionLine, @@ -391,6 +411,7 @@ export function buildStatusMessage(args: StatusArgs): string { `馃У ${sessionLine}`, args.subagentsLine, `鈿欙笍 ${optionsLine}`, + voiceLine, activationLine, ] .filter(Boolean)