[Unreleased] - 2026-03-14¶
Features¶
- (install) Validate age key can decrypt before chezmoi apply; fall back to
--exclude=encryptedon failure - (install) Validate symlink source exists before creating symlink in
ensure_symlink_with_backup - (backup) Exclude SSH private keys by default; add
--include-ssh-keysflag to opt in - (doctor) Add 5-second timeout to DNS resolution check to prevent hanging
- (rotate-secrets) Use temp file with restricted permissions instead of shell variable for decrypted secrets
- (update) Warn users when optional update steps fail in the summary
- (tests) Add test suites for secret rotation, release workflow, distro detection, and WSL DNS fix
- (shell) Shared AI agent detection file (
dot_config/shell/ai-agent-detect.sh) replaces duplicate inline functions in bash and zsh, adding process ancestry fallback and 7 new agent env vars - (atuin) Convert atuin config to chezmoi template; add
host_namefor consistent cross-device identity andcwd_filterto exclude commands from agent temp directories - (ci) Enforce public
misetask contract viascripts/ci/check-public-task-contract - (ci) Add
bash/zshshell matrix smoke checks for install/doctor/update - (tasks) Add stable top-level task wrappers (
install,update,doctor,lint,test, etc.) - (doctor) Add
--fixmode for safe local repairs (task execute bits, agent symlinks, safe directories) - (update) Add
--auto-stash,--allow-dirty,--wait-for-lock,--fast,--full,--offline,--dry-run, and--skip-verifymodes - (update) Add step summary/timing output and post-update smoke verification
- (verify) Add
dots verifycommand andverify-dotfilestask for post-apply integrity checking (core files, config dirs, symlink targets, permissions) - (doctor) Validate symlink targets via
readlink -f, not just symlink existence - (tests) Add
lifecycle.bats(23 end-to-end lifecycle tests) anderror_recovery.bats(18 resilience tests) - (tests) Rewrite
git_hooks.batswith proper git identity and pre-push WIP commit tests - (ux) Add
dots statusdashboard as default baredotscommand — shows repo, chezmoi, tools, and health at a glance with actionable next steps - (doctor) Write summary cache to
~/.cache/dots/last-doctorfor dashboard health display
Documentation¶
- Update ADR-014 to document the narrower AI-session detection strategy and Bash Atuin hook bridge
- Align GitHub lint workflow with the repository lint toolchain without triggering full-tool installs in CI
- Archive completed ADR-013 execution plan to
docs/roadmaps/archive/09-shell-support-compliance-plan.md - Update roadmap status in
docs/meta/ROADMAP.mdfor completed shell-compliance and CI hardening - Normalize docs to public task names (
mise run doctor,mise run perf, etc.) - Remove non-human co-author example from
DNS-FIX-SUMMARY.md - Refresh bootstrap/install docs for system-login-shell detection and rerun shell-prompt behavior
- Update CLI/architecture references for
dots bootstrapand current bootstrap flow - Document task execute-bit drift repair workflow and
dots update/doctorreliability guardrails - Document new
dots updatesafety/mode flags, lock behavior, anddoctor --fixrepairs - Fix
dotsCLI/README/install docs parity for release/changelog/check commands and bootstrap/server quick-start wording - Update CLI.md with missing commands (sync, pre-commit, test-coverage, welcome, uninstall)
- Add server profiles section to INSTALL.md
- Document kcov apt exception in CI workflow
- Fix stale
mise.lockreference in CONTRIBUTING.md - Consolidate duplicate server configs (delete
.config/mise/server.toml) - Remove duplicate
ncduentry from.chezmoidata.yaml - Fix devcontainer CI cache key (remove non-existent
mise.lock) - Add
*.sync-conflict-*to.gitignore - Add Dashboard section to CLI.md documenting
dots status/dots st/dots s - Document install rerun behavior for partial TPM / Antidote recovery and rootless install-test coverage
Bug Fixes¶
- (bash/atuin) Restore Atuin recording in baseline Bash by dispatching preexec/precmd hooks and stop disabling Atuin for normal interactive shells solely due to agent ancestry
- (bootstrap) Make
scripts/bootstrapexecutable in git and remove duplicate bootstrap install pass - (install) Repair partial TPM / Antidote checkouts on rerun instead of skipping invalid directories
- (install) Prompt before changing login shell and skip prompt when login shell is already
zsh - (install) Detect system login shell from account records instead of
$SHELLso reruns keep prompting untilzshis actually the default shell - (packages) Stop requesting
git-extrasin Arch package installs - (tasks) Restore executable mode for shell-based top-level
mise-tasks/*shims - (tasks) Harden public task shims and
dots updateagainst execute-bit drift across devices - (update) Skip sudo-prompted system package upgrades by default unless
--system-updatesis requested - (update) Skip package-manager
ghupgrades whenghis already managed bymise - (update) Add retries/timeouts for network-prone update steps and lock concurrent update runs
- (ux) Restore
dots changelog, implementdots release, mapdots checktodoctor, and add bootstrap--help/ invalid-option guidance - (ssh) Fix
detect_interactivecalled beforecolors.shis sourced - (secrets) Add
pipefailto prevent pipe maskingage-keygenfailures - (install) Guard
evalof mise activation, add offline detection, and exportDOTFILES_SERVERfor chezmoi templates - (backup) Use temp file with
tar -Tto prevent word-splitting on paths with spaces - (update) Change lock file descriptor from 9 to 200 to avoid shell builtin collisions
- (bootstrap) Add network connectivity check before first download and use session-only mise activation
- (zshrc) Add 10-second timeout to antidote dynamic fallback to prevent shell startup hangs
- (hooks) Make git hook files executable in repo for test and deploy consistency
- (tests) Remove passwordless-
sudodependency from install/server deployment idempotency checks by using rootless mocked installer runs
[1.9.0] - 2026-02-08¶
Features¶
- Setup powerlevel10k rainbow theme and nerf font automation
- (install) Automated ssh setup and remote switching
- (ssh) Enhance setup with key gen, host verification, and config
- (wsl) Add clipboard, open alias, and git credential manager support
- Standard linux support & wsl separation
- Enforce clean working dir for updates and set git identity
- Modernize dotfiles with mise, ci, and devcontainers
- Globalize mise config
- Improve CI/CD and Devcontainer configurations
- Cross-platform support with mise, tmux-yank, Brewfile
- Add vnv alias for smart python venv activation
- Add mise tasks for backup, prune, shell, and enhanced doctor
- Implement Service Packs 2 & 3 (Polish & Utilities)
- Feat: Add VSCode/Antigravity workflow improvements (Service Pack 5)
- Add c/c. aliases to open VSCode
- Add browse alias for WSL browser integration (requires wslu)
- Add stash/pop/nuke for Git safety net (AI change management)
- Add f/ff/fz for quick code search (debugging AI mistakes)
- Add aienv to check configured API keys
- Add aibrief to generate AGENTS.md context files
- Add gdr/gdp/greview for enhanced diff review
- Remove aider/asciinema (not needed for IDE-based AI coding)
- Update README.md and docs/TOOLS.md
- Implement testing framework (BATS, ShellCheck, CI)
- Complete test suite (functional, features, utilities)
- Add comprehensive automated testing suite (Phase 1 & 2)
- Add Reddit-sourced improvements (gitconfig, debug aliases, onefetch)
- Feat: add awesome list tools (hyperfine, uv, glow, git-cliff, curlie)
- Added tools to mise.toml
- Added aliases and smart wrappers (md -> glow/mkdir)
- Updated documentation (TOOLS.md, README.md, CHANGELOG.md)
- Added tests/awesome_tools.bats
- Feat(nvim): add which-key.nvim and expand telescope keymaps
- Add which-key.nvim for keybinding discoverability (folke)
- New telescope keymaps:
fr (recent files), fc (commands) - Document native Neovim 0.10+ gc commenting operator
- Update nvim README with full plugin list and keymaps table
- Add to CHANGELOG under Unreleased section
- Feat(nvim): add essential editing plugins and finalize zsh/tmux tweaks
- Neovim: Add gitsigns.nvim, nvim-autopairs, nvim-surround
- Tmux: Add tmux-window-name and tmux-better-mouse-mode
- Zsh: Add zsh-vi-mode, zsh-completions, zsh-you-should-use
- Docs: Update CHANGELOG, TOOLS, and nvim/README
- (tools) Add navi, yq, and tokei (cloc)
- (windows) Overhaul provisioning with high-ROI tools and PowerToys plugins
- Feat: Implement secret knowledge tools and Windows provisioning updates
- Added ncdu, lnav, glances, gron to managed tools.
- Moved docs/WINDOWS_TOOLS_REVIEW.md to docs/archive/.
- Updated Windows provisioning scripts and packages.
- Added new tests for docker, git extensions, and hooks.
- Updated documentation and changelog.
- (mise) Add non-interactive mode detection to install script
- Implement comprehensive audit fixes and improvements
- Implement comprehensive audit fixes and refinements
- (test) Comprehensive testing infrastructure upgrade
- Smart cached welcome message with fast startup
- Feat: add Bitwarden on-demand secrets integration
- bw-unlock: Unlock Bitwarden for terminal session
- bw-get: Fetch secret by item name (auto-unlocks)
- bw-env: Run command with secret injected (not in history)
- Document best practices in docs/SECRETS.md
- Unified lolcat coloring for welcome message
- (docs) Upgrade to MkDocs Material with Mermaid, SwaggerUI, and CI validation
- Finalize quality roadmap v1.0.0 and documentation
- (wsl) Add .wslconfig and /etc/wsl.conf deployment
- Add shell enhancements and AI agent isolation
- Add dotfiles-only deployment mode for servers
- Comprehensive audit fixes and test coverage improvements
- Add unified gist management command
- Add unified dots command for dotfiles management
- [breaking] Unified command interface (v1.4.0)
- Server deployment readiness (v1.5.0)
- Production hardening for server deployments (v1.6.0)
- (doctor) Validate mise tasks symlink
- (doctor) Add PATH validation and improve git identity messages
- Improve CI visibility and git workflow
- Add issue templates, CODEOWNERS, and enhance doctor
- Implement v1.8.0 version pinning strategy (Option B)
- Implement 5 repository quality improvements
- Implement 5 medium-small quality improvements
- Implement 5 medium-sized repository improvements (v1.9.0)
- Add cls alias and exclude symlink from docs link checker
- Complete v1.9.0 roadmap with security automation
- Add dsp alias for Claude Code
- Add ccdsp function for Claude Code workflow
- Complete v2.0 improvements with performance optimization
- Optimize server deployment and ansible integration
Bug Fixes¶
- (zsh) Initialize atuin on first prompt so history/autocomplete works before first executed command
- (install) Ensure fonts are copied to windows even if existing in wsl
- (install) Fix syntax error and add powershell fallback for font install
- (install) Ensure ssh sockets directory exists
- (zsh) Add HIST_FCNTL_LOCK to prevent history file corruption
- Shell config and aliases
- (zshrc) Ensure ~/.local/bin is in PATH before mise activation
- (install) Globalize mise tasks
- (config) Hardcode DOTFILES_DIR to avoid symlink ambiguity
- Run update script in dotfiles directory
- Prevent symlink loop in mise tasks setup
- Remove stale reference to deleted dot_tmux.wsl.conf
- Bootstrap now supports zsh and handles missing age key
- (ci) Use conditional DOTFILES_DIR in mise.toml and add debug config
- (ci) Make task scripts executable and include user updates
- (install) Skip chezmoi init if config exists to avoid prompts
- (pkg) Move fastfetch to mise and cleanup redundant packages
- (test) Make parallel execution conditional on GNU parallel presence
- (test) Resolve test hangs, improve pre-commit config
- (test) All tests validated and passing
- Use command curl to bypass curlie alias in zshrc
- Remove bats from pre-commit, run only in CI
- Weather location accuracy and display formatting
- (welcome) Silence job control output for async quote fetch
- Fix: re-encrypt secrets with current key and add decryption validation
- Re-encrypted encrypted_dot_secrets.age with current age key
- Added decryption verification to mise run doctor
- Added decryption test to tests/secrets.bats
- Improve bw-unlock with login detection and helpful suggestions
- Rename status to bw_status (zsh reserved variable)
- Improve welcome display - show city only, lolcat without emoji
- Preserve spacing in weather display when stripping location
- Move encryption key to top-level in chezmoi config to silence warning
- Add retry logic to weather fetch for unreliable API
- (ci) Fix linux/macos/windows test failures
- (ci) Fix interactive prompt and dependency issues
- (ci) Fix toml syntax and windows nuget issue
- (ci) Fix windows tests and chezmoi template syntax
- (test) Component restore Describe block in provision tests
- (ci) Fix windows profile tests by running config provision
- (ci) Run chezmoi init in macos tests
- (ci) Fix chezmoi template parsing
- (ci) Skip encrypted files without age key
- (ci) Make lint compatible with zsh
- (ci) Mark all mise tasks executable
- (ci) Make git hooks executable
- (ci) Make tests respect DOTFILES_DIR
- (ci) Make devcontainer setup executable
- (ci) Authenticate mise in container-test
- (ci) Create venv for uv in docs workflow
- (docs) Update broken link and exclude venv from validation
- (docs) Resolve broken links and ignore flaky urls
- (ci) Make validate-links executable
- (ci) Broaden ignore patterns for link check
- (ci) Use ubuntu-22.04 for kcov and disable ttyd
- (ci) Remove mise.lock to fix macos ttyd issue
- (ci) Disable vhs to avoid macos issues
- (ci) Disable dust, btop, navi for macos arm64 compatibility
- (ci) Bypass kcov and run standard tests on ubuntu-22.04
- (ci) Pragmatic simplification - remove test-macos, remove kcov
- (tests) Skip navi test when not installed
- (ci) Remove set -e from test task to fix false failures
- (ci) Invoke bats directly to bypass mise wrapper issue
- (ci) Use mise exec for bats to set PATH correctly
- (ci) Make test step advisory with continue-on-error
- (ci) Make doctor step advisory
- (wsl) Robust windows user profile detection
- (deps) Enable navi in mise.toml
- (welcome) Enable lolcat by default and fix flag usage
- Format mise.toml to satisfy taplo linter
- Resolve autosuggestion ghost text and AI history isolation
- Use plugin's clear function for autosuggestions
- Resolve autosuggestion ghost text and AI history isolation
- Comprehensive audit fixes and test coverage improvements
- Make mise-tasks executable in git
- Make btop and dust optional in doctor check
- Remove overly strict mkdocs build mode
- Remove --strict from CI mkdocs build
- Correct ADR link in CHANGELOG
- Server deployment readiness audit
- Doctor script and CI server deployment test
- Exclude encrypted files in CI server deployment test
- Move SERVER_MODE validation to build job
- Correct broken documentation links
- Resolve CI failures in docs jobs
- Correct link paths in docs/CONTRIBUTING.md
- Switch tealdeer from github to cargo backend
- Add docs/ prefix to links in root CONTRIBUTING.md
- Correct link paths in docs/CONTRIBUTING.md
- Exclude symlinks from link validation
- Sync tealdeer backend to cargo in mise-server.toml
- Add mise-server.toml to Renovate fileMatch
- Symlink SECURITY.md to docs/ for MkDocs navigation
- Correct links in SECURITY.md for symlink compatibility
- Restore docs/ prefix in SECURITY.md link
- Exclude SECURITY.md symlink from CI link checker
- Resolve alias conflicts with forgit lazy-loaded functions
- Restore dots command functionality by fixing task paths and permissions
- Correct changelog path in release script
Refactor¶
- (ssh) Move setup to separate script and remove remote switch
- Migrate scripts to mise tasks
- Consolidate welcome message logic into welcome.zsh
- Aggressive repo cleanup and reorganization
Documentation¶
- Update readme with ssh setup details
- Add WSL optimizations section
- Update README with cross-platform features and support matrix
- Implement comprehensive documentation structure and policy
- Enforce professional emoji usage and shell ergonomics
- Docs: update CONTRIBUTING and TROUBLESHOOTING for chezmoi structure
- Update TROUBLESHOOTING: replace symlinks section with chezmoi apply
- Update TROUBLESHOOTING: fix secrets path, add encrypted option
- Update CONTRIBUTING: fix directory structure for chezmoi
- Update CONTRIBUTING: fix dot_ prefix table for repo root
- Update CONTRIBUTING: update lint commands to use shellcheck
- Clarify wsl --shutdown runs from Windows PowerShell
- Improve clarity throughout for new users
- Docs: add concise context to tools and troubleshooting
- README: clarify atuin, age, and smart aliases
- TOOLS: explain tool philosophy (modern replacements)
- TROUBLESHOOTING: add tip to run doctor first
- Update documentation and refine mise/bootstrap scripts
- Polish tools reference formatting
- Add windows tools and plugins reference
- Add agent commit workflow for pre-commit hook
- Update testing guides with pre-commit strategy
- Document smart welcome script and caching features
- Add welcome script documentation and fix pre-commit task
- Deduplicate welcome tool entry
- Correct welcome script documentation to match actual implementation
- Correct welcome tool description (live vs cached)
- Doc fixes
- Add secrets management best practices
- Refine secrets template with safety guidance
- Finalize roadmap and add renovate enablement guide
- Archive completed roadmap
- Complete missing roadmap items (Renovate policy and Link Check plugin)
- Add Renovate guide to documentation nav
- Fix absolute file:// paths in documentation
- Use proper relative paths for internal links
- Fix TESTING.md line anchor link
- Remove unsupported line anchor from markdown link
- Update documentation for unified command interfaces
- Document CI fast suite philosophy
- Update AGENTS.md header to match filename
- Document shellcheck exclude pattern
- Add security audit findings to roadmap with implementation plans
- Complete v1.7.0 Batch 1 security documentation
- Complete v1.7.0 Batch 3 supply chain security
- Enhance documentation and development infrastructure
- Clarify GitHub Actions pinning strategy
- Update ROADMAP.md to reflect v1.9.0 partial completion
- Update CHANGELOG for repository improvements
- Update changelog with recent improvements
- Update performance documentation and add tests
- Finalize structure, fix broken links, and resolve linting issues
- Fix remaining broken links in README and SECURITY policies
- Remove extraneous file remnants
- Enhance documentation quality and coverage
- Complete v1.9.0 contribution workflow and roadmap updates
Performance¶
- (ci) Add Python dependency caching to docs-build
- Phase 2 - eliminate mise hook bottleneck (save 126ms)
Miscellaneous Tasks¶
- Remove legacy ssh bridge and add wsl performance docs
- Cleanup zshrc and add tmux clipboard support
- Migrate atuin to mise, add node corepack postinstall
- Remove duplicative apt packages now managed by mise
- Fix missing tasks by adding mise trust and conditional DOTFILES_DIR
- Implementation finishing touches, config updates, and expanded test suite
- Remove unused fastfetch (replaced by custom welcome)
- Ignore syncthing files
- Update global gitignore
- De-scope container-test; add devcontainer smoke
- Fix devcontainer smoke locked-mode
- Cleanup CI artifacts and docs
- Add pnpm and bun to mise.toml
- Maintenance cleanup, add ADR-001, and update agent docs
- Release v1.1.0 and maintenance
- Standardize roadmap archive naming
- Maintenance, docs, and test updates
- Update wsl configs
- Update gitignore and changelog
- Run fast test suite only for quick feedback
- Improve automation and validation
- (renovate) Add automerge for GitHub Actions patches
- Enhance .editorconfig with comprehensive rules
- Complete v1.7.0 Batch 2 security hardening
- Remove CLAUDE.md symlink
- Remove AI attribution from release script
Revert¶
- Revert: remove patronizing documentation changes Restore concise style throughout. Keep WSL PowerShell clarification.
- Remove autosuggestion ghost text fix
Refactor¶
- Secure secrets, cleanup aliases, robust install script
Install¶
- Skip doctor in CI/non-interactive
Nvim¶
- Add suda.vim and :w!! rescue
Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Added¶
- Clipboard Platform Helper: Added unified
~/.local/bin/clipboardhelper (copy/paste/backend) used by shell aliases and tmux integrations. - ADR-012: Documented tmux UX and clipboard integration strategy.
-
Roadmap Process: Added
docs/roadmaps/roadmap-process.mdto standardize active/archived roadmap handling. -
Claude Code Convenience Aliases: Added workflow shortcuts for Claude Code CLI
dsp- Quick alias forclaude --dangerously-skip-permissions-
ccdsp- Complete workflow: clear, update, resume with Chrome and skip permissions -
Stale Issue Automation: GitHub Actions workflow for automated issue lifecycle management
- Issues: 90-day inactivity timeout, 14-day close warning
- PRs: 60-day inactivity timeout, 7-day close warning
-
Exempts: pinned, security, enhancement, dependencies labels
-
Dependency Security Auditing: Pre-merge security checks in CI
- Gitleaks secret scanning on all PRs via pre-commit
- Blocks merge if security issues detected
- Integrated with existing CI pipeline
Fixed¶
- CI Stability and Signal Quality:
- Switched CI workflows to direct script execution for lint/doctor steps to avoid runner-side task-resolution failures.
- Removed redundant
markdown-link-checkstep from primary CI docs job to reduce flake and runtime on free tier. -
Updated MkDocs CI checks to keep docs validation coverage via build + lychee.
-
Windows Provisioning Path Consistency:
- Updated Windows Pester tests to validate scripts and package manifest in
mise-tasks/setup/provision/windows. - Corrected bootstrap/install script paths and Windows profile source resolution after task-path migration.
-
Updated active docs to reference current Windows provisioning paths.
-
Tmux UX Consistency:
- Added explicit intuitive copy/paste keybindings (
Prefix + p/P, copy-modeEnter, mouse copy). - Removed keybinding conflict by moving synchronize-panes toggle to
Prefix + Y. -
Hardened tmux status git segment when
gitmuxis unavailable. -
Repository Improvements: Fixed 5 critical repository issues
- Synced tealdeer backend to
cargoinmise-server.tomlto match main config - Added
mise-server.tomlto Renovate fileMatch for automatic dependency updates - Created
docs/SECURITY.mdsymlink for MkDocs navigation -
Removed AI attribution from release script and commit history
-
Server Deployment Readiness: Fixed issues blocking server deployment
- Made 11 mise tasks executable (backup, doctor, install, update, etc.)
- Added non-interactive mode guard to bootstrap script (skips confirmation when piped or in CI)
- Fixed shellcheck SC2314 errors in tests (BATS
!pattern) -
Removed unused variable in zshrc.bats (shellcheck SC2034)
-
Install/Bootstrap Cleanup Hardening: Fixed leftover home artifacts and partial-state leaks
- Added rollback-on-failure to
mise-tasks/setup/install(plugin clones and config link replacements) - Switched plugin clone/setup flows to atomic temp-directory moves
- Added bootstrap clone cleanup trap for failed initial repo clones
- Hardened
setup/secretstemp-key cleanup and atomic key writes - Expanded
.chezmoiignoreto prevent non-dot repo artifacts from being managed into$HOME
Documentation¶
- Roadmap Hygiene:
- Archived and finalized the v1.8.0 roadmap in
docs/roadmaps/archive/08-v1.8.0-server-deployment.md. - Refreshed
docs/meta/ROADMAP.mdwith current and next work items. -
Added attribution policy notes in
AGENTS.mdand contributor guidance. -
GitHub Actions Pinning Strategy: Documented the rationale for different pinning strategies
- First-party actions (actions/*) use major version tags (@v4, @v5)
- Third-party actions use exact versions (@2.0.0) for supply chain security
-
Renovate manages automatic updates via dependency dashboard
-
ROADMAP: Updated to reflect accurate completion status
- Changed v1.9.0 status from "Complete" to "In Progress"
- Moved 5 uncompleted items to Future Considerations section
Changed¶
- Doctor Diagnostics: Added clipboard integration health checks (helper presence + backend detection).
- Install Workflow: Added best-effort tmux plugin auto-install during
mise run install(non-server mode). -
Tmux Session UX: Added
tm,tml,tms, andtmkhelpers for session create/list/switch/kill workflows. -
README: Clarified installation instructions
- Updated bootstrap note to mention non-interactive mode support
- Added chezmoi prerequisite with install command for server deployment
[1.4.0] - 2026-01-31¶
Changed¶
- BREAKING: Unified Command Interface: Consolidated all dotfiles operations under single
dotscommand - Core Operations:
dots install,dots update,dots doctor,dots sync,dots backup - Chezmoi Management:
dots cz apply|diff|edit|status|reinit(with short aliases:dots cz a|d|e|s|r) - Utilities:
dots logfor changelog viewing - Shell Customization:
dots welcomefor weather/quotes management - Help System:
dots helpshows all commands with descriptions -
Migration Guide: See ADR 006 for details
-
Welcome Message: Changed from opt-out to opt-in (disabled by default)
- Enable with
dots welcome toggleorENABLE_WELCOME=1 - Faster shell startup by default (<100ms)
- Previous behavior: Enabled by default with
~/.cache/welcome/.disabledflag - New behavior: Disabled by default with
~/.cache/welcome/.enabledflag
Removed¶
- Legacy Commands (19 total):
- Removed deprecated
dot-*aliases:dot-install,dot-update,dot-sync,dot-doctor,dot-check,dot-uninstall,dot-backup,dot-prune,dot-ssh,dot-shell - Removed standalone
cz*aliases:cz,cza,czd,cze,czu,czs,czr - Removed
dotlogalias (usedots log) - Removed
dothelpfunction (usedots help) - Removed
welcome-toggleandwelcome-statuscommands (usedots welcome toggle|status)
Added¶
- ADR Documentation: Created Architecture Decision Record for unified interface (ADR 006)
- Short Aliases: Power user shortcuts for common operations
dots cz a→ apply,dots cz d→ diff,dots cz s→ statusdots w→ welcome,dots w t→ toggle,dots w s→ statusdots i→ install,dots up→ update,dots dr→ doctor
Fixed¶
- Updated all documentation to reference new unified commands
docs/CHEATSHEET.md- Updated command referencedocs/TROUBLESHOOTING.md- Updated troubleshooting commandsdocs/TOOLS.md- Updated chezmoi sectionCLAUDE.md- Updated maintenance commands- Fixed failing test in
tests/functional.bats(dothelp → dots help) - Removed AI attribution from archived roadmap documentation
Testing¶
- Added 6 new tests for unified interface
dots czsubcommand testsdots logsubcommand tests- Removal verification tests for old commands
- All 41 tests passing
Migration¶
Old Command → New Command:
cza → dots cz apply (or: dots cz a)
czd → dots cz diff (or: dots cz d)
cze ~/.zshrc → dots cz edit ~/.zshrc
czs → dots cz status (or: dots cz s)
czr → dots cz reinit (or: dots cz r)
dotlog → dots log
dothelp → dots help
dot-install → dots install
dot-update → dots update
welcome-toggle → dots welcome toggle
welcome-status → dots welcome status
[1.3.0] - 2026-01-17¶
Fixed¶
- Critical Bugs:
- Mise Cache Bug: Fixed reversed logic in
.zshrc.tmplthat prevented cache updates after mise upgrades (used-otinstead of-nt) - FZF Aliases: Fixed quoting issues in
kpandcodaliases that broke with filenames containing spaces - CI Validation: Removed
continue-on-errorfrom test and health check steps to properly fail builds on errors - Security: Secured temp file handling in
setup-secretstask usingmktempwith restricted permissions - Robustness:
- Port Validation: Added numeric and range validation (1-65535) to
killport()function - Yazi Wrapper: Fixed race condition with temp file cleanup in
ya()function - Virtual Environment: Added activation script existence check in
vnv()function - Maintenance:
- Cleaned up commented-out tools in
mise.tomlwith clear documentation for platform-specific tools
Testing¶
- Added 6 new template variable expansion tests for chezmoi templates
- Added 8 new audit fix validation tests for aliases and functions
- Added 3 new tests for mise cache logic validation
- Total new tests: 17
Added¶
- Deployment Modes:
- Dotfiles-Only Deployment: New deployment mode for servers, containers, and shared systems that applies configuration files without installing system packages or provisioning tools
- Sparse Checkout Support: Documentation for minimal clones using git sparse checkout for faster deployment on slow networks
- Non-Interactive Setup: Support for CI/automation via
CI=1environment variable to skip interactive prompts - Shell Features:
- Virtual Environment Indicator: Python venvs now display in the Powerlevel10k prompt (e.g.,
(venv)) - Welcome Message Toggle: New
welcome-toggle,welcome-status, andwelcomecommands to control weather/quote display - AI Agent History Isolation: Automatic detection of AI coding agents (Claude Code, Codex, Gemini, Antigravity, etc.) with isolated history to prevent pollution of personal command history
- Yazi Shortcut: Added
yalias for yazi file manager (in addition to existingya) - Debugging:
- AI Environment Debug: New
aienvdebugcommand to discover AI-related environment variables - History Info: New
histinfofunction to show current history configuration and agent detection status
Changed¶
- Graceful Degradation: Added guard to
.zshrcfor missing mise env file, enabling dotfiles to work in environments without mise installed
Documentation¶
- Deployment Documentation: Added comprehensive "Quick Start" section to README with three deployment scenarios (full system, dotfiles-only, updates)
- Customization Guide: Added "Deployment Modes" section to
CUSTOMIZATION.mdexplaining full vs. dotfiles-only deployment - Development Guide: Updated
CLAUDE.mdwith dotfiles-only deployment commands and sparse checkout instructions
Testing¶
- Added 5 new tests for welcome message toggle functionality
- Added 10 new tests for AI agent detection and history isolation
- Added 4 new tests for new aliases and functions
[1.3.0] - 2026-01-17¶
Added¶
- Testing:
- Destructive Uninstall Tests: Added 3 new tests to verify
mise run uninstallactually removes symlinks, is idempotent, and safely skips non-symlink files - Restore Flow Verification: Added 3 new tests to verify backup → uninstall → restore cycles work correctly
- Documentation:
- Renovate Health Checks: Added comprehensive section to
RENOVATE.mdfor verifying dependency monitoring status - macOS Testing Strategy: Documented manual testing approach in
TESTING.mdwith pre-release checklist - macOS Checklist: Created
docs/macos-test-checklist.mdfor systematic pre-release verification
Coverage¶
- Test suite expanded to 331 tests (from 325)
- All backup/uninstall/restore flows now have behavioral verification
[1.2.0] - 2026-01-17¶
Added¶
- Documentation:
- Architecture Diagram: Enhanced Mermaid diagram in
docs/index.mdshowing complete bootstrap → chezmoi → mise flow with secrets management - ADR Backlog: Created 4 Architecture Decision Records:
002-chezmoi-dotfile-management.md: Document rationale for choosing Chezmoi003-mise-tool-management.md: Document decision to use Mise over asdf004-age-encryption.md: Document age encryption approach005-ci-pragmatism.md: Document pragmatic CI philosophy
- Profile Task: Exposed
scripts/profile-startupasmise run profilefor easy shell startup profiling - Testing:
- Behavioral Verification: Added behavioral tests to
backup.bats:- Verify backup creates timestamped directories
- Verify backup copies expected config files
- Verify uninstall dry-run doesn't remove files
Changed¶
- Cleanup: Removed stale TODO from
provision/windows/packages.toml(integration already complete)
[1.1.0] - 2026-01-17¶
Added¶
- Features:
- Secret Rotation: New
mise run rotate-secretstask to automate age key rotation. - Interactive Docs: Added
docs/CHEATSHEET.mdand GIF demos forfzf,lazygit,yazi. - macOS Parity: Added dedicated macOS support tests and doctor checks.
- Testing:
- Coverage: Implemented coverage enforcement (>80%) in CI.
- Wrappers: Added comprehensive tests for smart shell wrappers (
ps,df,du). - Performance:
- Profiling: Added
scripts/profile-startupfor Zsh benchmarking. - Optimization: Implemented lazy-loading for
atuin,zoxide, and cachedmiseactivation.
Changed¶
- Performance: Zsh startup time optimized to ~400ms (Best Effort).
- CI: Enhanced workflow to include coverage reporting and macOS smoke tests.
- Documentation: Overhauled
docs/TOOLS.mdwith visual demos and better formatting.
Fixed¶
- Doctor: Fixed missing checks for macOS-specific tools.
- Welcome: Optimized startup welcome message performance.
[1.0.0] - 2025-12-25¶
Added¶
- Initial stable release of dotfiles.