Files
dotfiles/CHANGELOG.md
2025-12-16 08:53:28 -05:00

6.1 KiB

Changelog

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

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.1.0] - 2025-12-16

Added

Shell Startup Optimization

  • Deferred Loading - Heavy plugins and functions load after first prompt displays
  • Cached Command Checks - _has_cmd() function caches command -v results for faster lookups
  • Lazy kubectl - kubectl completions only load when first used (saves ~200-500ms)
  • Background Tasks - Dotfiles sync check runs fully async with &!
  • Compile Script (dotfiles-compile.sh) - Pre-compile zsh files to .zwc bytecode for 20-50ms speedup

Smart Path Resolution

  • _df_run() Helper - All aliases use full path with fallback to PATH
  • Fixes "command not found" errors on fresh installs
  • Scripts work even before symlinks are created or PATH is set

New Aliases

  • dfcompile - Compile zsh files for faster startup
  • dfcd - Navigate to dotfiles directory (replaces df to avoid disk utility conflict)

Changed

Script Reorganization

  • Renamed bin/shell-stats.shbin/dotfiles-stats.sh
  • Renamed bin/vault.shbin/dotfiles-vault.sh
  • Renamed bin/update-dotfiles.shbin/dotfiles-update.sh
  • Moved bin/setup-wizard.shsetup/setup-wizard.sh
  • Moved bin/setup-espanso.shsetup/setup-espanso.sh
  • Removed deprecated bin/deploy-zshtheme-systemwide.sh

Alias System Overhaul

  • All command aliases now use _df_run() function wrapper
  • Uses full path $_df_dir/bin/script.sh with fallback to PATH lookup
  • Better error messages when scripts not found
  • Removed df alias (conflicts with disk free utility)

.zshrc Optimizations

  • Reduced default plugins (removed docker, docker-compose, kubectl from immediate load)
  • Disabled oh-my-zsh auto-update check on every load (DISABLE_AUTO_UPDATE="true")
  • Tool aliases (eza, bat) now set up in deferred loading
  • FZF configuration deferred until after prompt
  • Vault secrets loaded with full path to avoid command_not_found issues
  • Background sync check uses full script path

Fixed

  • Fresh Install Bug - "Command not found: dotfiles-sync.sh" error on new user accounts
  • Path Resolution - Scripts now work before ~/.local/bin is in PATH
  • Smart Suggest Conflicts - Background tasks no longer trigger command_not_found_handler

Removed

  • df alias (conflicted with df disk utility)
  • Heavy plugins from default load (now lazy-loaded)
  • bin/deploy-zshtheme-systemwide.sh (redundant with installer)

[1.0.0] - 2025-12-15

Added

Core Features

  • Interactive Setup Wizard (setup-wizard.sh) - Beautiful TUI installer using gum with fallback to basic prompts
  • Dynamic MOTD (motd.zsh) - Compact system info on shell start (uptime, CPU, memory, docker, git status)
  • Command Palette (command-palette.zsh) - Raycast-style fuzzy launcher triggered by Ctrl+Space or Ctrl+P
  • Smart Suggestions (smart-suggest.zsh) - Typo correction for 100+ common mistakes + alias recommendations
  • Shell Analytics (dotfiles-stats.sh) - Dashboard showing command usage, suggestions, and activity heatmap
  • Secrets Vault (dotfiles-vault.sh) - Encrypted storage for API keys using age/gpg
  • Password Manager Integration (password-manager.zsh) - Unified CLI for 1Password, LastPass, Bitwarden
  • Dotfiles Sync (dotfiles-sync.sh) - Multi-machine synchronization with watch mode
  • Dotfiles Doctor (dotfiles-doctor.sh) - Health checker with auto-fix capability
  • Version Tracking (dotfiles-version.sh) - Compare local vs remote versions

Password Manager Support

  • 1Password CLI (op) installation and integration
  • LastPass CLI (lpass) installation and integration
  • Bitwarden CLI (bw) installation and integration
  • Unified pw command with fuzzy search support

Configuration

  • Centralized dotfiles.conf for all settings
  • Git identity configuration (generated, not hardcoded)
  • Feature toggles for all optional components
  • Machine-specific config support via .zshrc.local

Installation

  • --wizard flag for interactive TUI installation
  • --uninstall flag to remove symlinks and restore backups
  • --purge flag to completely remove dotfiles
  • --skip-deps flag for faster re-runs
  • Auto-detection of installed dependencies
  • Automatic zsh plugin installation

Zsh Theme

  • Two-line prompt with git integration
  • Command timer for long-running commands
  • Root detection (red prompt for root)
  • Smart path truncation

Espanso

  • 100+ text expansion snippets
  • Personal snippet template
  • Setup script for personalization

Snapper (Arch/CachyOS)

  • Btrfs snapshot management functions
  • limine-snapper-sync integration
  • Boot menu validation

Documentation

  • Comprehensive README with feature overview
  • Detailed SETUP_GUIDE with troubleshooting
  • ESPANSO reference with all snippets
  • SNAPPER guide for btrfs users

Changed

  • Optimized .zshrc with lazy-loading for NVM and virtualenvwrapper
  • Streamlined adlee.zsh-theme (removed unused functions)
  • Git config now generated from dotfiles.conf instead of hardcoded

Removed

  • Hardcoded git credentials from .gitconfig
  • Redundant code in theme file
  • Duplicate export ZSH= statements

Version History

Versioning Scheme

  • Major (1.x.x): Breaking changes, major feature additions
  • Minor (x.1.x): New features, non-breaking changes
  • Patch (x.x.1): Bug fixes, documentation updates

Checking Your Version

dfv
# or
dotfiles-version.sh

Updating

dfu
# or
dotfiles-update.sh

Roadmap

Planned for 1.2.0

  • Multiple theme support with live preview
  • Project scaffolding templates
  • SSH key generation helper
  • Machine profiles (work, personal, server)

Planned for 1.3.0

  • Remote machine bootstrap script
  • Neovim configuration support

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Update CHANGELOG.md
  5. Bump version in dotfiles.conf
  6. Submit a pull request