8.9 KiB
8.9 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
暂无。
[0.7.0] - 2026-08-21
✨ 新功能
changelog命令新增--no-generate标志:强制使用模板生成而非 AI 生成tag命令支持从多个配置文件(Cargo.toml/pyproject.toml)读取版本并交互选择
🐞 错误修复
- 修复
regex关闭默认 unicode 特性后 SEMVER 正则编译 panic:启用unicode-perl特性,恢复\d字符类可用性
🔧 其他变更
--yes参数行为调整:仅跳过交互提示,不再改变生成行为- 统一使用工具函数替代
println输出
[0.6.1] - 2026-08-18
🔧 其他变更
- 依赖瘦身:移除未使用的直接依赖
config、handlebars、shell-words、walkdir、console、lazy_static、atty,crate 总数由 341 降至 296,release 二进制体积由 7.38 MB 降至 7.00 MB(-5.2%) lazy_static!宏替换为标准库LazyLock;atty替换为标准库std::io::IsTerminaltokio特性由full精简为macros+rt-multi-threadregex关闭默认 unicode 特性(保留std+perf),行为变化:\s/\d/\w字符类仅匹配 ASCII,对提交信息、版本号、邮箱、GPG Key ID 校验无实质影响
[0.6.0] - 2026-08-17
✨ 新功能
- LLM 层整体迁移至 rig-core 0.41:六家 provider(Ollama / OpenAI / Anthropic / Kimi / DeepSeek / OpenRouter)统一由 rig 原生客户端驱动,删除约 2100 行手写 HTTP/SSE/重试代码
- 新 LLM 门面(
src/llm/rig/):provider 枚举 + 单一生成入口 + 凭据校验(rig VerifyClient)+ 错误映射层;提示词与提交解析拆分至独立模块 - Anthropic 支持自定义
base_url(此前被静默忽略,本次修复) - 新增基于 rig mock 后端的 LLM 层离线测试(请求形状、流式事件、错误映射),并附 6 家 provider 的
#[ignore]实网冒烟用例
🐞 错误修复
- 各 provider 超时统一由
llm.timeout配置控制(此前默认超时 60/120/300 秒不一致) - 消除 Ollama 客户端构造时的 panic(
expect式构造)
🔧 其他变更(行为变化)
- Ollama 请求端点由
/api/generate改为/api/chat(功能等价;自定义 Ollama 代理需兼容 chat 端点) - 非流式请求不再做应用层重试(此前按错误文案字符串匹配重试 3 次);流式请求由 rig 的 SSE 机制自动重连
- 可用性校验端点变化:DeepSeek 改为
/user/balance、OpenRouter 改为/key、Anthropic 改为/v1/models(对外表现为LLM provider 'xxx' is not available语义不变) - 依赖瘦身:移除
reqwest(0.12) 与async-trait直接依赖,不引入 rig agent/fastembed/lancedb 等组件
[0.5.0] - 2026-07-24
✨ 新功能
commit命令新增.gitignore文件过滤:自动暂存与--all模式下自动跳过被.gitignore规则匹配的文件,并清理索引中已被忽略的已跟踪文件,暂存完成后列出被移除的文件tag命令新增-A, --auto模式:优先从Cargo.toml/pyproject.toml读取项目版本,回退到基于 commit 的语义化升级分析(与--bump互斥)changelog命令在未指定--from时,自动检测现有 changelog 中最高版本对应的 tag 作为起始点- 新增
parse_changelog_versions(),按 semver 降序提取 changelog 中已有的版本 - 新增
sort_tags_by_semver(),取代纯时间排序,按语义版本正确排序标签
🐞 错误修复
- 修复
get_tags()对 annotated tag 的解析:改用find_object+peel_to_commit正确取得标签指向的 commit - 修复
changelog写入时insert_changelog_entry覆盖已有章节的问题,现保留现有内容并按版本插入新条目
📚 文档
- 同步更新 README(中/英文):补充
--think、tag --auto选项说明,移除已废弃的--prepend参数,修正set-llm的--base-url选项名
🔧 其他变更
- 新增
TagInfo::version_name()与GitRepo::find_tag_by_version()辅助方法 - 新增
tests/gitignore_tests.rs,包含 7 个测试覆盖.gitignore过滤逻辑
[0.4.0] - 2026-07-16
✨ 新功能
- 新增
quicommit credential get|store|erase子命令,实现标准 Git credential helper 协议(gitcredentials),可与原生git命令无缝集成 - 新增
host_to_service()主机名映射,将 github.com、gitlab.com、bitbucket.org 等常见托管平台映射为规范化服务名 - 新增
get_pat_for_host()公共 API,支持从已保存的凭据中提取 PAT 用于登录验证 - 凭据存储复用现有基于系统密钥环的 PAT 与用户绑定逻辑,按 profile 维度管理
🐞 错误修复
- 移除
keyring.rs中的调试eprintln!输出,避免污染 credential helper 的 stderr
📚 文档
- README(中/英文)新增 credential 命令使用说明
🔧 其他变更
- 新增
src/lib.rs库目标,支持从tests/目录导入内部模块进行测试 src/main.rs重构为使用quicommit::库导入- credential 命令及其子命令均使用
#[command(hide = true)]隐藏,不在--help中显示 - 新增
tests/credential_tests.rs,包含 52 个测试用例覆盖协议解析、帮助可见性、完整存取周期及边界场景
[0.3.1] - 2026-06-01
✨ 新功能
- 按文件重要性对暂存差异排序,优先处理核心变更
- DeepSeek 新增 reasoning 推理模式支持
- LLM 统一思考模式配置,支持显式启用/禁用思考状态
- 新增
thinking.rs思考状态管理模块
🐞 错误修复
- 修复 Kimi 返回信息的读取错误
- 修复 DeepSeek 和 Kimi 流式响应的解析问题
📚 文档
- 新增 ROADMAP.md 项目路线图文档
🔧 其他变更
- LLM 模块大规模重构,所有提供商(Anthropic、DeepSeek、Kimi、Ollama、OpenAI、OpenRouter)适配流式响应处理
- 代码格式化并优化导入顺序
- 清理大量未使用的变量、方法及结构体警告
- 清理构建输出日志文件
- 重新编号 LLM 系统提示规则
- i18n 多语言消息格式修复
- 各命令模块(commit、tag、changelog、config、profile、init)持续优化
[0.1.11] - 2026-03-23
✨ 新功能
- 新增配置导出导入功能,支持加密保护
- Profile 支持 Token 管理(PAT 等)
- 自动生成和维护 Keep a Changelog 格式的变更日志
- 交互式命令行界面,支持预览和确认
🔐 安全特性
- 敏感数据加密存储(API 密钥等)
- 使用系统密钥环安全保存凭证
🔧 其他变更
- 优化 diff 截断逻辑,使用字符边界确保多字节字符安全
- 改进配置管理器,支持修改追踪
[0.1.9] - 2026-03-06
🐞 错误修复
- 修复diff截断时的字符边界问题
[0.1.7] - 2026-02-14
🐞 错误修复
- 修复
changelog命令默认覆盖文件的问题,现改为智能追加新版本条目到头部之后
🔧 其他变更
- 清理
formatter.rs中未使用的函数(format_commit_date、format_changelog_date、format_tag_name、truncate、format_markdown_list、format_changelog_section、format_git_config_key) - 清理
validators.rs中未使用的函数(validate_ssh_key) - 移除
changelog命令的--prepend参数(默认行为已改为追加)
[0.1.4] - 2026-02-01
✨ 新功能
- 新增
test3.txt,支持中文输出测试 generator模块新增language参数,可指定提交信息语言commit与tag命令新增自动 push 功能- 提交、标签及变更日志命令现支持多语言输出
- 新增 Kimi、DeepSeek、OpenRouter 三家 LLM 提供商支持
- 首次创建仓库,完成 0.1.0 版本基础功能
🐞 错误修复
- 修复
git/commit.rs中的提交错误信息问题 - 修复 Git2 错误处理逻辑(仓库打开功能暂不可用)
- 统一代码风格(
rustfmt修正)
📚 文档
- 更新 README,补充新的安装方式与 CLI 选项说明
- 优化 README 内容,新增 LLM 提供商介绍
🔧 其他变更
- 新增个人访问令牌、使用统计与配置校验功能
- 添加
test2.txt占位文件
[0.1.0] - 2026-01-30
Added
- Initial project structure
- Core functionality for git operations
- LLM integration
- Configuration management
- CLI interface
Features
- Commit Generation: Automatically generate conventional commit messages from git diffs
- Profile Management: Switch between multiple Git identities for different contexts
- Tag Management: Create annotated tags with AI-generated release notes
- Changelog: Generate and maintain changelog in Keep a Changelog format
- Security: Encrypt SSH passphrases and API keys
- Interactive UI: Beautiful CLI with prompts and previews