Changelog
Changelog
All notable changes to Kit will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.8.0] - 2025-07-26
Major Features
- Enhanced Local Diff Reviews
- Clear documentation on output modes and piping workflows
- Default behavior now properly documented: outputs to stdout with formatting
--plain
mode for clean piping to other tools (e.g.,kit review --plain HEAD~1 | claude
)- Reviews are NOT saved by default (requires
save_reviews: true
in config)
New Features
- Comprehensive CLI Test Suite
- Added 72 new tests covering CLI argument parsing and validation
- Security-focused validation tests for local diff patterns
- Edge case handling for special characters and malicious inputs
- CI-friendly test assertions that handle different terminal environments
Bug Fixes
- CI Test Failures: Fixed 9 failing tests related to help output formatting in CI environments
- Made help text assertions more robust to handle truncated or ANSI-formatted output
- Tests now verify functionality rather than exact help text matches
Documentation
- PR Reviewer Docs: Updated local diff documentation to clarify:
- Default output behavior (stdout with formatting)
- Output modes (standard vs plain)
- File saving is opt-in, not default
- Better examples showing piping workflows
[1.7.3] - 2025-07-26
New Features
- Local Diff Review Support with MCP (#118)
- Added ability to review local diffs through the MCP server
- Enables PR-style reviews for uncommitted changes in development environments
- Integrates seamlessly with Claude Desktop and other MCP clients
Bug Fixes
- MCP Server Tests: Fixed test failures in MCP server test suite (#121)
- Local Review Tests: Resolved issues with local review functionality tests (#121)
[1.7.2] - 2025-07-25
Bug Fixes
- Symbol Extractor: Improved defensive query checking to prevent crashes with invalid tree-sitter queries (#119)
- Enhanced tree-sitter compatibility handling
- More robust error handling for malformed queries
Improvements
- Documentation: Added reviewer link in README for better visibility
- Dependencies: Updated TypeScript dependencies
[1.7.1] - 2025-07-17
New Features
- Dynamic Model Pricing via Helicone API
- Replaced hard-coded model pricing with real-time data from Helicone’s API (300+ models)
- Automatic hourly updates ensure pricing is always current
- Graceful fallback to minimal defaults if API is unavailable
- Zero configuration needed - pricing updates automatically
Bug Fixes
- CI Workflow: Fixed GitHub Actions parsing issue where setup-uv was incorrectly reading dependencies
- Test Suite: Updated model validation tests to work with dynamic pricing API
[1.7.0] - 2025-07-16
Major Features
- TypeScript / Node.js Client
- New published package
@runcased/kit
provides a type-safe wrapper around the Kit CLI for JS/TS projects. - Repository helper, semantic search, PR review and every CLI command exposed via the same API shape.
- Added build, lint, type-check and Prettier integration; full Jest test-suite + integration test.
- New published package
Tooling & CI
- Unified
scripts/format.sh
now formats both Python (Ruff) and TypeScript (Prettier, ESLint,tsc
). - GitHub Actions workflow upgraded:
- Node setup, JS deps install, shared formatter, and TS test jobs.
- Release script publishes Python package to PyPI and TS client to npm in one shot (
scripts/release.sh
).
[1.6.0] - 2025-07-02
Improvements
- Documentation Overhaul
- Added advanced dependency-analysis tutorial, PR reviewer CI guides, and detailed changelog pages.
- Improved quick-start sections and clarified token/env-var usage.
- Quality & Testing
- Large expansion of unit/integration test suite (‐80 → 120 tests).
- Better line-number validation tests for PR reviewer and diff parser.
[1.5.0] - 2025-07-01
New Features
- Semantic Search CLI
kit search-semantic
command delivers vector-based natural-language code search.- Supports on-the-fly or persisted embedding indexes, chunking by symbols or lines, configurable models.
- Python API surface
Repository.search_semantic()
added.
Enhancements
- Faster vector-index build via batched embedding calls.
- Early incremental support helpers for Chroma backend.
[1.4.0] - 2025-06-27
New Features
- Dependency Analysis CLI Command: Complete command-line interface for code dependency analysis
- New
kit dependencies
command supporting Python and Terraform projects - Dependency graph generation with multiple output formats (JSON, DOT, GraphML, adjacency)
- Circular dependency detection with detailed cycle visualization
- Module-specific analysis with direct and indirect dependency tracking
- LLM-friendly context generation for AI-powered dependency analysis
- Graphviz integration for dependency visualization (PNG, SVG, PDF output)
- New
[1.3.3] - 2025-06-26
Security / Bug Fixes
- Private-repo cloning with installation tokens:
Repository
now uses an improvedGIT_ASKPASS
helper that suppliesx-access-token
as the username and the token as the password.- Fixes 404 “repository not found” errors when using GitHub App installation tokens.
- Backwards-compatible: personal-access tokens (PATs) continue to work unchanged.
[1.3.2] - 2025-06-25
Improvements
- More actionable API errors: REST endpoints now return precise HTTP status codes and JSON bodies.
/repository
returns404 {"detail": "Repository not found: <url>"}
instead of a generic 500.- Dependency and search endpoints propagate upstream errors for easier debugging.
- Verbose logging: Repository creation and search endpoints log request URLs, headers, and truncated bodies for better traceability.
[1.3.1] - 2025-06-24
Improvements
- Better grep
- Sensible ignore directories
- More grep options
[1.3.0]
New Features
-
Grep Command: Fast literal text search across repository files
- New
kit grep
command with system grep integration - Case-sensitive and case-insensitive search options
- File inclusion/exclusion patterns with glob support
- Configurable result limits and automatic .git directory exclusion
- 30-second timeout protection for large repositories
- New
-
File Tree Subpath Support: Analyze specific directories within repositories
- New
--path
option forkit file-tree
command enables directory-specific analysis - Supports relative paths from repository root (e.g.,
--path src/components
) - Compatible with existing output formats and export functionality
- Enables focused analysis of large repository subdirectories
- New
Improvements
- Path Validation: Centralized path checking across all file operations
- Unified validation utility prevents path traversal in user-provided file paths
- Maintains compatibility with existing symlink handling on macOS
[1.2.3]
Bug Fixes
- Duplicate TypeScript / TSX Symbols: Resolved an issue where some symbols could be recorded twice in
symbols.json
depending on tree-sitter queries- The
TreeSitterSymbolExtractor
now removes duplicate symbols based on(name, type, start_line, end_line)
- Added dedicated regression test suite covering TypeScript and TSX symbol deduplication
- The
Improvements
- Optional Dependencies: Made
tiktoken
dependency optional insummaries.py
to reduce installation requirements - Dependency Management: Relaxed FastAPI version constraints for better compatibility
- Development Dependencies: Moved linters and type checking dependencies to development group
[1.2.2]
Enhanced Features
-
C++ Language Support: Added comprehensive C++ symbol extraction with tree-sitter
- Support for classes, functions, structs, enums, namespaces, and templates
- Dedicated tree-sitter query patterns for C++ language constructs
- Full integration with existing symbol extraction pipeline
-
Kotlin Language Support: Initial Kotlin language integration with tree-sitter
- Classes, functions, objects, interfaces, and enum support
- Kotlin-specific language patterns and symbol detection
- Comprehensive test coverage for Kotlin symbol extraction
[1.2.0]
Enhanced Repository Cache Management
- Automatic Cache Cleanup: Repository now accepts optional
cache_ttl_hours
argument for automatic cleanup- Environment variable support via
KIT_TMP_REPO_TTL_HOURS
- Automatically deletes cached repository clones older than TTL
- One-shot purge per Python process using
functools.lru_cache
- Fallback to previous behavior when TTL is unset
- Environment variable support via
Improvements
- Enhanced Logging: Debug logging for invalid TTL values and cleanup warnings
- Cache Management: Improved error handling for cache cleanup operations
- Documentation: Updated API documentation and README with cache management details
Tests
- Added comprehensive test coverage in
tests/test_cache_cleanup.py
- TTL parsing validation and error handling tests
- Cache cleanup logic verification
[1.1.0]
Major Features
- Incremental Analysis System: High-performance caching for symbol extraction
- 25x performance improvements for warm cache scenarios
- Multi-strategy cache invalidation (mtime, size, content hash, git state detection)
- Automatic cache invalidation on git operations (checkout, commit, merge, rebase)
- LRU eviction with configurable cache size limits
- New CLI commands:
kit cache status
,kit cache clear
,kit cache cleanup
,kit cache stats
Enhanced Features
- Dart Language Support: Initial anguage integration with tree-sitter
- Classes, functions, constructors, getters, setters, enums, extensions, mixins
- Flutter widget detection patterns for StatelessWidget and StatefulWidget
- Comprehensive symbol extraction with inheritance relationships
- Plugin system support for custom Dart patterns
Bug Fixes
-
Cache Invalidation Fix: Resolved stale data issues causing incorrect line numbers
- Repository objects now properly detect git state changes (branch switches, commits, merges)
- Automatic cache invalidation prevents serving outdated symbol data from previous git states
- Comprehensive git SHA tracking ensures data consistency across git operations
-
TSX Language Support: Fixed missing TypeScript JSX support
- Proper fallback to TypeScript queries when tsx directory doesn’t exist
- Ensures consistent symbol extraction for React TypeScript projects
[1.0.3]
New Features
- Batch File Retrieval:
Repository.get_file_content
now accepts a list of paths and returns a mapping ofpath → content
, eliminating the need for multiple calls when bulk loading files.- Backwards-compatible: single-path calls still return a plain string.
[1.0.2]
Improvements
-
Automatic GitHub Token Pickup: Repository class and MCP server now automatically detect GitHub tokens from environment variables
- Checks
KIT_GITHUB_TOKEN
first, then falls back toGITHUB_TOKEN
- Simplifies private repository access - no need to pass tokens explicitly
- Consistent behavior across Python API and MCP server interfaces
- Explicit token parameters still override environment variables
- Checks
-
macOS Symlink Compatibility: Fixed path validation issues on macOS for MCP server
- Resolves
/tmp
→/private/tmp
symlink conflicts that caused path validation errors - Maintains security while ensuring compatibility with macOS filesystem structure
- Fixes “not in subpath” errors when using Claude Desktop and other MCP clients
- Resolves
[1.0.0]
Major Release
Kit 1.0.0 represents the first stable release of the code intelligence toolkit, marking a significant milestone in providing production-ready code analysis capabilities.
Major Features
-
Production-Ready Core: Stable API for code intelligence operations
- Comprehensive symbol extraction across multiple programming languages
- Advanced code search with regex and semantic capabilities
- Repository analysis with git metadata integration
- Cross-platform compatibility (Windows, macOS, Linux)
-
Multi-Access Architecture: Four distinct ways to interact with Kit
- Python API: Direct integration for applications and scripts
- Command Line Interface: 15+ commands for shell scripting and automation
- REST API: HTTP endpoints for web applications and microservices
- MCP Server: Model Context Protocol integration for AI agents and development tools
-
AI-Powered PR Intelligence: Complete PR review and analysis system
- Smart PR reviews with configurable depth (quick, standard, thorough)
- Cost-effective PR summaries for rapid triage
- Intelligent commit message generation from staged changes
- Support for multiple LLM providers (OpenAI, Anthropic, Google, Ollama)
- Repository-aware analysis with symbol and dependency context
-
Advanced Code Understanding: Deep codebase intelligence capabilities
- Multi-language symbol extraction (Python, JavaScript, TypeScript, Go, etc.)
- Dependency analysis for Python and Terraform projects
- Semantic search with vector embeddings
- Context-aware code chunking for LLM consumption
Enhanced Features
- Repository Versioning: Analyze code at specific commits, tags, or branches
- Caching System: Intelligent repository caching for improved performance
- Security: Path traversal protection and input validation
- Cost Tracking: Real-time LLM usage monitoring and pricing transparency
- Custom Profiles: Organization-specific coding standards and review guidelines
Architecture Highlights
- Extensible Design: Plugin architecture for adding new languages and analyzers
- Memory Efficient: Streaming operations for large codebases
- Git Integration: Native git operations with branch and commit support
- Type Safety: Comprehensive type annotations and validation
Supported Languages
- Primary: Python, JavaScript, TypeScript, Go
- Additional: Java, C/C++, Rust, Ruby, PHP, and more via tree-sitter
- Configuration: JSON, YAML, TOML, Dockerfile
- Infrastructure: Terraform, Kubernetes YAML
LLM Provider Support
- Cloud Providers: OpenAI GPT models, Anthropic Claude, Google Gemini
- Alternative Providers: OpenRouter, Together AI, Groq, Fireworks
- Local Providers: Ollama with free local models (DeepSeek R1, Qwen2.5-coder, CodeLlama)
- Cost Optimization: Hybrid workflows combining free local and premium cloud analysis
Developer Experience
- Comprehensive Documentation: Full API reference and usage guides
- Example Applications: Real-world usage patterns and integrations
- Community Support: Discord server and GitHub discussions
- Testing: Extensive test suite with CI/CD integration
[0.7.0]
Major Features
-
Custom Context Profiles: Store and apply organization-specific coding standards and guidelines
- Create reusable profiles:
kit review-profile create --name company-standards
- Apply to any PR:
kit review --profile company-standards <pr-url>
- Export/import for team collaboration
- Create reusable profiles:
-
Priority Filtering: Focus reviews on what matters most
- Filter by priority levels:
kit review --priority=high,medium <pr-url>
- Reduce noise and costs by focusing on critical issues
- Combine with other modes for targeted workflows
- Filter by priority levels:
[0.6.4]
Major Features
-
OpenRouter & LiteLLM Provider Support: Complete integration with OpenAI-compatible providers
- Access to 100+ models through OpenRouter at competitive prices
- Support for Together AI, Groq, Perplexity, Replicate, and other popular providers
- Additional cost tracking with accurate model name handling
- Thanks to @AlanVerbner for this contribution
-
Google Gemini Support for PR Reviews: Complete integration of Google’s Gemini models
- Support for latest models:
gemini-2.5-flash
,gemini-2.5-pro
,gemini-1.5-flash-8b
- Ultra-budget option with Gemini 1.5 Flash 8B at ~$0.003 per large PR
- Automatic provider detection and accurate token-based cost tracking for Gemini
- Support for latest models:
Bug Fixes
- Better fork PR Support: Fixed issue preventing reviews of PRs from certain outside forks
- Now uses base repository coordinates instead of head repository for diff fetching
- Resolves 404 errors when reviewing external contributor PRs
- Thanks to @redvelvets for this contribution
Enhanced Features
-
Expanded Provider Ecosystem: Three major categories now supported
- Cloud Providers: Anthropic Claude, OpenAI GPT, Google Gemini
- Alternative Providers: OpenRouter, Together AI, Groq, Fireworks
- Local Providers: Ollama with free local models
-
Smart Model Detection: Intelligent routing based on model names
- Handles complex model naming like
openrouter/anthropic/claude-3.5-sonnet
- Automatically strips provider prefixes for accurate cost calculation
- Maintains compatibility with all existing configurations
- Handles complex model naming like
[0.6.3]
Bug Fixes
- Symbol Type Extraction Fix: Fixed bug where some symbol types were incorrectly processed
- Classes and other symbol types no longer have characters incorrectly stripped
- Added comprehensive test coverage for symbol type processing edge cases
[0.6.2]
Major Features
-
Ollama Support: Complete local LLM inference support with Ollama
- Zero-cost PR reviews with local models
- Support for popular models like DeepSeek R1, Qwen2.5-coder, CodeLlama
- Automatic provider detection from model names (e.g.,
deepseek-r1:latest
) - First-class integration with kit’s repository intelligence
-
DeepSeek R1 Reasoning Model Support
- Thinking Token Stripping: Automatically removes
<think>...</think>
tags from reasoning models - Clean, professional output without internal reasoning clutter
- Preserves the analytical capabilities while improving output quality
- Works in both summarization and PR review workflows
- Thinking Token Stripping: Automatically removes
-
Plain Output Mode: New
--plain
/-p
flag for pipe-friendly output- Removes all formatting and status messages
- Perfect for piping to Claude Code or other AI tools
- Enables powerful multi-stage AI workflows (e.g.,
kit review -p | claude
) - Quiet mode suppresses all progress/status output
Enhanced Features
-
CLI Improvements
- Added
--version
flag to display current kit version - Model override support:
--model
/-m
flag for per-review model selection - Better error messages and help text
- Added
-
Documentation
- Comprehensive Ollama integration guides
- Claude Code workflow examples
- Multi-stage AI analysis patterns
- Updated CLI reference with new flags
Developer Experience
-
Community
- Added Discord community server for support and discussions
- Improved README with better getting started instructions
-
Testing
- Comprehensive test suite for thinking token stripping
- Ollama integration tests with mock scenarios
- PR reviewer test coverage for new features
Cost Optimization
- Free Local Analysis: Use Ollama for zero-cost code analysis
- Hybrid Workflows: Combine free local analysis with premium cloud implementation
- Provider Switching: Automatic provider detection and switching
[0.6.1]
Improvements
- Enhanced line number accuracy in PR reviews
- Improved debug output for troubleshooting
- Better test coverage for core functionality
- Performance optimizations for large repositories
Bug Fixes
- Fixed edge cases in symbol extraction
- Improved error handling for malformed diffs
- Better validation for GitHub URLs
[0.6.0]
Major Features
- Advanced PR reviews
- Enhanced line number context and accuracy fore reviews
- Comprehensive cost tracking and pricing updates for reviews
- Improved repository intelligence with better symbol analysis
Enhanced Features
- Better diff parsing and analysis
- Enhanced file prioritization algorithms for reviews
- Improved cost breakdown reporting