feat(root): enhance commit generation with context-aware features

- Add shell completion support for bash/zsh/fish via `devgen --install-completion`
- Introduce `devgen commit undo` to revert the last AI-generated commit while preserving staged changes
- Implement context-aware commit generation by analyzing project manifests (`package.json`, `pyproject.toml`, etc.) and lock files for accurate dependency updates
- Add support for custom Jinja2 templates in `~/.devgen.yaml` with `custom_template` configuration
- Update documentation to reflect new features and provide template variable reference

This release significantly improves commit accuracy by leveraging project context and offers greater customization through templates and shell integration.
```
This commit is contained in:
sankalp committed 2025-12-25 00:04:44 +05:45
1 parent f2ff3327c3
commit 286c46d2b5
2 files changed
+32 -4

No files matched your search

+30 -2
View File
@@ -20,7 +20,7 @@
## ⚡ Why DevGen?
**🧠 AI Brain**
Semantic commit messages powered by Gemini, OpenAI, Claude, HuggingFace, and OpenRouter. It reads your diffs and understands your code.
Semantic, context-aware commit messages powered by Gemini, OpenAI, Claude, HuggingFace, and OpenRouter. It reads your diffs, identifies project manifests, and understands your code.
**🚀 Battle Tested**
Generates **Conventional Commits** and **Semantic Versioning** compliant changelogs that actually make sense.
@@ -47,6 +47,9 @@ uv tool install devgen-cli
# Standard pip install
pip install devgen-cli
# Enable Shell Completion (bash/zsh/fish)
devgen --install-completion
```
## 🚀 Quick Start
@@ -80,8 +83,18 @@ devgen commit run --dry-run
# Commit and push in one go
devgen commit run --push
# Made a mistake? Undo the last AI commit and keep changes staged
devgen commit undo
```
### 🧠 Context Awareness
DevGen isn't just looking at the code changes; it's looking at the big picture. It automatically detects and analyzes:
- **Manifests**: `package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml`, etc.
- **Lock Files**: `uv.lock`, `package-lock.json`, `poetry.lock`, etc.
This allows the AI to understand *exactly* which library versions were updated, leading to hyper-accurate dependency commit messages.
### 📝 Changelogs & Release Notes
Turn your git history into beautiful, readable documentation.
@@ -114,7 +127,22 @@ Your settings live in `~/.devgen.yaml`. You can tweak your AI provider, model, a
| :--------- | :----------------------------------------------------------- |
| `provider` | `gemini`, `openai`, `anthropic`, `huggingface`, `openrouter` |
| `model` | Specific model name (e.g., `gemini-2.5-flash`, `gpt-4o`) |
| `emoji` | Enable/disable gitmojis in commits (`true`/`false`) |
| `emoji` | Enable/disable gitmojis in commits (`true`/`false`) |
| `custom_template` | Custom Jinja2 template for commit messages. |
### 🎨 Custom Templates
You can define your own commit message structure in `~/.devgen.yaml`. Use `devgen config info` to see available variables like `{{ group_name }}`, `{{ diff_text }}`, and `{{ context }}`.
Example:
```yaml
custom_template: |
{{ group_name }}: {{ diff_text }}
---
Manifests: {{ context }}
```
> [!TIP]
> Use `devgen config info` to see a full list of available variables and a template tip!
## 🤝 Contributing
+2 -2
View File
@@ -9,8 +9,8 @@ This document outlines future improvements, features, and technical debt for `de
- [ ] **Improved Gitignore Detection**: Auto-detect project type (Python, Node, Go) and suggest relevant `.gitignore` templates during `devgen gitignore run`.
## 🤖 AI & Intelligence
- [ ] **Custom Prompts**: Allow users to define their own Jinja2 templates for commits in the config file.
- [ ] **Context-Aware Commits**: Send the manifest file (`package.json`, `pyproject.toml`) to the AI to provide better context for dependency changes.
- [x] **Custom Prompts**: Allow users to define their own Jinja2 templates for commits in the config file(~/.devgen.yaml).
- [x] **Context-Aware Commits**: Send the manifest file (`package.json`, `pyproject.toml`) to the AI to provide better context for dependency changes.
- [ ] **Token Usage Dashboard**: Add a `devgen config tokens` command to estimate or track AI token consumption.
- [ ] **More Providers**: Add support for **Mistral**, **Cohere**, and **Groq** for faster/cheaper generations.