Update the regex in devgen/utils.py to recognize `perf` and `revert` as valid Conventional Commit types, ensuring alignment with the specification and preventing false negatives in automated analysis.
- Replace jinja2 with custom render_template() helper
- Support {{ var }} substitution and {% if %}...{% endif %} conditionals
- Remove jinja2 from pyproject.toml and requirements.txt
- Simplifies dependency tree and reduces install size
- Prevent path traversal in gitignore template names (Critical)
- Fix TOCTOU races in file operations with try/except pattern (High)
- Add timeout to HuggingFace API requests (Medium)
- Add missing %x00 separator in changelog fallback format (Medium)
- Filter unsanitized kwargs before passing to OpenAI SDK (High)
- Use context managers for proper client cleanup in providers (High)
- Exit with non-zero code on commit engine failure (Low)
- Fix KeyError 'root' in FileGrouper when merging groups with no root-level files
- Fix changelog commit parsing breaking on multiline bodies (use %x00 separator)
- Add empty choices/content checks in OpenAI, Anthropic, OpenRouter providers
- Fix config edit crash when config is empty
- Fix validate command using wrong color for 'no staged files'
- Add type check for corrupted YAML config (non-dict returns empty dict)
Updated project overview, removed emojis, and introduced new CLI subcommands for managing .gitignore and license templates. Added architecture and custom template documentation.
New Features
- Added `devgen gitignore list` and `devgen gitignore add <name> …` commands.
- Added `devgen license list` and `devgen license add <spdx>` commands.
- Introduced support for custom commit templates via `.tpl` files.
Enhancements
- Rewrote README with clearer description and updated badges.
- Removed emojis and streamlined formatting throughout documentation.
- Added sections for custom templates, architecture overview, and contribution guide.
- Clarified dependency installation and CI workflow references.
Bug Fixes
- Fixed formatting issues in badge links and stray hyphens.
- Resolved truncated documentation sections and improved readability.
The project uses ruff for lint+format, and pyright was redundant and
slow. The previous pyright run surfaced ~30 false positives from running
outside the venv plus 5 real-but-minor typing issues that don't justify
the extra CI minutes on a 0.2.x CLI.
CI now runs only ruff check, ruff format --check, and the import/CLI
smoke matrix on 3.10/3.11/3.12/3.13.
The previous config required branch protection with required status checks,
but main has no protection rules configured, so auto-merge never fired and
PRs had to be merged manually.
Switch to direct squash merge in the action itself, which works regardless
of branch protection settings.
Abstract out generate validation and error handling into BaseProvider, eliminating duplicated logic across Anthropic, OpenRouter, and OpenAI providers.
Enhancements:
- Replaced verbose scanning of many manifest files with targeted parsing of key project manifests (pyproject.toml, package.json, requirements.txt).
- Generated a compact one‑line‑per‑file summary, reducing token usage.
- Improved clarity and readability of the AI‑provided context.
Clarify output format and remove redundant guidance.
New Features:
- Added explicit format and type list
Enhancements:
- Simplified instructions, removed unnecessary guidance
Bug Fixes:
- None
Add limits to prevent token‑limit errors during commit generation.
- New `--max-groups` option to cap the number of commit groups.
- New `--max-diff-size` option to set maximum diff size per group (default 8000 chars).
Update logging to reflect the new options and pass them to the engine.
Add token limit error detection and formatting across all provider modules to surface clear diagnostics when context windows are exceeded, improving error messages and preventing silent failures.
New Features
- Introduce `is_token_limit_error` checks in Anthropic, Gemini, Hugging Face, Ollama, OpenAI, and OpenRouter providers.
- Use `format_token_limit_error` to generate user‑friendly error messages for token limit overs.
Enhancements
- Centralize token limit error handling for consistent diagnostics across providers.
- Explicitly re‑raise `RuntimeError` in Hugging Face to preserve original behavior.
Bug Fixes
- None
- Add "ollama" to AI provider choices in config prompts
- Prompt user for Ollama server URL when selecting the Ollama provider
- Store the configured Ollama host in the config under the "ollama_host" key
- Update config saving logic in both edit_config and setup_config functions
- New Features
- Added Ollama as a supported AI model source.
- Updated README and project manifests to include Ollama.
- Enhancements
- Expanded AI model selection to handle local Ollama endpoints.
- Improved dependency resolution for Ollama packages.
- Bug Fixes
- None
Add a new provider that wraps the local Ollama server using an OpenAI‑compatible client, enabling generation via `ollama_host` configuration. This introduces the first provider for local LLM inference.
New Features
- Implement OllamaProvider with a `generate()` method, supporting custom host, model selection, and robust error handling.
Add support for the Ollama provider in the AI generation pipeline and expose a configurable host address.
New Features:
- Introduce `ollama` as a selectable provider.
- Add `ollama_host` configuration option with default `http://localhost:11434`.
Enhancements:
- Extend provider list in error message to include Ollama.
- Enhanced error messages when version cannot be determined, providing clearer guidance.
- Added explicit handling for missing pyproject.toml and TOML parsing errors.
- Improved user feedback for installation corruption issues.
Enhancements:
- Split ModuleNotFoundError and AttributeError handling to deliver clearer diagnostics
- Explicitly list available providers and flag missing provider classes as packaging bugs
Bug Fixes:
- Provide specific guidance when a provider module is not a built‑in module
- Clarify that a missing provider class indicates a packaging issue rather than user error
- New Features - Introduced distinct sections for Performance, Refactor, Tests, Style, and Chore in changelog generation.
- Added dedicated emojis for each new category.
- Updated section ordering to reflect the new categories.
- Enhancements
- Enhanced push logic to fetch upstream before push, avoiding non‑fast‑forward rejections.
- Refactored `is_ahead_of_remote` with a fetch flag to reduce network calls and TOCTOU windows.
- Improved error logging with full traceback for group processing failures.
- Bug Fixes
- Fixed emoji mappings for "Style" and "Other Changes".
- Corrected handling of empty upstream ref to prevent errors.
- Ensured proper exception handling when remote branch is missing.
Added a concise AI‑focused description and a centered badge section to the README, improving the project overview.
New Features- Introduced an AI‑centric tagline that highlights automation of commits, changelogs, and project management tasks.
Enhancements
- Centered and styled the title block for consistent visual presentation.
- Integrated project badges for PyPI version, Python compatibility, license, build status, and pre‑commit.
Bug Fixes
- None.
Add expanded project overview and formatting updates.
- New Features: Expanded overview and richer description of AI-powered commits and customizable templates.
- Enhancements: Added extra badge images and improved formatting across sections.
- Bug Fixes: None.
Add dependabot configuration to automate weekly updates of GitHub Actions and pip packages.
New Features
- Add Dependabot configuration for GitHub Actions and pip ecosystems with weekly schedule.
Enhancements
-
Bug Fixes
-
Enhancements:
- Extend error message parsing to capture additional throttling indicators such as "RESOURCE_EXHAUSTED", "QUOTA_EXCEEDED", and "THROTTLED".
- Refactor the conditional logic for better readability and maintainability.
- Keep existing retry behavior while increasing resilience to API rate‑limit errors.
The update changes the default model, refactors imports, and implements robust retry logic with exponential back‑off and clearer error messages. This improves resilience and clarifies usage.
New Features
- Exponential back‑off retry on 429/quota exhausted responses.
- Configurable max_retries and retry_delay parameters.
Enhancements
- Default model set to gemini-2.5-flash.
- Improved error output with actionable troubleshooting steps.
- New Features:
- Added `check` parameter to enable interactive commit message review
- Implemented user confirmation/editing/abort workflow using questionary
- Added smart file grouping with configurable max_groups limit
- Files are now merged into parent directories when group count exceeds limit
- Enhancements:
- Improved `group_files()` method with hierarchical merging logic
- Added graceful KeyboardInterrupt handling during user review
- Enhanced logging for group merging operations
```