Files
QuiCommit/CHANGELOG.md
SidneyZhang a0ea03fd90 chore(release): bump version to 0.6.0 and update changelog
- CHANGELOG 记录 LLM 层迁移至 rig-core 0.41 及四项行为变化
- README(中/英)项目结构树更新为新 llm 模块布局
- 仓库内 AI 服务集成文档同步为新实现(.qoder,不入库)
2026-08-17 16:08:46 +08:00

7.7 KiB
Raw Blame History

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.6.0] - 2026-08-17

新功能

  • LLM 层整体迁移至 rig-core 0.41:六家 providerOllama / 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 客户端构造时的 panicexpect 式构造)

🔧 其他变更(行为变化)

  • 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中/英文):补充 --thinktag --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_dateformat_changelog_dateformat_tag_nametruncateformat_markdown_listformat_changelog_sectionformat_git_config_key
  • 清理 validators.rs 中未使用的函数(validate_ssh_key
  • 移除 changelog 命令的 --prepend 参数(默认行为已改为追加)

[0.1.4] - 2026-02-01

新功能

  • 新增 test3.txt,支持中文输出测试
  • generator 模块新增 language 参数,可指定提交信息语言
  • committag 命令新增自动 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