新增: 批次工作落地(推进链/评估闭环/事件总线/并发/加固) + 技术债清理 + 文档整理

后端:
- 工作流推进链(D-03):advance_task/状态机/闸门走 df-nodes Node trait,conditions 条件引擎扩展
- 想法评估闭环:启发式评分+对抗评估,df-ideas/scoring + df-storage/idea_eval_repo + idea 前端打通
- 全局事件数据总线:df-ai/context+context_helpers+augmentation 跨模块解耦
- AI planner/plan_hint/intent:aichat B 路线并行多轮基础
- patch_file 加固(TD-03/04):读改写整体锁防 lost update,expected_hash 合约闭环
- 压缩超时兜底(F-15 卡死根治)
- F-09 多会话并发:LlmConcurrency per-conv + streamingGuard 前端守护 + verify 脚本
- 知识注入 DRY/skills/audit 扩展

清理:
- aichat 技术债(误报 allow/死导入/过时注释 30 项)
- URGENT.md 删除(11 项加急全解决/迁 todo)
- 文档整理(todo/待决策/待审查/ARCHITECTURE/INDEX + 总线/技术债审查新文档)
This commit is contained in:
lxy
2026-06-21 20:51:26 +08:00
parent 330bb7f505
commit bd6a41fe6e
111 changed files with 11931 additions and 1033 deletions
+3 -2
View File
@@ -11,6 +11,7 @@
import { invoke } from '@tauri-apps/api/core'
import { state } from '@/stores/ai'
import { nextMsgId } from './aiShared'
import { setStreaming } from './streamingGuard'
import { persistUiState } from './useAiPanel'
// ── 主窗口事件跟随 unlistener ──
@@ -61,7 +62,7 @@ async function detachPanel(convId?: string) {
// F-09:仅从 Set 移除该 conv(其他会话可能仍在生成),不全局清空。
// watchdog 在主窗口 AiChat 卸载(App.vue v-if detached)→ stopListener → clearStreamWatchdog 时已清,
// 此处仅清内存 state 视觉残留;localStorage 快照保留供 resumeInDetached 恢复。
state.streaming = false
setStreaming(false, { convId: targetConv || null, reason: 'detachPanel-clear-main' })
if (targetConv) state.generatingConvs.delete(targetConv)
const sep = targetConv ? `?conv=${encodeURIComponent(targetConv)}` : ''
const url = window.location.origin + window.location.pathname + '#/ai-detached' + sep
@@ -192,7 +193,7 @@ export async function restoreGeneratingState(opts?: { fromMainPanel?: boolean; c
content: '',
timestamp: Date.now(),
})
state.streaming = true
setStreaming(true, { convId: gen, reason: 'restoreGeneratingState' })
state.generatingConvs.add(gen)
return true
}