新增: 多会话并发前端 UI 阶段3/4(F-09 收尾)

后端 per-conv 并发已就绪(d899c58 + CR-03~07),前端呈现层收尾:

阶段3 多会话生成态:
- stores/ai.ts generatingConvId 单值 → generatingConvs:Set + add/remove/isGenerating helper
- useAiEvents 5 处迁移(Completed/Error/路由标记改 per-conv Set 操作,
  AiError 精确清出错会话非全局清空,修原 = null 误清其他会话)
- ConversationSidebar 多会话并行生成脉冲指示(isGenerating 各会话独立)

阶段4 独立窗口多会话:
- useAiWindow label ai-detached → ai-detached-{convId}(per-conv 独立窗口)
- localStorage 单 key → per-conv key(防多会话串扰,读路径兼容旧 key 回退)

vue-tsc EXIT 0 + generatingConvId 零代码残留(仅注释)
This commit is contained in:
2026-06-19 20:15:37 +08:00
parent 19eb14ffc8
commit 7d5402951b
12 changed files with 181 additions and 53 deletions

View File

@@ -72,10 +72,10 @@ async function newConversation() {
state.pendingApprovals = []
state.streaming = false
// F-260616-09(A 路线):补漏清字段维持单例软隔离,解「新建会话上下文残留」。
// queue 清空防旧会话排队消息被带进新会话 drain;generatingConvId 清空防后台事件
// queue 清空防旧会话排队消息被带进新会话 drain;generatingConvs 清空防后台事件
// 错误路由;agentRound 复位 0;searchQuery 清空防新会话侧栏被旧搜索过滤。
state.queue = []
state.generatingConvId = null
state.generatingConvs.clear()
state.agentRound = 0
state.searchQuery = ''
await loadConversations()