All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.21.0 - 2026-04-27
- Native
hotspot batchcommand for multi-repository discovery and assessment. - Implement "Traffic Light" progress bar with TTY-aware auto-visibility.
- Add intelligent failure summarization and deduplication in batch mode.
- Decouple human-facing metadata (stderr) from analysis payload (stdout).
- MCP tool
run_batch_analysisfor fleet-wide repository audits. - Global
--quietflag (and-qalias) for silent, automated operations.
- Made heatmap label truncation more conservative for readability.
- Enhanced help text across all commands.
- Fixed XML declaration ordering in heatmap SVG.
- Removed metadata comments from SVG output for cleaner files.
- Corrected quiet mode logic to respect explicit log-level overrides.
1.20.0 - 2026-04-25
- High-fidelity interactive SVG heatmap visualization for hotspots.
- Squarified treemap algorithm with directory-based spatial clustering.
- Dynamic font scaling and smart label hiding for dense visualizations.
- Integrated interactive SVG hotspots directly into README documentation.
- Native MCP tool
get_heatmapfor agent-driven visual repository audits. - Support for folder-level heatmap visualizations.
- Standardized Intelligence Envelopes: added metadata blocks to all tool outputs.
- Comprehensive execution test suite for all MCP analytical tools.
- Refactored heatmap provider into a modular, component-based architecture.
- Optimized SVG coordinate math and visual hierarchy for clarity.
- Refactored
iocachelifecycle with explicit initialization logic. - Decoupled
iocachedependencies for cleaner dependency injection. - Implemented
SQLDialectto unify backend-specific SQL across stores. - Hardened persistence for MySQL and PostgreSQL migration reliability.
- Standardized SVG output to use a clean, "Intelligence Layer" aesthetic.
- Standardized MCP result envelopes with analytical metadata and traceability.
- Refactored
USERGUIDE.mdwith a new "Interpreting Results" section.
- Legacy VHS demo assets (
demo.gif,demo.tape). - Orphaned
ranking.pngCLI ranking screenshot in favor of live heatmaps.
- Harden MCP handlers with execution tests and Git-native path verification.
- Resolved nil pointer dereference in MCP server during shared setup.
- Fixed missing
GenerateSVGinHeatmapProviderfor MCP resources. - Fixed
TestMCPServer_ToolRegistrationby updating tool expectations. - Added panic recovery and error logging to MCP server for stability.
- Addressed cyclomatic complexity and
errchecklints in providers.
1.19.0 - 2026-04-21
- Centralized data-driven configuration system in
schema/data/. - Folder Risk Intelligence: added
GiniandUniqueContributorsmetrics. - Extended IaC Detection: support for Kustomize, Skaffold, Tilt, and CI/CD.
- Consolidated all repository presets into
presets.yaml. - Refactored
initcommand to use internal data-driven presets. - Hardened Path Filtering: ensured strict directory boundaries in monorepos.
- Preset Refinement: expanded exclusions for modern toolchain noise.
- Updated
USERGUIDE.mdandREADME.mdfor new configuration flow.
- Deleted redundant
examples/cli/directory andclipresetspackage.
- Monorepo Accuracy: fixed edge cases in partial directory matching.
1.18.1 - 2026-04-20
- IaC detection for Chef, Puppet, CloudFormation, Bicep, SAM, and Serverless.
- Zero-allocation classification engine (0 B/op) for monorepo performance.
- Memory reporting in
make benchfor continuous performance monitoring. - High-throughput benchmarks for IaC detection and path matching.
- Refactored
isIaCFileinto a declarative structure for maintainability. - Optimized
PathMatcherto eliminate redundant allocations in hot loops. - Expanded
infrapreset exclusions to filter out modern tool noise.
- Monorepo metrics: isolated Git activity to filtered subdirectory paths.
- Cache Collision: unique cache keys for subdirectory analysis.
- Accuracy: context-aware IaC detection for Ruby (
.rb) and TOML files.
1.18.0 - 2026-04-18
- Comprehensive benchmark suite for core, schema, and iocache packages.
- Added
busy_timeoutfor SQLite backend to improve concurrency.
- Reduced aggregation allocations by 99% via struct-based aggregation
- Implemented high-performance, zero-allocation Git log parser.
- Optimized Gini coefficient scoring calculations and file stat implementation
- Streamlined exclusion logic by optimizing recursive glob calls.
- Refined complexity scoring with intelligent file detection.
- Updated Go requirement to 1.26.0 and refreshed all dependencies
- Line counting logic in
FetchFileStatsto handle trailing newlines correctly - PostgreSQL compatibility issue when pruning analysis entries
- Transactional safety in global stores and refined config detection test cases
1.17.0 - 2026-04-18
- Persisted ROI/Recency metrics across SQLite, MySQL, and PostgreSQL.
- Added Analytical "Intelligence Layer" for high-fidelity reasoning.
- Full parity for file/folder comparison MCP tools.
run_checkMCP tool for automated policy gating.- Full metrics and reasoning signal parity for Parquet lake exports.
- Optimized analysis tracking with batched, transactional recording.
- Unified exclusion logic across CLI presets and MCP server invocations
- Refined
smallpreset for tighter microservice analysis defaults - Refreshed demo assets and updated performance benchmarks in documentation
- Transactional safety in integration tests with dialect assertions.
- Preset handling for MCP to ensure consistent recursive glob filtering
- Dependency hygiene with Go module updates and
go mod tidy
1.16.2 - 2026-04-17
hotspot analysis historycommand for browsing historical analysis runs- Full parity for
--explainflag inCSVandMarkdownexport formats - Multi-format support (JSON, CSV, Markdown) for analysis tracking history
- Refactored output orchestration layer for consistent cross-format reporting
- Improved CSV stability by standardizing columns regardless of filtering flags
- Sanitized history views by moving raw JSON parameters to metadata-only fields
- Reorganized documentation into
docs/for better maintainability. - Refactored macro-benchmark to use
bench-repostarget
1.16.1 - 2026-04-16
- Standardized
hotspot.small.ymlpreset for microservices and libraries - Shape-aware recency intelligence with dynamic thresholds
- Recursive wildcard support (
**/) for file and directory exclusions - Extensive unit testing and fuzzing for path ignore logic
- Bazel, Buck, and Pants build artifact exclusions for monorepo hardening
- Refined presets with modern artifact patterns (Terraform, Next.js, Vercel).
- Streamlined
smallpreset to leverage built-in system defaults
- Fixed recursive glob matching for multi-level subdirectory exclusions.
1.16.0 - 2026-04-16
hotspot initcommand for automated repository setup and presets.get_release_journeyandget_blast_radiusarchitectural tools.- Native MCP documentation resources served directly from binary.
- Guided analysis playbooks for repository audits and prioritization.
- Enhanced MCP tool intelligence with annotations and synced defaults.
- Standardized parameter descriptions and mappings across all tools.
- Disabled analysis tracking by default to reduce overhead for local use
- Removed "stale" mode from the entire codebase
- Hardened scoring engine with edge-case tests for Git boundaries
- Added strict MCP tool registration verification to ensure API schema stability
- SQLite/PostgreSQL scanning warnings for nullable integer fields
- Default database backend selection logic for consistent persistence
- Descriptive error logging and reporting for early command failures
- Synchronization of CLI help strings and documentation across all guides
1.15.0 - 2026-04-15
hotspot shapefor lightweight characterization and presets.get_repo_shapeMCP tool to expose shape analysis as JSON for AI agents- Preset system (small, large, infra) with embedded configuration templates
- Preset support for all MCP analysis tools.
- MCP presets now treat invalid names as optional convenience.
- Help text alignment for
--modeflag across CLI and documentation
1.14.0 - 2026-04-14
- ROI scoring mode to prioritize high-return refactoring.
- Time-weighted activity (decay) to prioritize recent development.
- Repository URN tracking for portable repository identity across machines
- Markdown and Describe (Executive Summary) output formats
- Structured reasoning signals for AI and human interpretability.
- Database pagination and URN filtering for historical analysis queries
- Hardened Agentic documentation and expanded example configuration suite
- Modernized output architecture with a modular, extensible provider pattern
- Standardized metadata for consistent API responses across modes.
- Performance optimizations resulting in 15-20% faster cold analysis times
- Hardened database persistence layer with pluggable SQL dialects
- Updated all direct and indirect dependencies
- Improved debuff logic for autogenerated and test code.
- Synced CLI help strings and docs for all output formats.
1.13.0 - 2026-04-11
- Support for human-readable relative time expressions (e.g., "30d", "6mo")
- Enhanced MCP tools with dynamic
repo_pathand full parameter parity - Unified analysis pipeline for robust orchestration across all scoring modes
- Finalized decoupling of configuration via interface-bound settings
- Consolidated parsing logic for relative time and historical lookbacks
- Restored analysis tracking in timeseries results to fix unit test failures
1.12.1 - 2026-02-22
- Migrate from
go-sqlite3(CGO) to pure-Gomodernc.org/sqlitedriver to support zero-dependency cross-compilation for release binaries
1.12.0 - 2026-02-22
- Model Context Protocol (MCP) server for native AI Agent integration
hotspot mcpsubcommand to expose core analysis tools via JSON-RPC.- Agentic documentation (AGENTS.md) and playbook examples for MCP setup
- Modularized core dependencies into
toolHandlerfor MCP integration. - Decoupled stdout rendering from getters for seamless JSON-RPC transport.
- Update Go setup to 1.26 in GitHub Actions CI
- Eliminate plain-text stdout pollution during backend analysis
- Fix Goreleaser linker flag injections resulting from CLI package refactor
1.11.0 - 2026-02-21
- Tests to check for race conditions
- Split monolithic
main.gointocmd/package - Improve command documentation and verbiage across commands
- Remove emojis from CLI outputs for cleaner presentation
- Enhance error messages across core and internal packages
- Update Go dependencies and bump multiple modules
- Update GitHub Actions checkout action to v6
- Fix comments and whitespace in initialization logic
1.10.4 - 2025-11-26
- Database integration tests and test setup optimization
- Schema organization: split
schema.gointo multiple focused files - Reorganize schema package and remove external DB rules
- Reduce metrics indentation
- Update Go modules and add testcontainers-go
1.10.3 - 2025-11-26
- Insights to success/failure messages for check output
- Optimize memory usage for score calculations
- Improve check failure output
- Refined schema structure: reordered fields and improved comments.
- Refactor schema terms across multiple files
- Reorganize all core tests for readability
- Migrate filter logic to check builder and split print functions
- Updated benchmarks, performance details, and agentic documentation.
- Check section references in USERGUIDE and README formatting
1.10.2 - 2025-11-23
- Tests for builder patterns and check enhancements
- Move algorithms to core/algo and refactor check logic
- Rename core/builder to core/builder_file
- Enhance success/failure output with max scores and emojis
- Update AGENTS.md with structural changes and dev flow
1.10.1 - 2025-11-22
- Fix schema terms in configuration and migration code
- Change PostgreSQL driver from pq to pgx
- Update dependencies for pgx driver
- Update README and USERGUIDE documentation
1.10.0 - 2025-11-22
- Schema versioning and migration system for analysis tracking (#24)
- Database migration framework for analysis schema updates
- Migrate command logic from main.go to iocache package for better organization
- Apply periods to the end of all command descriptions
1.9.0 - 2025-11-22
hotspot checkcommand for CI with configurable thresholds (#22)
- Optimize check runtime and bindings
- Split phony targets into multiple lines in Makefile
- Optimize integration test runtime and config overrides
- Update benchmark results in README.md
- Increase test coverage in core and iocache
1.8.0 - 2025-11-21
- Parquet exports from analysis DB (#20)
- Update README.md and USERGUIDE.md with Parquet export details
1.7.0 - 2025-11-20
- Unified metrics into
hotspot_file_scores_metricstable.
- Cleaned up
AnalysisStoreby removing deprecated methods.
- Retract v1.6.0 due to breaking API changes that would cause incompatibility
1.6.0 - 2025-11-20
- Analysis tracking with support for SQLite, MySQL, and PostgreSQL.
- Status commands for analysis and cache backends
- Comprehensive tests for analysis tracking and backend status
- Migrate user instructions to USERGUIDE.md for better UX
- Bump golang.org/x/crypto from 0.37.0 to 0.45.0
- Refactor iocache package and integrate tracking into core analysis pipeline
1.5.1 - 2025-11-16
- Coverage command to Makefile
- Comprehensive cache tests
- Folder aggregation tests
- Update make help formatting for better readability
- Add emoji guard for file output success
- Split output tests into multiple files
- Refactor outwriter for testability
1.5.0 - 2025-11-16
- MySQL and PostgreSQL support for result caching
--colorand--emojiflags for output formatting
- Make analysis footer more compact
- Simplify benchmark report generation
- Fix timing calculations in benchmark logic for accuracy
- Update README with new findings and make use cases section more focused
- Simplify metrics command output for better readability
- Restructure core and internal packages for better organization
- Significantly improve test coverage for iocache and outwriter
- Refine code style across core, internal, and main.go
- Refactor output handling in outwriter package
- Rename iocache to cache for better naming consistency
- Reduce duplication in outwriter package for better maintainability
1.4.0 - 2025-11-14
- Persistent SQLite caching for ~35x faster repeated analyses.
- Bump cache version for compatibility
1.3.3 - 2025-11-11
- Documentation for config weights and timeseries section
- More schema tests
- Accidental header cleanup in changelog
1.3.2 - 2025-11-11
- Improve test coverage across core analysis, config validation, and Git client
- Add edge case testing for config validation
- Replace brittle time equality with
WithinDurationchecks - Enhance test reliability with paths and time tolerances
- Add demo GIF and minor README improvements
1.3.1 - 2025-11-11
- Make timeseries logic more accurate with comprehensive analysis
- Improve lookback and timeseries user experience with better defaults
- Fix timeseries header semantics for clearer output
- Migrate timeseries constants and refactor analysis logic
- Add comments to time approximations and update README benchmarks
- Integration test issues
- Update benchmarks
1.3.0 - 2025-11-10
- Benchmark script and performance details for analysis
- Update README with motivation section and improved formatting
- Update and link benchmark tables with latest performance data
- Handle edge cases in name abbreviation logic
1.2.0 - 2025-11-09
- CSV and JSON output support to
metricscommand for programmatic access - Integration tests for folders and compare commands
- Optimize integration test performance
1.1.5 - 2025-11-09
- Add exact timestamps to timeseries output for better precision
- Detect terminal width for improved tabular view formatting
- Nil owner arrays in JSON output to prevent serialization errors
1.1.4 - 2025-11-09
- Use pipe delimiters for owners in CSV to prevent parsing issues.
- Separate before/after owner columns for clearer comparison data
1.1.3 - 2025-11-09
- Consolidated weight processing logic into
ProcessWeightsRawInput. - Combined weight loading and metrics execution for simpler abstraction.
1.1.2 - 2025-11-09
- Optimized file analysis using pre-aggregated commit data (O(1)).
- Optimized integration tests: single binary build reduces time by 37%.
- Remove unused
GetFileFirstCommitTimemethod and related dead code - Ignored
hotspot-integration-*/to prevent committing test dirs. - Unified integration tests using
parseHotspotDetailOutputhelper.
- Fixed age tests using relative time windows from aggregated data.
1.1.1 - 2025-11-08
- Added
context.Contextfor better cancellability across the codebase. - Make command headers more compact and consistent across all subcommands
1.1.0 - 2025-11-08
- Owner information to comparison and timeseries outputs
- Add Mode field to all result structs for uniform API
- Add rank and label fields to folder JSON output
- Remove unused config parameters from writer functions
1.0.1 - 2025-11-08
- Use * for multiply sign in output
- Gitignore: add .back and .backup to gitignore
1.0.0 - 2025-11-08
- Custom scoring weights via YAML configuration
metricssubcommand for viewing scoring formulastimeseriessubcommand for historical score trackingcomparesubcommand for delta analysis between Git refs- CPU/memory profiling capabilities
- Enable live reporting of score weights
- Shorten metrics command output
- Add references to weights in documentation
- Update README with comprehensive examples and performance data
- Custom weight config logic
- Lint issues with integration tests
- Add tests for custom weight functionality
0.9.1 - 2025-11-08
- Refactor core aggregate analysis flow
- Organize features into overarching section
- Make small tweaks to README examples
0.9.0 - 2025-11-08
- Shorten the config file section
- Update scoring section in README
- Add timeseries section to README
- Consolidate gitignore sections
- Apply lint and format to integration tests
- Update Go dependencies
- Remove fuzz testdata
- Add tests for core aggregation and analysis
- Add AGENTS.md for improved documentation
0.8.0 - 2025-11-08
- Timeseries subcommand for single path analysis
- Integration test for timeseries subcommand
- Rename comparison structs to match conventions
- Modernize syntax in integration tests
0.7.2 - 2025-11-08
- Profiling capability to runtime
- Fuzz tests to codebase
- Enhance integration test setup and teardown
0.7.1 - 2025-11-08
- Show multiple owners for each file
- Add diagnostics info for table view
0.7.0 - 2025-11-08
- Update ranking image with new UX
- Add suite of repos for testing
- Adjust integration tests to use JSON output
- Add preliminary forms of integration tests
- Edge cases in commit detection
- Git age calculations
- Help text inconsistency
0.6.5 - 2025-11-07
- Enhance compare command validation
- Split Git logic into multiple modules
- Funnel all errors into single module
- Enhance readability of help text
- Refine error-based messages across app
0.6.4 - 2025-11-07
- Apply formatting to performance table
- Revise use case sections in README
- Update ranking image for better UX
- Add dots to more comments
- Refactor all flag logic for readability
- Consolidate global flags for readability
0.6.3 - 2025-11-07
- Add command for lefthook pre-commit
- Refine pre-commit setup
- Rename pre-commit command
- Add context propagation and tweak folder table
- Fix sequence ID of comment
- Shorten analysis header for brevity
0.6.2 - 2025-11-06
- Add ldflags to build
0.6.1 - 2025-11-06
- Update comments of compare subcommands
- Remove redundant comment in logic
0.6.0 - 2025-11-06
- Viper for streamlined customization
- Sample configs and reference them in README
- Concrete example to compare section
- Remove extraneous comment from main.go
- Add minimal error handling for Viper issues
- Lower-case bus-factor term in README
- Shorten wording on hot mode in README
0.5.0 - 2025-11-06
- Adjust lefthook semantics
- Use constants for modes
- Add differentiator clause in README
- Refine some tables
- Add coloring to table deltas
- Refactor all Git client touch points
- Simplify lefthook to one command
- Add lefthook to project
0.4.4 - 2025-11-05
- Update Go dependencies
- Improve UX of compare table
0.4.3 - 2025-11-05
- File deltas to compare JSON
0.4.2 - 2025-11-05
- Refine content in risk section
- Revise example to be more realistic
- Implicit rank bug due to refactor
- Compare setup logic
- Edge case with file comparisons
- Hotspot delta section
0.3.0 - 2025-11-04
- Add qualifier about performance measurements
- Fix wording for output section
- Adjust output and make example repeatable
- Change low color from blue to cyan
- Consolidate Makefile logic for cleanup
- Tweak from cyan to blue
- Adjust colors to work for all terminals
- Ensure Makefile applies fix and format
0.2.2 - 2025-11-04
- Remove bin gitkeep assets
- Fix linting issues
- Refactor Makefile for readability
- Add version command for diagnostics
- Verify and fix aggregation for recent assets
- Replace require with assert usage in test
- Refactor tests into separate layers
0.2.1 - 2025-11-03
- Add option C to README
- Enable time-ago for --start and --end
0.2.0 - 2025-11-03
- Time-ago semantics support
- Contribution guidelines
- Issue templates for GitHub
- Change changelog format
- Simplify tips language
- Add doc references to ago semantics
0.1.0 - 2025-11-03
- Goreleaser build settings
- Tests for computing folder score
- Unit test for selectOutputFile
- Rewrite punch line to be succinct
- Use text-less image in README
- Adjust first README tip
- Fill README image space better
- Adjust README image slightly
- Add sample output to README
- Shuffle README content around image
- Add image to hotspot README
- Adjust label colors to match theme
- Add comments to all schema fields
- Enhance UX for folder JSON output
- Add owner info to folder results
Initial development covered core functionality including:
- CSV and JSON output modes
- Folder analysis support
- Benchmarking capabilities
- Version command for diagnostics
- Time-ago semantics
- Viper configuration
- Compare subcommand
- Output formats (CSV/JSON)
- Git client abstraction
- Cobra CLI framework
- Comprehensive testing
- CI/CD pipeline
- Linting and formatting
- Makefile build system
- Performance optimizations and logic simplification
- Error handling and logging enhancements
- UX and output formatting improvements
- Documentation comprehensive additions
- Code quality and maintainability refactoring
- Proper package structure architecture