Skip to content

Release v0.13.0

Atomic Split Commit - Intelligent Multi-File Change Grouping

New --split mode automatically groups staged changes into multiple logical atomic commits using LLM analysis. Also includes LLM Provider interface refactoring and error handling improvements.

Added

Atomic Split Commit Mode

  • New gcop-rs commit --split groups staged files into logical atomic commits via LLM
  • Interactive menu: Accept All / Edit in TOML editor / Regenerate / Regenerate with feedback / Quit
  • Partial failure recovery: completed commits are preserved, remaining files re-staged
  • Configurable via [commit] split = true in config or --split CLI flag

Split-specific Error Types

  • SplitCommitPartial: reports completed/total groups on partial failure with recovery guidance
  • SplitParseFailed: handles invalid LLM JSON responses with retry suggestions

Internationalization

  • 21 new i18n strings for split commit UI, errors, and suggestions (en + zh-CN)

Changed

LLM Provider Interface Refactored

  • New send_prompt(system, user, progress) as the core trait method
  • Provider implementations only need send_prompt; high-level APIs (generate_commit_message, etc.) have default implementations
  • Enables callers to control prompt construction, required for split commit's custom prompt format

CLI Parameter Restructuring

  • CommitArgs and CommitOptions restructured with from_cli() constructor
  • All command option structs unified in style

Dependencies

  • clap upgraded to 4.5.59
  • toml upgraded to 1.0
  • reqwest now uses system-proxy feature for automatic system proxy support
  • MSRV lowered to 1.88.0

Code Quality

  • All code comments unified to English
  • README fully rewritten for both EN and ZH

Upgrade

bash
# Homebrew
brew upgrade gcop-rs

# Cargo
cargo install gcop-rs

# pip
pip install --upgrade gcop-rs