Releases: bakaburg1/AiGitCraft
Release list
Add Automated Test Suite, LLM Integration Refactor, Dependency Updates, and Documentation Enhancements
Enhancements
-
Add Comprehensive Test Suite Using testthat (Commit: 111fb98)
- Implements a robust set of automated tests under /tests/testthat/ covering core functionalities:
- Git operations (branch/commit differences, uncommitted changes)
- LLM invocation logic
- LLM-powered helper workflows (commit message, PR description, code review, README)
- Utility and validation routines
- Ensures future-proofed refactoring and stability of AI-augmented git workflows.
- Implements a robust set of automated tests under /tests/testthat/ covering core functionalities:
-
Migrate LLM Layer from llmR to ellmer & introduce invoke_llm() Helper (Commit: 640832e)
- Removes direct dependency on custom llmR and instead routes all LLM calls through the new invoke_llm(), utilizing ellmer’s flexible, provider-agnostic interface.
- Greatly simplifies provider configuration (local, OpenAI, Claude, etc.), model swapping, and temperature/params management.
- Allows passing LLM provider/model either globally via options or per-call.
- Makes the entire package future-compatible with a growing range of LLM services.
-
Dependency and Version Upgrades (Commit: cd010a4)
- Bumps package version to v1.0.0
- Updates DESCRIPTION (drops llmR, git2r; adds ellmer, gert, cli, testthat), README, and documentation to reflect new LLM stack.
- Updates renv.lock and renv/activate.R for R 4.5 and all latest tidyverse/Posit dependencies (dplyr, renv 1.1.4, readr 2.1.5, etc.).
- Documents test dependencies and adopts testthat 3rd edition project structure.
-
Refactor/Cleanup Core Codebase (Commits: 7f3f8d1, 1b94cc1 et al.)
- Refactors all git operations:
- Switches diff extraction to fast, robust gert + system2 calls (no more git2r).
- Unifies repo_path handling and staging logic for diffs.
- Screened folder logic made more robust.
- Adds detailed error handling with cli alerts (instead of raw message/stop/warning).
- LLM-powered workflows (commit message, PR desc, code review, README, Twitter thread) now consistently use invoke_llm, handle context files, and improve prompt engineering.
- Refactors all git operations:
Fixes
- Robust Error and Dependency Handling (1b94cc1)
- Standardizes user-facing errors via cli for all core functions.
- Validation functions now provide clear, actionable diagnostics on missing .git repos and handle missing dependencies gracefully.
- Bug in staged/unstaged diff extraction fixed.
- Outdated LLM, API, or Dependency Options Removed
- All references to legacy llmR config replaced with ellmer (and provider-specific environment variables/global options).
Documentation
- Comprehensive Updates to README.md, DESCRIPTION, & Roxygen (a19dbaf, a4278b3)
- Usage instructions refactored for ellmer and new options.
- Example code for all main workflows, including new test coverage.
- Provider/model configuration examples for OpenAI, Claude, Azure, and local.
- Describes new recommendation to use ellmer::chat arguments directly and leverages options for LLM credentials.
- All exported functions and utilities have roxygenized man pages, e.g. for invoke_llm, and testthat setup.
Summary
This is a major upgrade that (1) introduces a complete, automated test suite that increases maintainability, (2) future-proofs the package by migrating the core LLM interaction layer from a custom package to ellmer, and (3) modernizes all dependency, error, and configuration handling.
The package is now more robust, developer-friendly, and ready for use against any modern LLM provider and API, with full confidence thanks to comprehensive automated testing.
What's Changed
- Add Automated Test Suite, LLM Integration Refactor, Dependency Updates, and Documentation Enhancements by @bakaburg1 in #6
Full Changelog: v0.3.1...v1.0.0
Improve Commit Style
Enhancements
- Improved commit message generation guidance: Refined the prompt for AI-generated commit messages to explicitly require conciseness, discourage commentary, instruct the use of imperative mood in titles, and describe changes as bullet points in the body. This helps users receive clearer, more actionable commit messages from the LLM (Commit: cf0119e).
- Enhanced change summary and commit suggestion accuracy: Updated prompts in uncommitted changes summaries to cite all impacted files and lines, and made commit message suggestions mandatory for each logical group of changes, improving traceability and review quality (Commit: 1ec3fec).
Other
- Updated dependencies and lockfile:
- Increased minimum version requirement for llmR to 1.4.0 in DESCRIPTION.
- Refreshed
renv.lockto current package versions and hashes, including llmR 1.4.1 and multiple upstream updates (improving reproducibility and compatibility). - Minor package documentation cleanup: Removed a superfluous header comment from the main package documentation file (Commit: 65dbac2).
Summary
This PR sharpens how AiGitCraft leverages LLMs to generate commit messages and summarise code changes, with a focus on clarity, precision, and actionable output. The prompts supplied to LLMs are now more explicit, helping users receive concise commit messages and well-structured change summaries. Alongside these enhancements, the package dependencies and lockfile are updated to the latest stable versions, ensuring compatibility and smoother operation.
What's Changed
- Improve Commit Style by @bakaburg1 in #5
Full Changelog: v0.3.0...v0.3.1
Integration of `llmR` Package and Code Review Functionality
Enhancements
- Use
llmRpackage to communicate with LLMs: Instead of relying on internal code to communicate with LLMs, the package now uses the infrastructure provided byllmR, also developed by me. This allows me to centralize the development of LLM interfaces in a centralized manner without repeating code across packages. (Commit: de8e30a) - Add code review functionality: Implemented
perform_code_change_reviewfunction to provide detailed code reviews using LLM. This function assesses code quality, potential bugs, code smells, security vulnerabilities, performance, and documentation. (Commit: 3a066f0) - Show which model is being used for LLM request: Added a
log_requestparameter touse_openai_llm,use_azure_llm, anduse_custom_llmfunctions to log the specific endpoint and model being used. (Commit: 28a6471) - Manage outputs longer than token limit: Improved handling of LLM responses that exceed the output token limit. Users can now decide to let the LLM complete the answer, keep the incomplete answer, or stop the process. The incomplete answer is saved to a file for reference. (Commit: cfeab44)
- Catch suggested package installation errors: Enhanced error handling for package installation during dependency checks. (Commit: f643944)
Fixes
- Missing auto print: Added missing
cat()to ensure the output is printed automatically. (Commit: d96f8e8) - Adapt to changes in LLM calling functions: Updated the code to adapt to changes in LLM calling functions, ensuring compatibility with the new
llmRpackage. (Commit: 0a71ad3) - Minor system prompt change: Made a minor change to the system prompt for better clarity. (Commit: d1600a6)
Documentation
- Add docs for validate_repo_path: Added documentation for the
validate_repo_pathfunction. (Commit: c38da4f) - Documentation update: Improved error messages and updated documentation to reflect changes in the language model provider configuration. (Commit: 65cbcde)
- Typo fix: Corrected a typo in the documentation. (Commit: 5075418)
Summary
This pull request integrates the llmR package for enhanced communication with Large Language Models (LLMs), centralizing LLM interface development and reducing code redundancy. It introduces a new code review functionality, improves error handling, and enhances the user experience by managing long LLM responses. Additionally, it includes several documentation updates and minor fixes to ensure smooth operation and better clarity.
In the realm of code, where changes flow,
llmR now guides, with a central glow.
Reviews are detailed, bugs take flight,
With logs and prompts, all set right.
Docs refined, errors caught,
AiGitCraft evolves, as it ought.
What's Changed
- Integration of
llmRPackage and Code Review Functionality by @bakaburg1 in #4
Full Changelog: v0.2.0...v0.3.0
Interface with custom language models and log generation speed
We introduce several enhancements and improvements to the AiGitCraft package, specifically targeting the large language model (LLM) operations. These changes are designed to improve the readability of LLM output, streamline the generation of pull request descriptions, and provide more customization options for accessing local or remote language models.
Enhancements
-
Improved LLM Output Readability [112e6db]: Added
cat(res)to print the result of the LLM prompt andinvisible(res)to return the result invisibly, making it easier to review and use the LLM output. -
Structured Pull Request Descriptions [6622344]: Refactored the prompt for generating pull request descriptions to include a more structured format with sections for enhancements, fixes, and documentation. Also, added a poetry conclusion to the pull request description.
-
More General Custom LLM Access [725e329]: Refactored the
use_local_llmfunction touse_custom_llm, allowing for custom (local or remote) language model endpoints compatible with the OpenAI API specification. Added an optional API key and model parameter for custom LLM services.
Fixes
- Error Handling in LLM Requests [32827ad]: Improved error handling in LLM requests by checking if the error object is a character string or has a message attribute. If not, fall back to the HTTP response content.
Documentation
- Updated Documentation and Versioning [317941d]: Updated the documentation, namespace, and version of the package to ensure clarity and accuracy.
LLM output now shines so bright,
Pull request descriptions, oh what a sight!
Custom LLM access, oh so right,
Errors handled with delight.
What's Changed
- Interface with custom language models and log generation speed by @bakaburg1 in #3
Full Changelog: v0.1.1b...v0.2.0
Initial Beta Version
Merge pull request #2 from bakaburg1/dev hotfix: ensure proper diff retrieval and error handling