Files
agent-aide/CHANGELOG.md

19 KiB
Raw Permalink Blame History

CHANGELOG

本文件记录 Aide 项目对使用者可见的重要变更。

2025-12-19

重大优化

三个命令的分步执行机制重构docs / user-graph / user-docs

针对大型项目(百万行代码级别)的分步执行和接续执行需求,对三个命令进行了根本性重构:

核心改进

  • 索引式计划文档:计划文件只做索引,详细信息存在独立步骤文档(steps/step-XXX.md
  • 自包含步骤文档:每个步骤包含执行所需的全部信息,接续执行无需重新分析
  • 粒度动态控制:根据复杂度评估动态拆分步骤,确保单次对话可完成
  • 分析与执行分离:分析阶段产出详细计划,执行阶段直接产出

docs.md项目文档管理

  • 新增"步骤生成"阶段:为每个区块生成详细步骤文档(包含文件清单、已知上下文)
  • 区块计划升级为索引式:block-plan.md 只做索引,steps/ 目录存详情
  • 支持区块内细粒度进度追踪:大型区块自动拆分为多个步骤
  • 新增配置项 docs.steps_path(默认 .aide/project-docs/steps

user-graph.md用户流程图生成

  • 步骤文档包含已分析好的模块结构(涉及文件、模块关系、数据流、关键函数)
  • 执行阶段直接基于模块结构绘图,无需重新分析代码
  • 新增配置项 user_docs.graph_steps_path(默认 docs/graph-guide/steps

user-docs.md用户文档生成

  • 步骤文档包含已提取的源信息(项目基础信息、相关模块、关键代码摘要)
  • 执行阶段直接基于源信息生成文档
  • 新增配置项 user_docs.docs_steps_path(默认 docs/steps

解决的问题

  • 原有"分步"是形式上的分步(基于逻辑单元),对大型项目无效
  • 每次对话需重新"理解"项目,消耗大量上下文
  • 单个区块/文档可能需要多次对话才能完成,但无法追踪内部进度

优化

user-docs 分步执行和接续执行能力

  • 重构 commands/user-docs.md,添加与 user-graph.md 相同的分步执行机制
  • 新增"分析和计划阶段":首次运行时分析项目、规划结构、生成计划文档
  • 新增"接续执行阶段":后续运行时读取计划、显示进度、支持接续
  • 新增"步骤执行流程":每步完成后更新计划、支持暂停保存进度
  • 新增配置项 user_docs.docs_plan_path(默认 docs/user-docs-plan.md
  • 适用于大型项目的文档生成,支持分多次对话完成

finish 清理代码移除

  • 移除 run.mdauto-run.md 中的"清理临时文件"指令和 aide flow next-step "任务完成" 命令
  • 原因aide 程序在 finish 时已自动执行清理,无需在命令文档中重复指导

finish 提交信息格式优化

  • 修改 branch.py 中的收尾提交信息格式:
    • 正常完成:完成:<分支名> - <任务名>
    • 强制清理:任务中断,清理:<分支名> - <任务名>
  • 替代原有的 {短哈希}的任务收尾 格式,更加语义化
  • 新增 _clean_task_summary() 函数,移除任务名中的"开始任务准备:"前缀
    • 支持半角/全角冒号、有无空格的多种格式

decide 界面源文件显示

  • handlers.py 新增 _read_source_lines 方法:读取待定项来源文件的指定行内容
  • handle_get_items 方法增强:返回数据中包含 source_content 字段
  • app.js 更新:显示待定项来源文件的原文内容(以代码块形式)
  • style.css 新增:.location-label.source-content 样式

新增功能

PlantUML 渲染配置

  • 新增 plantuml.font_name 配置项:默认字体 "Arial"
  • 新增 plantuml.dpi 配置项:默认 DPI 300
  • 新增 plantuml.scale 配置项:默认缩放 0.5
  • run.md 流程图示例更新:添加配置获取说明和 skinparam/scale 示例

finish 环节自动清理任务计划文件

  • aide flow next-part finish 时自动清理 .aide/task-plans/ 目录下的所有文件
  • 功能由 hooks.py 中的 _hook_clean_task_plans 实现
  • 从 run.md 中删除了手动清理指令

返工流程警告增强

  • aide flow back-part 输出确认 key 前,新增 rework skill 学习提示
  • 明确要求完成准备工作后才能确认返工

移除

移除安装命令和离线安装程序

  • 删除 /aide:install-linux 命令(aide-marketplace/aide-plugin/commands/install-linux.md
  • 删除 /aide:install-win 命令(aide-marketplace/aide-plugin/commands/install-win.md
  • 删除 aide-program/offline-installer/ 目录及其全部内容
  • 清理项目文档中的相关引用

新增功能

返工流程优化

  • 新增 rework skill提供返工流程指南包含返工类型判断、文档更新格式、用户提醒模板
  • 新增 aide flow back-confirm --key <key> 命令:确认返工请求并执行
  • 修改 aide flow back-part:执行时生成确认 key需先完成准备工作后执行 back-confirm 确认
  • 返工确认机制防止误操作,确保返工前完成文档更新
  • 状态文件 .aide/back-confirm-state.json 用于存储待确认的返工请求

面向用户的文档系统

  • 新增 /aide:readme 命令:生成面向用户的 README.md
  • 新增 /aide:user-docs 命令:生成面向用户的文档
  • 新增 /aide:user-graph 命令:生成面向用户的流程图
  • 新增 readme-templates skill提供 README 编写模板和模块

基础配置修改

  • gitignore_aide 配置项默认值改为 false
  • aide init 支持在任意目录执行初始化

2025-12-18

修复

修复 end_commit 记录逻辑

  • end_commit 现在记录 tracker 创建的 finish 提交哈希([aide] finish: {summary}
  • finished_at 使用 finish 提交的时间戳
  • tracker.py移除多余的 [aide] finish: 更新状态文件 提交,改为传递 end_commit 和 finished_at 给 branch_mgr
  • branch.pyfinish_branch_merge 接收 end_commit 和 finished_at 参数
  • 正常 finish 流程不再创建额外的结束提交,直接使用 tracker 传入的值
  • 强制清理clean仍会创建自己的结束提交
  • flow-status.json 和 branches.json/md 的更新合并到同一个提交 [aide] finish: 更新状态
  • 新增 git.amend() 方法(备用)

修复 find_project_root 在子项目中定位错误的问题

  • 原因:从复制的测试目录运行时,因没有 flow-status.json 而向上查找到父项目
  • 解决:添加"步骤 0",如果当前目录已有 .aide 目录,直接使用不向上查找
  • 新的查找策略: 0. 当前目录有 .aide → 直接使用
    1. 向上查找有 flow-status.json 的目录(活跃任务)
    2. 向上查找有 config.toml 的目录

新增功能

aide flow clean 强制清理命令

  • 用于在任务中途强制终止流程
  • 如果工作区不干净,自动创建一个提交
  • 执行流程与 finish 类似,但:
    • 提交消息格式为 {start_commit[:7]}的强制清理
    • 分支状态标记为 force-cleaned
  • 保留任务分支供后续参考

修复

修复 finish 流程中起始/结束提交哈希相同的 bug

  • 原因:切回源分支后才调用 record_branch_finish,导致 rev_parse_head() 获取的是源分支 HEAD
  • 解决:在任务分支上先创建"结束提交"并记录哈希,在最终保存时直接使用保存的变量
  • 新增 record_end_commit 方法:仅记录结束提交和时间,不更新状态
  • _merge_normal_merge_with_temp_branch 中,直接使用保存的 end_commit 变量,确保不会丢失

变更

finish/clean 流程重构

  • 新流程:结束提交 → 记录哈希 → 清理 → 清理提交 → 切回源分支 → squash 合并 → 更新状态(使用保存的end_commit) → 收尾提交
  • _merge_normal 方法新增 is_force_clean 参数,不再调用 update_branch_status,直接内联更新
  • _merge_with_temp_branch 方法也同步更新

decisions 清理逻辑简化

  • 清理时不再备份 decisions/*.json,直接删除
  • 移除备份目录创建逻辑

branches.md 时间格式调整

  • 起始时间和结束时间分别单独列出
  • 原格式:- **时间**: 2025-12-18 10:30 ~ 11:45
  • 新格式:
    • - **起始时间**: 2025-12-18 10:30
    • - **结束时间**: 2025-12-18 11:45

修改的文件

  • aide-program/aide/core/config.py
    • find_project_root 函数:添加步骤 0当前目录有 .aide 时不向上查找
  • aide-program/aide/flow/git.py
    • 新增 amend 方法:将暂存区内容追加到上一次提交
  • aide-program/aide/flow/branch.py
    • _cleanup_task_files 方法decisions 直接删除不备份
    • record_branch_finish 方法:保持兼容
    • 新增 record_end_commit 方法
    • clean_branch_merge 方法:脏工作区时自动创建提交
    • _merge_normal 方法:重构流程,结束提交后立即更新状态再清理
    • _merge_with_temp_branch 方法:同步重构
    • _generate_markdown 方法:时间格式分开显示
  • aide-program/aide/flow/tracker.py
    • 新增 clean 方法
  • aide-program/aide/main.py
    • 新增 flow clean 子命令
    • 新增 handle_flow_clean 处理函数

改进

收尾清理逻辑增强

  • 新增删除 pending-items.json 文件的清理步骤
  • 新增删除流程图目录(.aide/diagrams/)下所有文件的清理步骤
    • 支持删除 .puml.plantuml.png 文件
    • 保留目录本身

修改的文件

  • aide-program/aide/flow/branch.py - _cleanup_task_files 方法增加两个清理步骤

改进

aide 命令递归查找项目根目录

  • 新增 find_project_root() 函数,支持从子目录运行 aide 命令
  • 类似 git 查找 .git 目录的逻辑:从当前目录向上递归查找
  • 查找策略(两遍遍历):
    1. 优先查找包含 flow-status.json 的目录(活跃任务)
    2. 其次查找包含 config.toml 的目录
  • 解决了会话重启后工作目录变更导致任务状态"丢失"的问题

修改的文件

  • aide-program/aide/core/config.py - 新增 find_project_root() 函数
  • aide-program/aide/main.py - 所有 handler 函数改用 find_project_root() 替代 Path.cwd()

新增功能

全自动任务执行命令 /aide:auto-run

  • 基于 /aide:run 的全自动化版本
  • 去除所有用户交互环节:
    • 待定项自动决策(选择 recommend 或最高分选项)
    • 任务细则自动确认(无需用户确认)
    • 跳过 confirm 阶段docs → finish
  • 新增错误自动处理机制:
    • 优先委托 general-purpose 子代理解决
    • 无子代理时自行解决(需先记录并更新计划)
  • 新增计划外情况处理机制:
    • 必须先记录遇到的情况
    • 更新任务计划文档后才能继续
  • 适用场景:批量处理、后台执行、无需人工干预的任务

用户确认阶段 (confirm)

  • 在 docs 和 finish 之间新增 confirm 阶段
  • 用于用户审阅和测试已完成的工作
  • 支持返工机制:根据问题类型返回相应阶段
  • 返工前强制更新任务文档,便于上下文恢复

复杂任务子计划文档规范

  • 新增 task.plans_path 配置项(默认 .aide/task-plans/
  • 规范化文档结构:
    • guide.md - 任务计划总导览
    • spec-01.md, spec-02.md, ... - 各子计划细则
  • 更新复杂任务执行模式:task-optimize → [flow-design → impl → verify → docs → confirm] × N → finish
  • 子计划状态管理:在 guide.md 中维护状态表

变更

  • 流程阶段更新为 7 个task-optimize → flow-design → impl → verify → docs → confirm → finish
  • run.md 中"阶段 6收尾"更新为"阶段 7收尾"
  • 更新 aide skill 文档,添加 confirm 环节和 task-plans 目录说明

修改的文件

  • aide-program/aide/core/config.py - 添加 plans_path 配置和 confirm 阶段
  • aide-marketplace/aide-plugin/commands/run.md - 任务细则规范、子计划执行、confirm 阶段
  • aide-marketplace/aide-plugin/skills/aide/SKILL.md - 环节列表、数据存储、流程示例
  • .aide/config.toml - 项目配置更新

2025-12-18 (earlier)

变更

aide flow finish 流程重构

  • 简化 git 历史finish 后原分支只保留 2 个提交(起始 + 收尾)
  • 收尾提交信息格式改为:{起始哈希}的任务收尾
  • 分支记录不再保存 end_commit(简化数据结构)

finish 时自动清理任务文件

  • 删除 .aide/*.lock 文件
  • 删除任务细则文件(task.spec 配置路径)
  • 清空任务原文件(task.source 配置路径,保留文件本身)
  • 备份并删除 flow-status.json.aide/logs/{task_id}-status.json
  • 备份并删除 decisions/*.json.aide/logs/{task_id}-decisions/

修改的文件

  • aide-program/aide/flow/branch.py - 重构 _merge_normal() 方法,新增 _cleanup_task_files() 清理函数
  • aide-program/aide/flow/tracker.py - 传递 ConfigManagerBranchManager

2025-12-17

修复

aide flow 分支切换问题修复

  • 修复 finish 阶段分支切换时 lock 文件冲突的问题
  • 修复 finish 阶段状态文件未提交导致切换失败的问题
  • BranchManager 添加 _cleanup_lock_file 方法
  • 调整 FlowTracker 中分支合并的执行顺序(先提交再合并)
  • 修复 _merge_normal 方法使用错误的 reset_soft 逻辑,改用 merge_squash
  • 在分支合并前额外提交状态文件(解决 git_commit hash 更新后未提交的问题)
  • 修复 finish 后工作目录不干净的问题:在 record_branch_finish 后添加收尾提交
  • 修复 git add_all 改用 -A 参数,确保删除的文件也被正确暂存

新增功能

环境安装 Commands

  • 新增 /aide:install-win - Windows 环境安装命令
  • 新增 /aide:install-linux - Linux 环境安装命令
  • 支持两种安装模式自动安装报告→确认→执行和手动指南markdown + 脚本)
  • 自动检测并安装 uv、Pythonvia uv、Java JRE
  • 包含 aide PATH 配置指导

离线安装程序

  • 新增 aide-program/offline-installer/windows/ - Windows 离线安装程序
  • 新增 aide-program/offline-installer/linux/ - Linux 离线安装程序
  • 提供资源清单resources.json、安装脚本和使用说明
  • 支持在无网络环境下安装 aide 所需的环境依赖

aide flow 自动 Git 分支管理

  • 任务开始时自动创建 aide/NNN 分支(三位递增编号)
  • 任务结束时自动合并并压缩提交
  • 分支概况文档JSON + MD 双格式)
  • 安全合并策略(检测源分支变更,必要时创建临时分支)
  • 新增 BranchManager 类管理分支编号和概况
  • 扩展 GitIntegration 类支持分支操作

变更

command/run 流程更新

  • 智能续接判断逻辑:检查任务细则文档,判断是否符合当前任务
  • 待定项处理强制执行
  • 任务细则生成后强制确认(使用 AskUserQuestion

优化

/aide:docs 命令强化完整性覆盖

  • 新增"完整覆盖"规则:根目录下每个非忽略的子目录都必须归入某个区块
  • 新增强制完整性检查步骤:区块划分后必须验证所有顶层目录都已覆盖
  • 新增非代码区块示例:展示如何处理 docs/、discuss/、assets/ 等目录
  • 更新目录树生成规则:明确要求包含所有顶层目录(包括非代码目录)
  • 更新完成检查清单:新增目录完整性最终检查项
  • 修复了之前执行 /aide:docs 时遗漏 docs/、discuss/ 等非代码目录的问题

/aide:docs 命令增强(早期更新)

  • 新增"完全深度探索"核心原则:不考虑效率,对每个文件/目录完全覆盖
  • 新增完整目录树结构展示(类似 tree 命令输出)
  • 支持混合模式:总导览使用简化版(前两层),区块文档使用完整 tree
  • 新增空目录处理:记录并标注 [空目录]
  • 新增被忽略文件处理:标注 [ignored]
  • 新增二进制文件处理:根据上下文推断概括
  • 新增文件类型列和统计信息
  • 移除"单个区块不超过 5000 行代码"的限制

文档更新 (docs 阶段)

  • 更新 commands/docs.md 命令定义
  • 更新 aide-plugin-commands.md 区块文档
  • 更新 CHANGELOG.md 记录变更详情

2025-12-16

新增功能

新增 task-parser skill

  • 口语化任务内容解析器
  • 支持语义解析、批判性分析、建设性建议
  • 自动识别口语化特征并进行规范化转换

流程图规范强化

  • 明确区分两种流程图类型:
    • 任务执行流程图(所有任务必需)
    • 程序逻辑流图(程序类任务必需)
  • 程序逻辑流图规范:从入口函数开始,支持模块化和层次化表示

优化

aide flow git 提交顺序调整

  • 状态文件先保存再执行 git 操作
  • 确保 flow-status.json 的更新包含在 commit 中

文档

  • 更新项目导览和区块文档
  • 新增 task-parser skill 说明

2025-12-15 (v2.0.3)

文档

  • 重写 README.md提供面向用户的快速上手指南
  • 原 README.md 移至 docs/project-details.md 作为项目详细说明

2025-12-15 (v2.0.0)

新增功能

Commands 重组

  • 新增 /aide:setup - 独立的环境配置命令
  • 新增 /aide:load - 项目文档按需载入命令
  • 新增 /aide:docs - 项目文档创建和维护命令
  • 新增 /aide:run - 整合任务准备和执行的核心命令(替代原 prep + exec

aide flow 增强

  • 新增 aide flow status - 查看当前任务状态
  • 新增 aide flow list - 列出所有任务(当前 + 归档)
  • 新增 aide flow show <task_id> - 查看指定任务的详细状态历史

配置系统增强

  • 配置文件完全自文档化(所有配置项含详细注释说明)
  • 新增 [general] 节:gitignore_aide 配置是否忽略 .aide 目录
  • 新增 [docs] 节:项目文档路径配置
  • 新增 [flow] 节:diagram_path 流程图目录配置
  • 新增 [plantuml]PlantUML jar 路径配置

PlantUML 集成

  • 内置 plantuml.jar支持本地流程图校验和构建
  • flow-design 阶段自动校验 PlantUML 语法
  • 进入 impl 阶段时自动生成 PNG 图片

项目文档体系

  • 设计面向 LLM 的区块化文档结构
  • 支持总导览 + 多子区块的文档组织
  • 支持增量更新和多对话续接

任务分析增强

  • 制定任务复杂度评估指导原则
  • 支持复杂任务拆分为多个子计划
  • 子计划循环执行机制

变更

  • /aide:init 重命名为 /aide:setup
  • /aide:prep/aide:exec 合并为 /aide:run
  • 旧命令文件保留为 _deprecated_*.md 供参考

2025-12-14

  • 实现 aide flow(进度追踪 + Git 自动提交 + 流程校验 + Hooks
  • 补充 aide flow 详细设计文档与导航链路