Changelog

Track the evolution of bgit across releases

13
Releases
47
Features
9
Phases
9
Phase 9

Phase 9

v0.9.0

2026-06-17Latest

Milestone release completing desktop repository mapping, identity detection, UI polish, structured navigation, and repository-local Git identity cleanup across CLI and desktop flows.

Features
4

Desktop repository bindings

Added desktop repository binding management with repository selection, identity assignment, binding updates, and removal actions

Desktop identity detection and sync

Added desktop identity detection for repository and workspace paths, showing the effective bgit identity and allowing Git config sync from the UI

Desktop interaction polish

Improved desktop spacing, alignment, copy actions, truncation, active-state highlighting, hover states, and smoother refresh behavior without changing backend logic

Desktop structured navigation

Reorganized the desktop app into dedicated Dashboard, Identities, Repository Bindings, Backup & Restore, and Doctor pages with sticky sidebar navigation

Bug Fixes
5
  • -
    Repo-local Git identity consistency

    Bound repositories are now re-synced on identity activation and update, binding removal clears stale local Git identity, and deleting an identity removes dependent bindings/workspaces and clears affected repositories

  • -
    Scriptable confirmation flows

    CLI yes/no confirmation prompts now accept non-TTY input so automated validation and scripted flows work reliably

  • -
    Desktop binding cleanup parity

    Desktop binding removal and identity deletion now follow the same repository-local Git cleanup behavior as the CLI

  • -
    Desktop identity workflow clarity

    Desktop add/view flows now show SSH public keys directly and guide users to add generated keys to GitHub

  • -
    Desktop doctor and responsive cleanup

    Doctor page duplication was removed and desktop layouts were tightened for smaller window sizes

8
Phase 8

Phase 8

v0.8.0

2026-06-10

Milestone release expanding the desktop app with native feedback, encrypted backup and restore, SSH public key copy support, and GitHub avatar identity cards.

Features
4

Desktop notification system

Desktop identity actions now use app-native success, warning, and error notifications, confirmation dialogs, and action loading states

Desktop backup and restore

Added desktop UI for encrypted .bgit export and import using the existing core archive format, file selection dialogs, password prompts, and restore summaries

Desktop SSH public key copy

Identity rows now show SSH public key previews with a copy action so users can add generated keys to GitHub without manually opening key files

GitHub avatar identity cards

Desktop identity rows now show GitHub avatars derived from configured GitHub usernames with initials fallback

Bug Fixes
2
  • -
    Clearer desktop destructive actions

    Identity deletion and backup import now use explicit in-app confirmation dialogs with safety warnings

  • -
    Actionable desktop error feedback

    Common backend, config, SSH, and identity failures now surface clearer user-facing hints in the desktop app

7
Phase 7

Phase 7

v0.7.2

2026-06-10

Patch release fixing bound repository Git identity enforcement so normal git commits use the repository's bound bgit identity.

Bug Fixes
3
  • -
    Repo-local Git identity for bound repositories

    bgit bind now writes repository-local user.name and user.email for the bound identity so normal git commit uses the correct author even when the global active identity differs

  • -
    Bound repository safety checks

    bgit check now validates the effective repository Git identity and allows a bound repository to pass when its local Git identity matches the binding

  • -
    Sync repair for bound repositories

    bgit sync --fix now repairs repo-local Git identity for bound repositories instead of requiring a global identity switch

v0.7.1

2026-06-10

Release packaging update for the Phase 7 desktop beta, adding Linux desktop artifact generation to the GitHub release workflow.

Features
1

Linux desktop release artifact

The GitHub release workflow now builds the Wails desktop application on Linux and uploads bgit-desktop-linux-amd64 alongside the CLI binaries

Bug Fixes
2
  • -
    Desktop asset release coverage

    Ensures the desktop beta binary is attached to the GitHub release instead of shipping only CLI binaries

  • -
    Release workflow dependencies

    Installs the required Linux GTK, WebKit, Soup, Node, and Wails dependencies before building the desktop artifact

v0.7.0-beta

2026-06-05

Beta milestone release introducing the Wails desktop app foundation, identity dashboard, identity management, and visual diagnostics.

Features
4

Desktop app foundation

Added a Wails desktop application under desktop/ with a separate entrypoint and backend bindings while preserving the existing CLI entrypoint

Desktop identity dashboard

Added a desktop dashboard for configured identities, active profile, setup state, identity counts, SSH key status, and effective identity source

Desktop identity management

Added desktop actions to add, edit, activate, and delete bgit identities using the existing core identity and SSH flows

Desktop doctor integration

Added read-only desktop diagnostics for config health, SSH setup, SSH agent state, and Git identity alignment

Bug Fixes
2
  • -
    Desktop project structure cleanup

    Moved active Wails configuration under desktop/ and removed obsolete manual Windows installer documentation from the release structure

  • -
    Beta release metadata

    Prepared release metadata for v0.7.0-beta and marks beta releases as prereleases in the GitHub release workflow

6
Phase 6

Encrypted Backup Portability

v0.6.0

2026-06-02

Milestone release adding encrypted bgit export and import archives for portable identity backups.

Features
5

BGIT export archive system

Added bgit export to package the current bgit backup payload into a stable .bgit archive structure

Encrypted export layer

Wrapped .bgit archives in an encrypted envelope using Argon2id key derivation and AES-256-GCM payload encryption

BGIT import restore flow

Added bgit import to decrypt encrypted .bgit archives, validate the archived config, and restore it atomically

$ bgit import <archive.bgit>

Portable SSH key backup support

Encrypted .bgit backups now include configured identity SSH private and public keys under payload/keys so backups can be imported on another machine without regenerating keys

Backup portability validation

Added a Machine A to Machine B portability test that verifies identities, active user, SSH key files, target-machine key paths, and regenerated SSH config entries

$ make test-backup-portability
Bug Fixes
4
  • -
    Password-only interactive archive protection

    Export and import passwords are prompted interactively and are not accepted through command-line arguments

  • -
    Export password recovery warning

    bgit export now warns users that the archive password is required for import and cannot be recovered if forgotten

  • -
    Target-machine SSH key path restore

    Import rewrites restored SSH key paths to the target machine and regenerates bgit-managed SSH config entries after restoring keys

  • -
    Encrypted archive integration coverage

    Integration tests now cover encrypted export creation, unreadable plaintext archive checks, wrong-password import failure, corrupted and empty archive rejection, and successful import restore

5
Phase 5

Validation & Stability

v0.5.0

2026-06-02

Milestone release focused on shared core models, standardized core responses, safer config persistence, and stronger isolated integration testing.

Features
4

Shared core model layer

Added core/models to hold reusable identity, repository, and operational structs shared across config, identity, repo, and SSH modules

Standardized core result objects

Core identity, repo, and SSH operations now return structured result objects instead of mixed tuple-style responses

Safer config persistence

Config loads and saves now validate supported versions and references, normalize legacy values, and save atomically via temp-file replacement

Stronger isolated integration harness

Integration tests now run with isolated HOME and XDG config paths, explicit Git system-config isolation, clearer failure output, and optional temp-dir preservation

$ make test-integration
Bug Fixes
2
  • -
    Config validation regressions caught earlier

    Integration coverage now includes invalid config version handling, duplicate user rejection, workspace removal, and binding override/no-op paths

  • -
    More consistent core APIs

    Core consumers now work against predictable result shapes, reducing command-layer branching and special-case handling

4
Phase 4

Core Extraction Milestone

v0.4.0

2026-05-29

Milestone release that finishes the core extraction and CLI integration work for config, SSH, identity, and repository flows.

Features
4

Core config module

Moved config loading, persistence, migration, and active identity state into core/config as the shared config boundary

Core SSH module

Moved SSH key generation, SSH config management, agent helpers, and connectivity checks into core/ssh

Core identity module

Moved identity resolution and identity lifecycle operations into core/identity

Core repository module

Added core/repo for workspace registration, repository binding, remote URL conversion, clone auto-bind support, and repository owner resolution

Bug Fixes
2
  • -
    Thinner CLI command layer

    Commands now route their core behavior through extracted modules instead of duplicating repo, identity, and remote logic directly

  • -
    Consistent repository safety decisions

    Repository owner detection, remote conversion, and clone binding now use shared core logic across check, remote, clone, bind, and uninstall flows

3
Phase 3

Shell Integration & Safety

v0.3.1

2026-05-25

Bugfix release focused on uninstall recovery, post-uninstall safety, and repeatable integration testing.

Features
2

Docker-backed integration test harness

Added repeatable host and Docker integration tests covering setup, identity flows, remote fixes, safety checks, and uninstall cleanup

$ make test-docker

Real-account acceptance test harness

Added an opt-in real-account test flow that backs up and restores real bgit, SSH, and Git state while validating selected identities and repositories

$ make test-real
Bug Fixes
3
  • -
    Uninstall recovery for existing users

    Resolved GitHub issue #5 reported by maheshmthorat: uninstall now restores configured repo remotes first, removes managed SSH config, restores or clears bgit-managed hooks, and restores backed-up Git identity when available so GitHub Desktop and normal Git commands are not left affected after uninstall

  • -
    Post-uninstall read-only safety

    Read-only commands such as list, status, active, prompt, and doctor no longer recreate ~/.bgit or reinstall hooks after uninstall

  • -
    Optional SSH key cleanup

    Added bgit uninstall --remove-keys so SSH key deletion is explicit instead of implicit

v0.3.0

2026-03-04

Phase 3 usability and safety release focused on one-time setup and automatic push protection.

Features
4

One-time setup command

Added bgit setup to initialize configuration, install global pre-push safety checks, and prepare defaults

$ bgit setup

Automatic push safety checks

Added bgit check and managed pre-push hook integration to validate identity and remote alignment

$ bgit check

Shell prompt integration

Added prompt-friendly identity output for shell integrations

$ bgit prompt --plain

Clone auto-bind by default

Repositories cloned with bgit clone are automatically bound to the effective identity by default

$ bgit clone <url> [directory]
Bug Fixes
2
  • -
    Consistent first-run behavior

    Commands now trigger setup flow automatically when bgit has not been initialized

  • -
    Uninstall cleanup

    Uninstall now clears managed global hooks path and removes managed SSH config entries

Breaking Changes
1
  • !
    Legacy command deprecations

    bgit init and bgit setup-ssh are deprecated in favor of bgit setup; bgit remote fix is now legacy/advanced guidance

2
Phase 2

Repository-Aware Identity

v0.2.1

2025-01-28

Code cleanup and improved installation experience.

Features
1

Dynamic version fetching

Install scripts now automatically fetch the latest version from GitHub

Bug Fixes
2
  • -
    Standardized user prompts

    All confirmation prompts now use consistent UI patterns

  • -
    Code cleanup

    Removed unnecessary comments and improved code readability

v0.2.0

2025-01-28

Phase 2 release with workspace support and diagnostics.

Features
6

Workspace management

Create organized workspace folders with automatic identity binding

$ bgit workspace

Repository binding

Bind individual repositories to specific identities

$ bgit bind

Identity status

Show current identity status and bindings

$ bgit status

Diagnostics

Diagnose and auto-fix configuration issues

$ bgit doctor

Active identity

Show current active identity

$ bgit active

Identity resolution

Automatic identity resolution based on workspace > binding > global priority

1
Phase 1

Core Identity Management

v0.1.0

2025-01-28

Initial release with core identity management features.

Features
8

Multi-user identity management

Add, list, use, and delete Git identities

$ bgit add/use/list/delete

SSH key management

Generate or import SSH keys for each identity

$ bgit add

Git config handling

Automatic user.name and user.email configuration

$ bgit use

Clone with identity

Clone repositories with the correct SSH configuration

$ bgit clone

Remote management

Fix and restore remote URLs for bgit compatibility

$ bgit remote fix/restore

Configuration sync

Validate and sync bgit configuration

$ bgit sync

Safe uninstall

Safely uninstall bgit and restore all repositories

$ bgit uninstall

Cross-platform support

Works on Linux, macOS, and Windows

Want to see what's coming next?

Check out our roadmap and upcoming features on GitHub