Jun 29 16:58 fix: prevent TTS replay of historical messages on session resume chenbhao +1: Claude Big Pickle useAutoTTS now detects session switches (resume) via UUID discontinuity
and treats all loaded messages as history to skip TTS. Only subsequent
real-time assistant replies will trigger speech.
Co-Authored-By: Claude Big Pickle <noreply@anthropic.com> Jun 28 12:49 feat: Filter TTS rules based on language 07:57 fix: tts not read tool message Jun 21 16:28 feat: /voice use best grop whisper provider free and fast 14:31 feat: /friend tts add websearch 12:07 feat: inter-process 架构对比
之前: 之后:
CLI TUI CLI TUI (单一进程)
└── /friend start ├── FriendService (in-process, cpal)
├── 服务器子进程 :3456 │ ├── STT via cpal
│ ├── chat-service.ts │ ├── enqueue() → 主 CLI
│ │ └── CLI SDK 子进程│ └── SSE → Tauri
│ ├── arecord 子进程 ├── 轻量 Bun.serve (in-process)
│ └── SSE └── Tauri (thin display only)
└── Tauri (getUserMedia) Jun 15 11:07 feat: /goal 新增文件 (12个)
- src/commands/goal/index.ts — 命令入口
- src/commands/goal/goal.tsx — 命令核心逻辑
- src/utils/goal.ts — prompt 构建和工具函数
- src/tools/GoalUpdateTool/ — update_goal 工具 (3个文件)
- src/tools/GoalCreateTool/ — create_goal 工具 (3个文件)
- src/tools/GoalGetTool/ — get_goal 工具 (3个文件)
- src/hooks/useGoalAutoContinue.ts — 自动继续 hook
- src/components/PromptInput/GoalIndicator.tsx — Footer 状态显示
修改文件 (6个)
- src/state/AppStateStore.ts — 添加 GoalStatus / Goal 类型和 goal 字段
- src/commands.ts — 注册 goal 命令
- src/tools.ts — 注册三个 goal 工具
- src/screens/REPL.tsx — 调用 useGoalAutoContinue(queryGuard)
- src/components/PromptInput/PromptInputFooterLeftSide.tsx — 引入并显示 GoalIndicator
- src/bootstrap/state.ts — 添加 getTotalTokensUsed() 函数
功能
- /goal <objective> — 设置长期自治目标
- /goal pause|resume|clear|edit — 管理目标
- agent 在每个 turn 结束后自动 enqueue 继续 prompt(直到目标完成或被阻塞)
- update_goal 工具供 agent 标记目标完成或 3+ 轮阻塞后标记 blocked
- Footer 显示 goal 状态指示器 09:23 feat: cancel auto-start feishu bot 08:48 fix: just rm symbol not include text 04:09 feat: feishu voice tts 01:55 feat: feishu Jun 14 13:45 feat: feishu connect 02:48 fix: desktop provider kepp TUI Jun 13 14:08 feat: voice TW girl voice 14:00 feat: voice support zh-CN ---
STT(语音识别中文)
src/hooks/useVoice.ts 两处改成:
const rawLanguage = getInitialSettings().voiceLanguage || getInitialSettings().language
优先用 voiceLanguage 字段,没有则 fallback language。zh (中文) 已在 Deepgram 支持列表中。
TTS(中文语音输出)
src/hooks/useAutoTTS.ts 新增 resolveEdgeTTSVoice() 函数,根据语言自动选择 voice:
- zh / zh-CN → zh-CN-XiaoxiaoNeural
- zh-TW → zh-TW-HsiaoYuNeural
- zh-HK → zh-HK-HiuMaanNeural
- ja → ja-JP-NanamiNeural
- 其他 → en-US-JennyNeural(默认)
配置方法(在 ~/.claude/settings.json 里加):
{
voiceLanguage: zh-CN,
voiceTTSVoice: zh-CN-XiaoxiaoNeural
}
或者更简单,改 language 为 zh-CN 也能自动生效(两处都会读)。 04:36 feat: add nvidia provider 02:19 feat: voice ok 02:01 feat: voice stt+tts just first have voice 00:31 feat: voice stt ok english Jun 12 17:13 feat: voice add fully-local STT (faster-whisper) + TTS (edge-tts) 06:29 feat: voice mode asr May 23 16:49 feat: desktop cd desktop && bun run tauri dev May 6 12:11 feat: ctx line 10:12 fix: Not logged in . Run /login in opencode Apr 12 13:34 feat: live refresh typing status Apr 8 06:13 fix: ban telegram log Apr 5 04:46 fix: 从 loacl 中切换到 openrouter 后自动更新 模型名称 Apr 4 11:03 fix: tui can recevie message and auto load gateway 07:06 feat: /telegram backend load Apr 2 20:35 feat: /login local model 17:45 init: verspercode v0.1.0