# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [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::IsTerminal` - `tokio` 特性由 `full` 精简为 `macros` + `rt-multi-thread` - `regex` 关闭默认 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](https://git-scm.com/docs/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