更新: 批次推进记录同步至 Batch 29

- 补全 Batch 14-29 全部提交记录
- 新增后续规划批次(Batch 30-34)
This commit is contained in:
2026-07-01 11:37:42 +08:00
parent 36ea090d9b
commit 0338210ba2

218
Batch.md
View File

@@ -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` 纳入提交)