Release v0.12.0
Workspace Support - Monorepo Detection and Commit Scope Inference
Automatically detects 6 monorepo types (Cargo, pnpm, npm, Lerna, Nx, Turbo), maps changed files to packages, and injects scope suggestions into LLM prompts for more accurate commit messages. Zero-config by default with full manual override support.
Added
Monorepo Workspace Detection
- New
src/workspace/module detecting Cargo workspace, pnpm-workspace.yaml, npm/yarn workspaces, lerna.json, nx.json, and turbo.json - Parses workspace member glob patterns (e.g.,
packages/*,crates/**) into matching prefixes - Detection priority: Cargo > Pnpm > Npm > Lerna > Nx > Turbo
- All detection errors are non-fatal: logs warning and returns None
Commit Scope Inference
- Maps changed files to workspace packages
- Scope rules: 1 package → short name, 2-3 packages → comma-separated, 4+ → None (let LLM decide)
- Injects
## Workspace:section into LLM user prompt with monorepo type, affected packages, and suggested scope -vmode shows detection results; default silent
Workspace Configuration
- New
[workspace]config section withenabled,members, andscope_mappingsfields members: manually specify workspace patterns, skipping auto-detectionscope_mappings: remap auto-inferred package names to custom scope strings- Enabled by default; set
enabled = falseto disable
Tests
- 14 end-to-end tests in
workspace_e2e_test.rscovering all 6 workspace types - Unit tests for scope inference, prompt injection, and glob-to-prefix conversion
Changed
Release Workflow Improved
- Release now creates a draft first, publishes only after all build/publish jobs succeed
- Asset download uses
gh release downloadinstead ofcurlfor reliability
Dependencies
- Added
tomlandserde_ymlfor workspace config file parsing
Upgrade
bash
# Homebrew
brew upgrade gcop-rs
# Cargo
cargo install gcop-rs
# pip
pip install --upgrade gcop-rs