【静默广播修复(bug:思维链露出 backthink 推理)】 - 根因:LoopThinker.Think 复用同一 loop.Loop 且 loop 全局带 OnStream,backthink 后台思考时 把 [background autonomous reflection] 的 thinking/流式事件广播到前端,被当聊天思维链显示。 - loop/mute_ctx.go:WithMutedBroadcast(ctx) + isMutedBroadcast(ctx)——context 上静默标志。 - loop 四处广播抑制(stream.go 流式 / step.go 静默走非流式 agentStep / request.go capacity 事件 / tools.go tool_execution),静默时跳过 UI 广播,推理照常返回结论。 - thinker.go LoopThinker.Think 用 loop.WithMutedBroadcast(ctx),backthink 不再泄 thinking。 【XML 动作/旁白结构化解析】 - cyrene.yaml systemPrompt 加「表达方式:动作与旁白」——动作 <action>…</action>、 旁白 <narration>…</narration>;克制≤1-2个/段、贴合唤醒态、重要信息不加、朗读正文忽略标签。 - 前端 parseContent.ts:ContentPart[](text/action/narration),非贪婪+反向引用、跨行、非法/ 未闭合兜底纯文本不崩;summarizeContent 供思维导图/状态。 - 前端 renderContent.tsx:action/narration → 灰斜体(mu-text-lo italic)句中原位渲染。 - 应用到 chat.tsx UserBubble/AssistantBubble + messages 各 mode body。 go build/vet/test(loop/backthink)绿 + 前端 tsc/vite 绿。
打通前端 ws.ts 里那批死消费者事件(thinking/mood/tool_used/subagent_event/ task_output/device_update/reminder/backthink),并给 loop 接真 token 流式。 - wire.go:loop 建时传 OnStream(streamChunk 闭包把 delta 发 bus ws.stream_chunk); gateway.Deps 注入 Scheduler/Tasks/Streaming;iot 接共享总线 iot.WithBus(a.bus)。 - ws_bridge.go:hub 额外订阅 iot.>/task.>/automation.>/reminder.>/cyrene.agent.*.event, normalizeEvent 归一为 ws.*(device_update/task_output/task_done/automation_result/ reminder/subagent_event);不订阅 cyrene.agent.> 以免 ask/reply 内部事件进 relay。 - ws_route.go:voice_input→ws.voice_input;subagent_ask→Scheduler.AuditContext(真实 上下文审计,替换 pending stub);task_output_query→Manager.TaskOutput(真实输出, 替换空 {})。 - server.go:新增 SubagentAuditor/TaskOutputStore 接口 + Deps.Scheduler/Tasks/Streaming。 - orchestration/auditcontext.go:Scheduler.AuditContext(full/tail/keyword)。 - task/manager.go:Manager.TaskOutput(id)。 - backthink:record() 补发 ws.backthink 事件。 - json tag 修正(device_update/reminder/task output 结构体加小写 tag + DeviceUpdate 补 message),使前端分支能真正渲染。 实机验证:WS 握手 101、task manager ready、iot manager initialized(WithBus 生效)。 go build/vet/test 全绿;TestHubBridgeDeviceUpdate/TestHubBridgeSubagentProgress 覆盖 映射。dev 推至后续版本。