Repository navigation
Releases: aaronmedina-dev/WhatThePatch
Release list
v1.3.3 - Complete Python 3.9 Compatibility Fix
Bug Fix
Complete fix for Python 3.9 compatibility - added from __future__ import annotations to all engine files:
engines/__init__.pyengines/base.pyengines/claude_api.pyengines/claude_cli.pyengines/openai_api.pyengines/openai_codex_cli.pyengines/gemini_api.pyengines/gemini_cli.pyengines/ollama_api.py
Note
v1.3.2 only fixed url_context.py. This release fixes the remaining files that use the | union syntax for type hints.
Upgrade
wtp --updateOr reinstall:
curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bashv1.3.2 - Python 3.9 Compatibility Fix
Bug Fix
Fixed Python 3.9 compatibility issue that caused installation to fail with:
TypeError: unsupported operand type(s) for |: 'types.GenericAlias' and 'NoneType'
Cause
Missing from __future__ import annotations in url_context.py. The | union syntax for type hints requires Python 3.10+, but this import enables it for Python 3.9.
Affected Users
Users running Python 3.9 who installed v1.3.0 or v1.3.1.
Upgrade
wtp --updateOr reinstall:
curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bashv1.3.1 - Patch Release
What's Fixed
Patch release to restore missing files from v1.3.0 merge conflict.
Restored Files
- Documentation:
docs/folder with configuration.md, engines.md, external-context.md, prompts.md, troubleshooting.md - Ollama Support:
engines/ollama_api.pyfor local LLM support - Config:
config.example.yamlwith Ollama configuration - Setup:
setup.pywith Ollama setup functions - Assets: Missing screenshots (wtp_review.png, wtp_report_sample.png, wtp_test-config.png)
- README: Fixed incomplete sections
Included from v1.3.0
- Modular architecture (6 new modules)
- One-line curl installation (
install.sh/uninstall.sh) --edit-configcommand- Ollama engine for offline/local LLM reviews
- Bug fix for large PRs with >300 files
Install / Upgrade
# Fresh install
curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bash
# Upgrade existing
wtp --updatev1.3.0
What's New
Ollama Support (Local LLMs)
Run PR reviews completely offline with local models via Ollama. No API keys required - your code never leaves your machine.
wtp --switch-engine # Select "ollama"
wtp --review <PR_URL>Modular Architecture
Split the monolithic whatthepatch.py (2928 lines) into focused, maintainable modules:
| Module | Purpose |
|---|---|
whatthepatch.py |
Main entry point |
url_context.py |
URL/file context handling |
pr_providers.py |
GitHub/Bitbucket PR fetching |
commands.py |
CLI command implementations |
output.py |
Output formatting (HTML/MD/TXT) |
update.py |
Self-update system |
One-Line Installation
Install:
curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bashUninstall:
curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/uninstall.sh | bashNew Features
- Ollama engine - Run reviews with local LLMs (codellama, llama3, etc.)
--edit-configcommand to open config.yaml in your editormanifest.jsonfor self-update file management- Manifest-based setup.py for cleaner installations
Bug Fixes
- Fixed handling of large PRs with >300 files (GitHub API pagination)
Improvements
- Removed unused
pexpectdependency - Cleaned up unused imports
- Better error handling in install scripts
Upgrading
wtp --updateOr reinstall:
curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bashv1.2.1
Release v1.2.1
Note: This release jumps from v1.1.1 to v1.2.1 because v1.2.0 was incorrectly set in feature branches instead of the release branch. To maintain proper release workflow integrity, we are releasing as v1.2.1.
New Features
URL Support for External Context
The --context flag now supports URLs in addition to local file paths:
- Remote file fetching: Fetch raw text files from any URL
- GitHub integration: Auto-converts GitHub blob URLs to raw URLs
- Bitbucket integration: Full support for Bitbucket file URLs
- Private repository access: Uses configured GitHub token and Bitbucket credentials for authenticated access
- HTML to Markdown conversion: Automatically converts HTML documentation pages to Markdown using
html2text - URL caching: Fetched URLs are cached locally at
~/.whatthepatch/url_cache/with 1-hour TTL
Usage examples:
# Raw URL
wtp --review <PR_URL> -c https://example.com/docs/api.md
# GitHub file (auto-converts blob to raw)
wtp --review <PR_URL> -c https://github.com/org/repo/blob/main/types.ts
# Bitbucket file
wtp --review <PR_URL> -c https://bitbucket.org/workspace/repo/src/main/README.md
# Developer documentation (HTML auto-converted to Markdown)
wtp --review <PR_URL> -c https://docs.python.org/3/library/asyncio.htmlAutomatic Dependency Installation
- After
--update: New dependencies are automatically installed after updating the codebase - Startup detection: Missing dependencies are detected at startup with helpful error messages and installation instructions
- Updated file list: The
--updatecommand now properly copies all engine files
New Dependency
html2text>=2024.2.26- HTML to Markdown conversion
Full Changelog
v1.1.1 - CLI Improvements & Bugfixes
Bug Fixes
- Fix severity badge conversion for emoji shortcodes (
:red_circle:,:orange_circle:) in HTML output
Improvements
- Group
--helpoptions by function (Review, Configuration, Prompt, Utility) - Remove redundant "Other commands" section from help epilog
- Add custom argument parser with styled error messages
- Highlight problematic arguments in yellow on errors
- Consistent error formatting across the app with
print_cli_error()
Upgrade Notes
To upgrade:
wtp --updatev1.1.0 - Gemini Support & Custom Spinner
What's New
Google Gemini Engine Support
- Added
gemini-apiengine for Google Gemini API - Added
gemini-cliengine for Google Gemini CLI - Supports model switching with
--switch-model
Custom Branded Spinner
- New animated spinner with fire gradient (yellow -> orange -> red)
- Uses circle/dot characters: ● ◉ ○ ◌ ⁘ ⁙ ※ ⁜
- Colors match the WhatThePatch banner
Model Switching for All Engines
--switch-modelnow works consistently across all engines- Claude CLI now supports interactive model switching (opus, sonnet, haiku)
- All CLI engines support model configuration via config.yaml
Pytest Test Suite
- Added comprehensive test suite with pytest
- Tests for model management, engine detection, and CLI parsing
- HTML test reports and coverage reporting
- Separated dev dependencies into
requirements-dev.txt
Improvements
- Graceful error handling for invalid model names with helpful suggestions
- Better engine configuration status display showing model for each engine
Bug Fixes
Python 3.9 Compatibility
- Fixed type hints to use
typingmodule for Python 3.9 compatibility - Updated documentation to reflect Python 3.9+ requirement
Setup Installation Fix
- Added
cli_utils.pytoINSTALL_FILESin setup.py - Fixed installation failing due to missing CLI utilities file
Upgrade Notes
To upgrade:
wtp --updateOr if using git clone:
git pull origin mainv1.0.1 - Bug Fixes & UI Improvements
What's Changed
Bug Fixes
- Fix stale update notification after running
--update- cache is now cleared after updates so version check fetches fresh data
Improvements
- Modernize
--updatecommand interface with Rich styling- Styled header and mode display
- Progress spinner during git pull / file downloads
- Warning panel for uncommitted changes
- Success/error panels for results
Upgrade
wtp --update
# or
git pull # if using git cloneFull Changelog: v1.0.0...v1.0.1
v1.0.0 - Initial Release
WhatThePatch v1.0.0
The first official release of WhatThePatch - an AI-powered PR review tool.
Features
- AI-Powered Reviews - Generate comprehensive PR reviews using AI
- Multi-Platform Support - Works with GitHub and Bitbucket pull requests
- Multiple AI Engines - Choose from Claude API, Claude CLI, OpenAI API, or OpenAI Codex CLI
- Rich CLI Interface - Modern terminal UI with colors, panels, and progress spinners
- External Context - Include private repos or shared libraries as context for better reviews
- Multiple Output Formats - Export reviews as HTML, Markdown, or plain text
- Update Notifications - Automatic checks for new versions
- Customizable Prompts - Tailor review prompts to your team's needs
Installation
# Clone the repository
git clone https://github.com/aaronmedina-dev/WhatThePatch.git
cd WhatThePatch
# Install dependencies
pip install -r requirements.txt
# Run setup
python setup.pyQuick Start
# Review a GitHub PR
python whatthepatch.py --review https://github.com/owner/repo/pull/123
# Review a Bitbucket PR
python whatthepatch.py --review https://bitbucket.org/workspace/repo/pull-requests/456
# Check status
python whatthepatch.py --statusDocumentation
See README.md for full documentation.