Releases: Ruivalim/h
Release list
Release v0.6.4
Release v0.6.4
🎉 Highlights
This release adds a raw output mode to the dots diff command, making it easier to integrate dotfile status checks into scripts and automation workflows. The new --raw flag outputs a machine-readable format similar to git status --porcelain.
✨ What's New
-
Raw output mode for
dots diff: Use--rawflag to get machine-readable output with status prefixes:Mprefix for modified files (content differs between repo and home)Dprefix for deleted files (exists in repo but missing from home)
Example usage:
h dots diff --raw # Output: # M .zshrc # D .gitconfig
🐛 Bug Fixes
No bug fixes in this release.
🔧 Technical Changes
- Updated
dotsDifffunction signature to accept an options object for extensibility - Raw mode bypasses the detailed diff output, only listing files with their status codes
📝 Full Changelog
See all changes: v0.6.3...v0.6.4
Full Changelog: v0.6.3...v0.6.4
Release v0.6.3
Release v0.6.3
🎉 Highlights
This release introduces the re-add command for dotfiles management, making it easier to sync modified local files back to your dotfiles repository. Additionally, all interactive prompts now handle Ctrl+C gracefully, providing a cleaner user experience when cancelling operations.
✨ What's New
Dotfiles Management
- New
re-addcommand: Quickly sync modified local dotfiles back to your repository withh dots re-add(orh dots readd). The command scans for locally modified files, lets you select which ones to update, and automatically commits and pushes changes. - Improved Ctrl+C handling: All interactive prompts (confirmations, checkboxes, selects) now exit gracefully when interrupted, instead of throwing unhandled errors.
Shell Completions
- Zsh completions for dots commands: Full autocompletion support for all
h dotssubcommands including the newre-addcommand. File path completion is now available fordots addanddots rmcommands.
🔧 Technical Changes
- Added
isExitError()andexitGracefully()helper functions to standardize prompt interruption handling across all interactive operations - Wrapped all
@inquirer/promptscalls (confirm,checkbox,select) in try-catch blocks for consistent error handling - Extended zsh completion script with
dots_subcommandsarray and proper case handling for nested commands
📝 Full Changelog
See all changes: v0.6.2...v0.6.3
Full Changelog: v0.6.2...v0.6.3
Release v0.6.2
Release v0.6.2
🎉 Highlights
This release significantly improves the dotfiles conflict resolution workflow by introducing configurable diff tool support and an interactive menu system. Users can now choose their preferred diff/merge tool (vimdiff, neovim, meld, VS Code, etc.) and resolve conflicts more efficiently with a streamlined interface.
✨ What's New
Configurable Diff Tool Support
- Added new
diffToolconfiguration option accessible viah config - Supports popular diff tools out of the box:
- vimdiff (vim)
- nvim -d (neovim)
- meld
- opendiff (macOS FileMerge)
- VS Code (
code --diff --wait) - Custom commands
- Auto-detects a sensible default based on your
$EDITORenvironment variable
Improved Conflict Resolution Workflow
- New interactive menu when encountering file conflicts during
dots sync,dots apply, anddots diff - Options to view inline diff, open in external diff tool, apply changes, or skip—all from a single menu
- External diff tool integration allows reviewing changes in your preferred editor before deciding
- Menu loops back after viewing diffs, letting you inspect changes multiple times before committing to an action
🔧 Technical Changes
- Refactored path resolution in
dots addanddots rmto properly handle relative paths from current directory - Added validation that paths must be inside home directory
- Extracted diff tool detection and spawning into reusable utility functions (
detectDefaultDiffTool,getDiffToolArgs,openExternalDiff)
📝 Full Changelog
See all changes: v0.6.1...v0.6.2
Full Changelog: v0.6.1...v0.6.2
v0.6.1
Release v0.6.0
Now I have a complete picture. Let me generate the release notes.
Release v0.6.0
🎉 Highlights
This release introduces a comprehensive Dotfiles Manager (h dots) - a chezmoi-compatible system for managing your dotfiles across machines. It also includes an Interactive Configuration Editor and complete project documentation.
✨ What's New
Dotfiles Manager (h dots)
h dots add <path>- Add files or directories to your dotfiles repo with interactive selectionh dots apply- Apply dotfiles from repo to home directory with diff previewh dots sync- Bidirectional sync with conflict resolution (home ↔ repo)h dots status- View modified, missing, and in-sync files at a glanceh dots diff [file]- Show differences between repo and homeh dots list- List all managed dotfiles with status indicatorsh dots rm <path>- Remove files from dotfiles management
Key Features:
- Chezmoi-compatible naming conventions (
dot_,private_,executable_prefixes) - Auto-commit and push support for seamless backups
- Periodic sync checks on CLI startup (configurable interval)
- Automatic permission handling (private files get 600, executables get 755)
- Configurable ignore patterns for common files (.DS_Store, *.swp, etc.)
Interactive Configuration Editor (h config edit)
- New menu-driven configuration interface
- Configure AI provider, update settings, and dotfiles options in one place
- Easily manage ignored patterns for dotfiles
Documentation
- Added comprehensive documentation in
docs/:- Installation guide with all methods and requirements
- Complete commands reference
- Architecture overview
- Roadmap and planned features
- Known issues and improvements
🔧 Technical Changes
- Extended
HConfigtype with dotfiles configuration schema - Added
updateConfig()utility for partial config updates - Integrated dotfiles startup check into main CLI flow
- Improved README with quick start guide and feature overview
📝 Full Changelog
See all changes: push...v0.6.0
Full Changelog: v0.5.0...v0.6.0
Release v0.5.0
Release v0.5.0
🎉 Highlights
- Enhanced Configuration Management: Added new commands to manage CLI configuration, including setting up AI providers and configuring update checks.
- AI-Powered Commit Messages: Integrated AI-driven commit message generation to simplify and streamline the release process.
✨ What's New
Features
- Configuration Commands: Introduced
configsubcommands to manage and edit CLI settings such as AI provider configuration and update notifications. - AI-Derived Commit Messages: Added support for generating AI-powered commit messages, enhancing code commit clarity with a single command.
Improvements
- Interactive Editing: The
editconfig command now opens the current configuration in your default editor, making updates straightforward. - Enhanced Release Notes Generation: Integrated AI to create detailed release notes automatically during the release process, including updates to CHANGELOG.md and creating GitHub releases (if available).
🐛 Bug Fixes
- Fixed an issue where the
commitcommand was failing when no staged changes were found. - Addressed a bug in the
branch-diffcommand that could cause issues with diff generation.
🔧 Technical Changes
- Updated project dependencies to ensure compatibility and performance improvements.
- Refactored code for better maintainability and scalability, including modularizing AI-related utilities into separate files.
📝 Full Changelog
[Link to compare view would go here]
For more detailed information on these changes and the full list of updates, please refer to the full changelog.
Full Changelog: v0.4.0...v0.5.0