145 lines
6.3 KiB
Markdown
145 lines
6.3 KiB
Markdown
# 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.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 |