Skip to content

Releases: maximgorbatyuk/repolyze

0.1.6 - 2026-03-22

22 Mar 15:32

Choose a tag to compare

Release Notes

Fixed

  • TUI shortcuts on non-Latin keyboards: Pressing Q, J, K, Y, N on a non-Latin keyboard layout (e.g. Russian ЙЦУКЕН) now correctly triggers quit, scroll, and confirm/cancel shortcuts. A QWERTY normalization layer translates physical key characters before matching, while text-input screens (contributor filter, branch name input) remain unaffected.

Changed

  • Git Tools branch list hint: Added an instructional hint above the branch list on the confirmation screen: "Review the branches below, then press y/Enter to delete or n/Esc to cancel."

Install repolyze 0.1.6

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.6/repolyze-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.6/repolyze-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install maximgorbatyuk/tap/repolyze

Download repolyze 0.1.6

File Platform Checksum
repolyze-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
repolyze-x86_64-apple-darwin.tar.xz Intel macOS checksum
repolyze-x86_64-pc-windows-msvc.zip x64 Windows checksum
repolyze-x86_64-pc-windows-msvc.msi x64 Windows checksum
repolyze-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

0.1.5 - 2026-03-21

21 Mar 16:19

Choose a tag to compare

Release Notes

Added

  • Windows support: Build target x86_64-pc-windows-msvc with MSI installer and PowerShell install script. Release workflow now produces Windows .zip, .msi, and .ps1 artifacts alongside macOS and Linux builds.
  • Windows CI job: Build and test on windows-latest runner on every push/PR.
  • Website SEO: Added robots.txt, sitemap.xml, llms.txt, and CNAME for custom domain.

Fixed

  • TUI duplicate key events on Windows: Added KeyEventKind::Press filter to prevent crossterm from firing handlers twice (Press + Release) on Windows.
  • Database path resolution on Windows: Replaced HOME env var (Unix-only) with the home crate for cross-platform home directory lookup.

Install repolyze 0.1.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.5/repolyze-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.5/repolyze-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install maximgorbatyuk/tap/repolyze

Download repolyze 0.1.5

File Platform Checksum
repolyze-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
repolyze-x86_64-apple-darwin.tar.xz Intel macOS checksum
repolyze-x86_64-pc-windows-msvc.zip x64 Windows checksum
repolyze-x86_64-pc-windows-msvc.msi x64 Windows checksum
repolyze-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

0.1.4 - 2026-03-18

18 Mar 17:34

Choose a tag to compare

Release Notes

Added

  • Git Tools menu: New top-level TUI screen with two branch-cleanup tools — "Remove merged branches" (deletes local+remote branches already merged into a chosen base branch) and "Remove stale branches" (deletes branches with no activity for N days). Includes repo picker for multi-repo workspaces, branch listing with local/remote indicators, confirmation before deletion, and progress screen with per-branch success/failure status. Protected branches (main, master, dev, develop, production, etc.) are never deleted.
  • User effort deep-dive: New analyze user-effort --email <email> CLI subcommand and "User effort" TUI view. Shows per-contributor metrics: first/last commit dates, most/least active weekday with commits-per-day, average commits/files/lines per day and per commit, and top 3 file extensions by touch count. TUI includes a filterable contributor picker with type-to-search.
  • File extension tracking: ContributorStats now records a file_extensions map (BTreeMap<String, u64>) counting files touched per extension. Populated during Git log parsing and merged across repositories.
  • Contributor picker screen: TUI UserSelect screen lets users search/filter contributors by email or name, then select one for the user effort view. Supports keyboard navigation and scroll clamping.

Changed

  • Renamed UsersContributionContribution: CLI view enum, model type, analytics builder, table renderer, and all constants renamed from UsersContribution/users_contribution to Contribution/contribution for brevity. CLI subcommand is now analyze contribution.
  • Schema version bumped to 3: Invalidates cached snapshots from v0.1.3 to pick up the new file_extensions field.
  • Analysis elapsed time stored: AppState now tracks analysis_elapsed for use in TUI report headers.
  • Website redesign: docs/index.html refactored with external style.css, new OG image (og.svg), and updated layout.

Infrastructure

  • repolyze-git::branches module: list_merged_branches, list_stale_branches, delete_branches functions with protected-branch guard and origin-only remote support
  • BranchInfo and DeleteResult types for branch listing and deletion reporting
  • GitToolsState and GitToolsMode in TUI app state with menu/input/progress screen management
  • UserEffortData model type with Display impl
  • get_contributor_emails() builder in analytics for populating the contributor picker
  • render_user_effort_table() in report crate using key-value plain table format
  • MergedContributor extended with name, file_extensions, first_commit, last_commit fields for cross-repo merging

Install repolyze 0.1.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.4/repolyze-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install maximgorbatyuk/tap/repolyze

Download repolyze 0.1.4

File Platform Checksum
repolyze-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
repolyze-x86_64-apple-darwin.tar.xz Intel macOS checksum
repolyze-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

0.1.3 - 2026-03-17

17 Mar 17:39

Choose a tag to compare

Release Notes

Added

  • Activity heatmap: GitHub-style contribution grid showing daily commit activity over the past 52 weeks. Available as a standalone TUI view, included in the Full report, and rendered in Markdown output using Unicode block characters (·░▒▓█). Color-coded legend shows concrete commit-count ranges computed from the data.
  • Repository comparison report: New "Compare repositories" view (5th TUI menu item, shown only for multi-repo workspaces). Renders three tables: top 3 most active repos by commits/day, top 3 least active, and per-weekday top 3 rankings. Included in Full report as section #4 when analyzing multiple repos.
  • commits_by_date tracking: New BTreeMap<String, u32> field on ContributorActivityStats counting commits per calendar date. Drives the heatmap grid and is serialized into the SQLite cache payload.
  • date_util module (repolyze-core): Date arithmetic without chrono — parse_ymd, day_of_week (Sakamoto), add_days (Julian Day Number), format_ymd, month_abbrev, today_ymd, to_jdn.
  • Dynamic loading spinner: TUI analysis runs on a background thread with animated braille spinner (⠁⠉⠙⠸⠰⠴⠦⠇). Event loop uses non-blocking poll(100ms) instead of blocking read_event(), keeping the UI responsive during analysis.
  • Scrollable report view: Analyze screen supports j/k/arrow key scrolling. Paragraph renders without wrapping for exact line-count height, fixing clipped content on long reports.
  • Workspace probe on Analyze menu: Shows current folder path and mode (single repository / multi-repository with repo count) before the view selection menu.
  • Report headers with folder and mode: Analysis header now includes Folder: and Mode: lines between Projects: and Elapsed:.
  • Section headers and descriptions: Each report section (Users contribution, Activity, Heatmap, Compare) includes a title and one-line description. Full report uses numbered headers (#1, #2, #3, #4).
  • Heatmap period display: Shows YYYY-MM-DD .. YYYY-MM-DD range above the heatmap grid in both TUI and Markdown.

Changed

  • Activity table column abbreviations: Headers shortened from Avg commits/day (best day) to C/D (best), etc. Legend block explains each abbreviation. Reduces table width from ~120 to ~65 chars.
  • "Most active week day" removed from Users contribution table: Column dropped from model, renderer, store record, and all tests. The data remains available in the Activity table.
  • Menu renamed: "All (full report)" renamed to "Full report".
  • Schema version bumped to 2: Invalidates cached snapshots from v0.1.2, forcing re-analysis to populate commits_by_date.
  • Compare repositories table format: Uses project-standard render_plain_table with dash separators and right-aligned numbers instead of ad-hoc indented lists.

Fixed

  • TUI wrapping caused clipped heatmap rows: Removed Paragraph::wrap() from Analyze screen. Fixed-width content (tables, heatmap) now clips at terminal edge instead of wrapping into garbled multi-line rows.
  • Scroll clamping was byte-based: Previous height estimation counted UTF-8 bytes instead of display columns, causing scroll to stop before the bottom of the report.
  • Store open failure path: compute_analysis returns a proper error message instead of encoding error state as a failure_count hack.

Infrastructure

  • HeatmapData type with legend_labels() method for computing commit-count ranges from max_count
  • RepoComparisonRow type and build_repo_comparison() builder in repolyze-core::analytics
  • render_repo_comparison_table() and render_heatmap_section() in repolyze-report
  • WorkspaceInfo struct and ProbeWorkspace action in TUI app state
  • AnalysisCompletion struct for background thread communication via mpsc::channel
  • Constants HEATMAP_MAX_WEEKS, DAYS_IN_WEEK replace magic numbers in grid dimensions
  • to_jdn deduplicated from analytics into date_util as single public function

Install repolyze 0.1.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.3/repolyze-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install maximgorbatyuk/tap/repolyze

Download repolyze 0.1.3

File Platform Checksum
repolyze-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
repolyze-x86_64-apple-darwin.tar.xz Intel macOS checksum
repolyze-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

0.1.2 - 2026-03-15

15 Mar 14:22

Choose a tag to compare

Release Notes

Added

  • SQLite analytics cache (repolyze-store crate) — repeat analysis on unchanged repos is instant
  • Contributor analytics views: analyze users-contribution and analyze activity with --format table
  • analyze all (default) shows both contribution and activity tables in TUI
  • Per-contributor activity facts: weekday/hour commit counts, active date buckets
  • Cross-repository contributor merging by lowercased email with date deduplication
  • Plain-text table output with right-aligned numbers, dash separators, and totals row
  • Analysis header showing period, project count, and elapsed time
  • Recursive directory discovery — pass a parent folder and nested repos are found automatically
  • TUI Analyze submenu: All / Users contribution / Most active days and hours
  • TUI Metadata screen showing database path, file size, and table row counts
  • Ctrl+C graceful quit from any TUI screen
  • Worktree dirty detection — dirty repos bypass cache for fresh analysis
  • Scan run history tracking (hit/miss/bypass/success/failure)
  • Dev/release database path separation (target/debug/repolyze-dev.db vs ~/.repolyze/repolyze.db)
  • scripts/release.py for automated version bump, merge, and tag workflow
  • Project website with feature cards, usage examples, and live output demo

Changed

  • TUI Analyze screen shows results directly instead of path entry form
  • Errors menu item replaced with Metadata screen
  • Help screen updated to reflect current screens and keybindings
  • Compare screen key hints show Ctrl+C instead of misleading Q for quit
  • Static screens (Help, Metadata) no longer respond to arrow keys

Fixed

  • Saturating arithmetic for net_lines, lines_modified, and weekday/hour commit merging
  • most_active_index returns N/A for contributors with zero activity instead of "Monday"
  • load_snapshot distinguishes QueryReturnedNoRows from real database errors
  • Transaction rollback on COMMIT failure in upsert_commit and save_snapshot
  • Store errors logged instead of silently discarded
  • Stale analysis state cleared when navigating home
  • Status message reset between analysis runs
  • Empty snapshot_ids slice guarded against invalid SQL
  • View/format validation runs before expensive analysis in CLI
  • HeadMetadata.branch_name uses Option<String> instead of empty-string sentinel

Infrastructure

  • WAL mode enabled for concurrent read-write safety
  • Migrations restructured as ordered list for future V2 support
  • ON DELETE CASCADE on all foreign keys
  • open_default_store eliminates duplicated store-opening code across CLI and TUI
  • StoreError::Io variant added for path-related failures

Install repolyze 0.1.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.2/repolyze-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install maximgorbatyuk/tap/repolyze

Download repolyze 0.1.2

File Platform Checksum
repolyze-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
repolyze-x86_64-apple-darwin.tar.xz Intel macOS checksum
repolyze-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

v0.1.1

14 Mar 18:02

Choose a tag to compare

Install repolyze 0.1.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.1/repolyze-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install maximgorbatyuk/tap/repolyze

Download repolyze 0.1.1

File Platform Checksum
repolyze-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
repolyze-x86_64-apple-darwin.tar.xz Intel macOS checksum
repolyze-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

v0.1.0

14 Mar 17:45
8b6af92

Choose a tag to compare

Install repolyze-cli 0.1.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/maximgorbatyuk/repolyze/releases/download/v0.1.0/repolyze-cli-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install maximgorbatyuk/tap/repolyze-cli

Download repolyze-cli 0.1.0

File Platform Checksum
repolyze-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
repolyze-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
repolyze-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum