Commit Graph

67 Commits

Author SHA1 Message Date
a2871a66e0 优化: AI Chat全栈多批审查修复与架构清理(risk_level清理/路由解耦/工具渲染/测试补测/死代码) 2026-06-18 22:57:19 +08:00
f6e4e824fa 修复: 补提 adversarial+project CompletionRequest reasoning_content 字段(74003bc 遗漏) 2026-06-17 18:44:28 +08:00
74003bc04f 修复: DeepSeek reasoning_content 全链路透传(跨6 crate补字段+映射+agentic loop累积回传) 2026-06-17 18:08:04 +08:00
924158cff2 修复: force_send单锁竞态+classify unknown不重试(撤销误判)+UX交互批 2026-06-17 14:31:47 +08:00
6b67214395 修复: AI工具OOM/路径遍历+续跑锁收敛+UX交互批 2026-06-17 14:07:16 +08:00
a622bdca61 修复: 队列发送失败回填不丢消息+池权重revert+lang解析DRY+注释变量名修正 2026-06-17 03:55:30 +08:00
bac3c76fa2 修复: B-03b-R10③工作流事件补execution_id治本并发串扰(emit填+消费exec_id守卫) 2026-06-17 03:36:38 +08:00
4317d02e0f 新增: F-05多模态Phase2c闭环(IPC接parts+api透传+doSend传参) 2026-06-17 03:22:20 +08:00
e3cd44802a 新增: F-05多模态Phase2a后端(ContentPart+parts字段+provider图片块+truncate防撑爆) 2026-06-17 03:09:10 +08:00
4be15912cd 重构: df-core改名df-types(类型库语义准+全workspace机械改名54处) 2026-06-17 02:44:34 +08:00
2c8004df65 优化: CR-53/54审查回填PASS+CR-55/56/57登记+CR-53-1注释修正(并行化非移锁外) 2026-06-17 02:29:12 +08:00
80c0955a1a 新增: F-04b多provider fallback切换(stream_one_provider+候选链+resolved_model重算) 2026-06-17 02:26:22 +08:00
b3684f4d1f 新增: F-04c后端(provider池enabled/weight更新IPC+set_caps启动接入) 2026-06-17 02:26:22 +08:00
247dc5da4a 修复: B-21工具卡重复治本(audit tc_list按id去重保证emit唯一) 2026-06-17 02:26:22 +08:00
79b6a43095 新增: F-04多Provider负载均衡池(数据层+选择器+并发原语)+CR-52白项 2026-06-17 02:04:58 +08:00
332a6bba1a 修复: CR-51 trust-hit持锁阻塞IPC(audit execute移锁外spawn+回填持锁) 2026-06-17 02:04:01 +08:00
e23b316faf 修复: B-260617-01 run_workflow审批执行(抽取run_workflow_inner+ai_approve后端分支) 2026-06-17 01:39:28 +08:00
6ec191e750 新增: AE-2025-04会话级授权(TrustKey目录级+同会话同类自动放行) 2026-06-17 01:29:30 +08:00
0202b5195e 新增: F-15阶段3 agentic loop自动压缩(loop顶部检测+压缩+降级原裁剪) 2026-06-17 01:29:29 +08:00
4194842561 新增: F-15阶段2手动上下文管理(2 IPC+3事件+前端按钮+status渲染) 2026-06-17 01:09:41 +08:00
4c84fbc1b6 新增: F-01阶段6 AiChat模型下拉+override穿透 2026-06-17 00:50:47 +08:00
63bff8bf96 新增: F-15上下文压缩基础(compress_prompt四段式+compress_via_llm+context辅助方法) 2026-06-17 00:50:47 +08:00
2446d1b876 新增: patch_file支持行号区间和锚点定位 2026-06-17 00:33:49 +08:00
2ddfea67c7 新增: F-01阶段5模型路由调用点接入 2026-06-17 00:33:44 +08:00
a26b86e003 新增: F-01模型拉取IPC+Settings拉取UI(FR-S1密钥内存解析闭环) 2026-06-17 00:14:38 +08:00
b3e78e6061 新增: F-01模型能力阶段1+2(ModelConfig数据模型+model_probe探测器+df-storage兼容V18) 2026-06-16 23:33:45 +08:00
766f235ab7 重构: secret纯密钥逻辑下沉df-storage(方案B避循环依赖,12调用点零改) 2026-06-16 22:57:43 +08:00
c10adaf0b0 新增: AiNode自审ai侧(AiNode持db写产出+ai_self_review节点+DAG透传) 2026-06-16 22:40:55 +08:00
539b5ed63e 新增: TaskRecord加output_json产出字段+V17迁移(决策a AiNode自审闭环) 2026-06-16 22:29:21 +08:00
129f0f0156 优化: 对抗评估clamp去冗余+JSON提取正则兜底+update_task注释对齐status收口 2026-06-16 22:20:14 +08:00
b94e74a96d 新增: 推进链阶段3收口(advance_task/run_workflow工具+status状态机收口) 2026-06-16 21:20:41 +08:00
dfe0096498 新增: F-03对抗评估接LLM+F-02纯技能调用标题+i18n@转义 2026-06-16 21:07:42 +08:00
2069f79198 重构: df-ai-core trait下沉拆crate+导入历史项目批量扫描 2026-06-16 20:19:55 +08:00
d00b30f0ba 重构: AI聊天可靠性批次(审批累计计数/write_file diff预览/会话隔离补清/token缓存) 2026-06-16 19:56:29 +08:00
ba7f35552b 重构: AI流式断线保文StreamResult三分支+重试对齐决策a1,推进链落df-nodes 2026-06-16 19:11:19 +08:00
7d5cd4c89a 新增: AI Chat多项增强(审批去重/编辑重发/导出/实体引用/会话置顶搜索)+任务推进链df-nodes落地 2026-06-16 12:41:13 +08:00
4dc5219a3c 修复: CR-01审查待修项①类7项(CSS补testing/blocked徽章+CAS防回收站推进+DRY+注释+测试改名+advancing接文案)+新增待审查.md审查队列(职责分离:主会话写/审查agent读)+todo销账 2026-06-16 03:12:24 +08:00
38c7180365 新增: 文档(任务推进链实施路径+任务模块分析+审查报告+patch_file指南) 2026-06-16 02:33:16 +08:00
10e4945e5a 优化: AI模块(provider重试兼容+aichat交互+工具卡片可读化+diff高亮) 2026-06-16 02:33:16 +08:00
d2cb38cdac 新增: 任务推进链(7态状态机+advance_task CAS原子写)+软删除+前后端7态对齐 2026-06-16 02:33:15 +08:00
672d677046 修复: 2196c77 workflow整文件替换回退恢复+scrollToBottom smooth+truncated标志
根因: 批次1 workflow(2196c77)做 @/ 路径统一时对 AiChat.vue/Ideas.vue
做了整文件替换(非手术式编辑),把 6254d06 之后积累的功能改动全部抹掉。

AiChat.vue 恢复 12 项功能:
- row-reverse 用户头像右侧布局
- groupedActive 对话按今天/昨天/更早分组
- archivedConvs 归档分组(可折叠)
- confirmClearChat 清空对话二次确认
- showBackToBottom 回到底部按钮(含 smooth 参数)
- queue UI 生成中消息排队可视化
- 技能联想(/ 触发浮层)
- token-usage 展示
- .ai-conv-group/item-actions/back-to-bottom/queue/skill 样式组
- onBeforeUnmount 补 stopListener() (CR-24 回归修复)

Ideas.vue 恢复 i18n/useConfirm/useRendered/过滤器/晋升逻辑

新增:
- F-260615-03 list工具 truncated 截断标志(tool_registry.rs)
- AR-8-scroll scrollToBottom 加 smooth 参数支持平滑滚动

vue-tsc 0 err / cargo check 0 err
2026-06-15 17:19:47 +08:00
2196c7748f 优化: P0 shell stdout修复+灵感路由+3工具新增+ai-md全局CSS+import路径统一
P0 修复:
- B-260615-37: shell.rs 补 Stdio::piped() 修复 run_command stdout/stderr 恒空
  (tokio 默认 inherit 导致 wait_with_output 读不到 pipe)

P1 功能:
- B-260615-36: 路由加 /ideas/:id + Ideas.vue 接 route.params.id + watch
  (修复项目详情点「来源灵感」跳空白页)
- F-260615-08: 新增 file_info 工具(元信息: exists/size/lines/binary/dir)
- F-260615-09: 新增 append_file 工具(追加写入, RiskLevel::Medium)
- F-260615-12: 新增 search_files 工具(文件名 glob 搜索,递归,限50条)
  + search_files_recursive 辅助函数 + i18n zh/en 3工具×2命名空间

DRY/重构:
- CR-260615-09: .ai-md 样式5份→全局 src/styles/ai-md.css(75行)
  AiChat.vue 删71行重复 + main.ts 引入 + typo修正(.a-md→.ai-md)
- 全量 import 路径统一为 @/ 别名(stores/composables/views ~28文件)
  vite.config.ts 加 resolve.alias.{ '@': '/src' }
- i18n 批量改进: store error fallback 11处中文→t() / ToolCard ARG_LABEL
  / useAiSend queue文案 / Dashboard 空态 / Ideas.vue null守卫
- cargo check 0 error / vue-tsc 0 error
2026-06-15 16:40:09 +08:00
dc27e79fd2 新增: AR-11 数据变更联动(AI 工具执行后 emit df-data-changed+store listen 刷新列表)
audit.rs data_change_for_tool 映射(create_project/idea/task→create,update_*→update,delete_*/purge→delete,restore/bind_directory→update)+emit_data_changed(process_tool_calls 已有 app_handle 无需透传);commands.rs ai_approve 成功路径 emit;types.ts DfDataChangedPayload;project.ts barrel listen df-data-changed + start/stopDataChangedListener 单例;App.vue onMounted 全局挂载+onUnmounted 清理。AI 工具(create/update/delete project/task/idea)执行后前端 Projects/Tasks/Ideas 列表自动刷新。批7,cargo+vue-tsc 0
2026-06-15 05:54:15 +08:00
b08adcb9da 修复: B-35 broadcast Lagged 终态兜底(P0,防前端永久卡死)
workflow.rs forward 任务 move state.db.clone() 进去(原仅 executor spawn 持有)+ Lagged 累计 lagged_total(LAGGED_PROBE_THRESHOLD=8)达阈值查 WorkflowRepo::get_by_id 终态,completed/failed/cancelled 补 emit workflow-event + break 退出 forward。防 Lagged 丢终态事件致 forward 永远 rx.recv().await 等 finished → 前端审批/完成弹窗永久卡死。合成事件 total_duration_ms/failed_node 占位(broadcast 不暴露原字段,DB 为准)。批7 wdntu5adj,cargo 0
2026-06-15 05:54:15 +08:00
d809cf4b18 修复: B-22 前后端状态同步(ai_is_generating IPC+发送前查后端真值)
commands.rs 加 ai_is_generating IPC(读 session.generating)+lib.rs 注册;useAiSend sendMessage 预检先 invoke('ai_is_generating')查后端真值:后端 generating=true 时入队(撞 QUEUE_LIMIT 抛错)+本地 streaming=false 则复位 streaming=true 让用户感知,IPC 失败退化为 false 不阻断。消除前端 streaming 与后端 generating 不同步致预检放行撞拦截。批6 w8qbkxxvz,cargo+vue-tsc 0
2026-06-15 05:48:47 +08:00
892a642bd4 优化: R-PD-10 commands err_str helper 统一错误格式化(87 处)
mod.rs 加 pub fn err_str<E: ToString>,commands/ 10 文件 87 处 .map_err(|e| e.to_string()) → .map_err(err_str),残留 0(10 处复杂表达式 e 用于 format!/anyhow 保留)。行为零变化,统一入口为未来加日志/分类留点。批5,cargo workspace 0
2026-06-15 05:45:04 +08:00
4665e910ee 修复: B-14 stop 即时打断 Notify 跨文件接入(去 30s 心跳延迟)
AiSession 加 notify:Arc<Notify> 字段 + stop_notify() 取引用;stream_llm 加 notify 参数 + select! notify.notified() 分支(唤醒后 load stop_flag 判退出,防误唤醒继续跑——Notify 仅承载即时唤醒,停止真值仍由 stop_flag 决定);agentic.rs session.notify.clone() 透传 &notify;commands.rs ai_chat_stop 流式分支 stop_flag.store 后立即 notify_one() 唤醒阻塞的 stream.next()。批1 脚手架(本地无用实例)已 revert,本批完整接入。批3 wkitz0twz,cargo workspace 0 err
2026-06-15 05:34:31 +08:00
c7386a12c5 重构: R-PD-6 try_continue conv_id 解耦(emit 收尾用审批所属 conversation_id 消竞态)
agentic.rs 入口新增 pending_conv_id(pending_approvals.values() find_map 首个非空 conversation_id);!should_continue emit 收尾分支 + provider-Err 分支 conv_id 优先取 pending_conv_id 消除竞态,回退 active_conversation_id。续生成主路径保留 active_conversation_id(该期 generating=true 且 switch readonly 非竞态,触发审批在 ai_approve 已 remove 无法从 pending 取,扩签名需改 commands.rs 超本任务边界)。批1 wwllb4ith 实施,cargo check workspace 0 err
2026-06-15 05:25:33 +08:00
2de0c6ecb7 重构: 后端 df-ai/commands 拆分+df-nodes/workflow 改造+P0 bug 修复
- df-ai: context 历史中毒三档自愈 sanitize_messages(AC3)+anthropic_compat tool_use_id None 跳过(AC1/AC2)+删 router/stream 死码
- df-core: events 加 select_type+decisions 多选审批契约(F-260615-01)
- df-execute: shell run_command 工具复用(F-260615-05)
- df-nodes: human_node 多选校验+2 端到端测(F-01)+取消跳 set_failed(B-03b-R1/R2/R8)
- df-workflow: executor/dag/state cancel 闭环(B-06/07/03a/b)+provider approve options(R-PD-5)
- df-storage: find_path_conflict 抽公共(R-PD-11)+COLS 常量断言
- df-ideas: 删 IdeaPromoter/PromotionPolicy 死码(R-PD-14)
- src-tauri/commands/ai: secret keyring 迁移(FR-S1/R-PD-4)+GeneratingGuard RAII+disarm(B-09/26)+newConversation 软复位(B-10)+stream 心跳/stop select/空回复判错(B-02/04/05/15)+run_command(F-05)+mask audit(AR-3)
- src-tauri/commands/{project,task,workflow,mod,lib,state}: task detail IPC(F-02)+approve decisions+task list 联动(B-29)
- Cargo.lock+Cargo.toml 依赖同步
2026-06-15 05:14:42 +08:00
36d68ddb26 修复: AI工具调用健壮性+审批卡片可读化+任务工具补全
- AC1/AC2 anthropic_compat tool_use_id None/空时跳过或占位(防GLM端500卡死)
- AR-3 审批卡片 id→项目名回显(前端白名单特化) + 后端查不到友好提示
- FR-D6 补 delete_task/update_task 工具(防误用 delete_project 清理孤儿任务)
- FR-D7 抽 bind_dir_to_project 消除 create_project/bind_directory 重复
- FR-D8 create_idea schema 补 priority 契约对齐
- FR-S4 SKILL.md 注入加头尾隔离标注防 prompt injection 混淆
- FR-R4 complete() 加 60s 单请求超时(不影响 stream)
2026-06-14 22:48:04 +08:00