gitcore 1.5.0

A secure, zero-friction Git identity manager for developers who juggle multiple accounts.
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.5.0] - 2026-05-31

### Added
- **Security Audit Permission Verification**: The security audit command now collects and prints warnings for incorrect or insecure permissions on SSH keys and configs in its issue summary.
- **Locale-Independent GPG Parsing**: Migrated GPG listing command to parse GPG's `--with-colons` machine-readable output format, ensuring correct execution under any system locale setting.
- **Self-Healing SSH Config**: The configuration parser automatically detects and repairs dangling or malformed managed blocks.
- **Strict SSH Directory Permissions**: Enforces secure Unix permissions (`0700` / `rwx------`) on target SSH directories programmatically during SSH key generation and vault recovery.
- **Descriptive Binary Diagnostics**: Diagnostics now report precise error messages if standard binaries (`git`, `ssh-keygen`, `ssh`) are missing from the system's `PATH`.

### Changed
- **Clone CLI Context Sequence**: Active configuration details are now printed prior to the clone process starting, improving CLI responsiveness during long operations or prompts.
- **Defensive URL parsing**: Repository directory matching now safely matches non-empty path segments and falls back to a safe folder name, preventing directory traversal and workspace pollution.

## [1.4.0] - 2026-05-10

### Added
- **Auto-Initialization**: `gitcore remote add` now offers to run `git init` if the target path is not a Git repository.
- **Repository Initialization API**: Added `Gitcore::init_git_repo` to the public service for programmatic repository initialization.

### Changed
- **Error Messaging**: Improved the error message when a path is not a Git repository to suggest running `git init`.

## [1.3.0] - 2026-05-08

### Added
- **Flexible Key Paths**: Accounts can now specify custom SSH key filenames via `key_path` in `AddAccountRequest`.
- **Account Update**: Added `Gitcore::update_account` and `gitcore update` command to modify account metadata without re-registration.
- **Context Detection**: Added `Gitcore::detect_account_in_repository` and `gitcore whoami` to identify the active managed account in a local repository.
- **Library Documentation**: Comprehensive doc comments and runnable examples added to the public API in `src/lib.rs`.
- **Library Usage Guide**: New documentation in `docs/LIBRARY_USAGE.md` explaining how to embed Gitcore as a library.
- **Integration Tests**: End-to-end test suite for account lifecycles and vault operations.

### Changed
- **Rebranding**: Finalized the migration from `gity` to `gitcore`.
- **Architecture**: Completed the "Fat Library, Thin CLI" split. The core logic is now 100% programmatically usable without terminal IO.
- **Error Handling**: Standardized on `GitcoreError` throughout the library, replacing raw `io::Error` at high-level boundaries.
- **Configuration**: Improved config recovery logic and enforced strict permissions (0o600) on all sensitive files.

## [1.2.0] - 2026-04-20
- Initial public release of `gitcore`.
- Support for GitHub, GitLab, Codeberg, and Bitbucket.
- Secure encrypted vaults for configuration backups.
- Automatic SSH host alias generation.