diff --git a/Batch.md b/Batch.md index 73c4ab9..ed0e474 100644 --- a/Batch.md +++ b/Batch.md @@ -1,7 +1,7 @@ # DevFlow 批次推进记录 > 记录每个批次的提交 hash、改动内容和交付价值。 -> 最后更新: 2026-06-29 | 最新提交: `c6df455` +> 最后更新: 2026-07-01 | 最新提交: `36ea090` --- @@ -189,6 +189,222 @@ --- +## Batch 14 — 文件浏览器收尾 + +- **提交**: `53e6442` +- **内容**: + - 提交之前未提交的滚动条与布局修复 + - 移除阶段进度条死代码(模板+CSS+常量) + - 文件预览空状态加图标引导 + - 变更视图加载骨架屏 + - 工程选择器改为自定义下拉(显示工程路径) + +--- + +## Batch 15 — 多工程管理 + +- **提交**: `d8d6226` +- **内容**: + - 工程编辑入口:工具栏编辑按钮+弹窗(名称/路径/Git 地址) + - 工程删除二次确认:防误删 + - 记住上次选中工程:localStorage 持久化 + - 自动扫描子仓库:下拉菜单加扫描入口,发现 .git 子目录自动建工程 + +--- + +## Batch 16 — Git 提交历史作者 + +- **提交**: `b19b0f3` +- **内容**: + - 后端 git log format 加 %an 作者名(状态查询+分页查询) + - 提交列表每行显示 hash/作者/主题/时间 + - 提交详情头部补充作者显示 + - 分支切换按钮占位(后续接入分支列表 IPC) + +--- + +## 渲染崩溃修复 + +- **提交**: `bce2fea` +- **内容**: + - AdvancedSection clampApprovalTimeout 常量移到 reactive 之前(打包后 const 初始化顺序 TDZ) + - @/i18n 去掉对 @/stores/appSettings 的 import,改直读 localStorage + - Tauri capability 加 ai-detached-* / fe-detached-* 通配符(分离窗口 listen 权限) + +--- + +## Batch 17 — Git 能力闭环 + +- **提交**: `15eaa0c` +- **内容**: + - Diff 行号解析:解析 @@ -a,b +c,d @@ 头,计算旧/新行号(原恒空字符串) + - 提交详情增强:显示父提交哈希/作者/日期/完整消息 + - 分支只读展示:list_branches IPC + 变更面板顶部下拉查看分支 + - AI 工具写入后自动跳转变更视图:监听 df-data-changed entity=file 切 Tab + 刷新 + +--- + +## Batch 18 — 小程序审批超时计时器 + +- **提交**: `773ebb6` +- **内容**: + - 对齐桌面端 aiShared.startApprovalTimer,补齐小程序缺失的审批超时机制 + - AiApprovalRequired/AiDirAuthRequired 触发 startApprovalTimer(每条独立计时) + - AiToolCallCompleted/AiApprovalResult 触发 clearApprovalTimer(审批落定) + - 切会话/新建/断连/重连/终态触发 clearAllApprovalTimers(防跨会话污染) + - 超时自动拒绝(approve(id,false))+ toast 提示用户 + +--- + +## Batch 19 — 任务管理 UX 重构 + 项目卡片工程数 + +- **提交**: `2780f6a` + `aa4d521` +- **内容**: + - 筛选改下拉:项目/状态从多按钮改为 select,节省垂直空间 + - 新增搜索框:标题/描述关键词搜索,300ms 防抖 + - 新增排序选择器:更新/创建时间/优先级/状态 + - 分组可折叠:点击组头切换,记忆状态到 localStorage + - 分页默认开启:pageSize=20(原 0=全量) + - 紧凑布局:任务行密度优化,显示总条数 + - 空状态引导:图标 + 新建按钮 + - 模态框样式收敛:去内联 style + - 桌面快捷键:Ctrl+N 新建,Ctrl+F 聚焦搜索 + - 项目卡片显示工程数(异步拉取 module 列表) + +--- + +## Batch 20 — coordinator.rs 空壳删除 + +- **提交**: `948d6e6` +- **内容**: + - 删除 crates/df-ai/src/coordinator.rs(零调用的 deprecated 空壳) + - lib.rs 移除 pub mod coordinator 声明 + - 消除编译 deprecated 警告 + +--- + +## 任务行快捷操作菜单 + +- **提交**: `27eb0a9` +- **内容**: + - 任务行 hover 显示齿轮按钮,点击展开快捷菜单 + - 快捷改状态(6 态子菜单)/改优先级(4 级)/删除(二次确认) + - 点击外部自动关闭菜单 + +--- + +## stores/ai TDZ 防御 + +- **提交**: `76aec62` +- **内容**: + - __bindMessages 包装 try/catch,aiShared 未就绪时延迟到微任务重试 + +--- + +## Plan DAG 分层执行器 + +- **提交**: `4dac9fe` +- **内容**: + - PlanExecutor 按 Plan::to_layers 层间串行/层内并行调度子任务 + - feature flag 门控(默认关,未接入主 loop) + - 3 个单元测试覆盖:线性链/并行层/失败容错 + +--- + +## 变更区完善 + +- **提交**: `78ef5dc` +- **内容**: + - 变更文件选中后展开 Diff 红绿预览 + - 分支切换按钮实现只读列表弹窗(拉取分支列表 + 当前分支标记) + +--- + +## 任务列表后端真分页 + +- **提交**: `3c2fa91` +- **内容**: + - 后端新增 count_by_query 方法(复用 list_by_query 的 WHERE 逻辑) + - 前端 buildTaskQuery 传 limit/offset 到后端(SQL 下推分页) + - 去除前端客户端 slice(后端已分页,直接分组) + +--- + +## Batch 25 — 工程依赖图数据层 + +- **提交**: `3758bea` +- **内容**: + - 后端 module_dependencies 表(V35 迁移)+ ModuleDependencyRepo CRUD + - IPC:add/remove/list_module_dependencies + - 前端 API 封装 + DependencyGraph 接入真实边数据 + - 依赖类型颜色区分(library/api/mq/shared/custom) + - 小地图插件(MiniMap)大图概览导航 + - 点击节点跳转项目详情 + +--- + +## Batch 26 — 依赖图增强 + +- **提交**: `dd0e059` +- **内容**: + - 添加依赖入口:工具栏"+ 依赖"按钮,弹窗选择源/目标工程 + 依赖类型 + - dagre 层次布局替换网格布局(LR 方向,自动排布工程节点) + - 依赖边按类型着色 + +--- + +## Batch 28 — 架构债收尾 + +- **提交**: `8991215` +- **内容**: + - ScriptNode 白/黑名单注释清理(标注实际读取方式) + - 双监听器核查结论:df-data-changed 多监听器是正常 pub-sub,非 bug + +--- + +## Batch 29 — 环形检测 + PNG 导出 + 真实总数 + +- **提交**: `36ea090` +- **内容**: + - 后端 detect_module_cycles IPC(DFS 三色标记法检测环形依赖) + - 前端环检测按钮:高亮参与环的节点(红色边框) + - 图导出 PNG(X6 toPNG 回调模式) + - 后端 count_tasks IPC + 前端 taskApi.count() + - 任务列表所有筛选/搜索/排序/翻页均拉真实 total + +--- + +## 后续规划批次(待推进) + +### Batch 30 — 代码质量收尾 +1. 设置页搜索索引核验补全 +2. 编译警告清理(df-storage / df-ai) +3. i18n 遗漏翻译核验 +4. String 替 newtype(5处纯类型重构) + +### Batch 31 — God 文件拆分第一步(MessageList) +1. 提取 MessageItem.vue(单条消息渲染) +2. 提取 useMessageScroll.ts(滚动控制) +3. MessageList.vue 从 1552 行降至 ~600 行 + +### Batch 32 — God 文件拆分第二步(ChatInput) +1. 提取 SkillMention.vue(/@ 联想浮层) +2. 提取 ImageInput.vue(图片粘贴/拖拽) +3. ChatInput.vue 从 1183 行降至 ~500 行 + +### Batch 33 — 多 ReAct 对接 +1. PlanExecutor 接入 agentic loop(feature flag 门控) +2. plan_hint 升级生成完整 Plan DAG +3. DAG 执行进度前端展示 + +### Batch 34 — 产品完善 +1. 小程序 device 在线心跳加固 +2. ScriptNode 白名单跨 crate 接口打通 +3. AI 工具执行后文件树闪烁高亮 +4. Projects 列表页分页 + +--- + ## 未纳入批次的其他会话改动 - `src/composables/ai/aiShared.ts` + `src/stores/ai.ts` — 循环依赖修复(Batch 6 补丁 `cc3ef5b` 纳入提交)