678035afeda639b06ddcf33e8d17279014924404
根因:mount 进入 /new 时 useThreadChat 会抖动 threadId(useState 先给一个 uuid, 紧接着 effect 又 setThreadId(新 uuid))。旧去重用 taskAutoSentRef,而 reset effect 依赖 threadId,被抖动重置回 false;此时 onCreated 未回、streamThreadId 仍为 undefined(守卫放行),自动发送 effect 二次触发 → 发两次、创建两个线程,回答开始时 切到最终线程,表现为「开始回答后突然变成一个」。 改为「武装」标志去重,只在会话真正创建完成(isNewThread→false)后才重新武装, 对 threadId 抖动免疫,保证每个新建会话恰好自动发一次。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Languages
Python
39.2%
TypeScript
35.9%
HTML
22.2%
CSS
1.5%
JavaScript
0.9%
Other
0.2%