Changelog
All notable changes to dotling are documented here.
Each release follows Keep a Changelog conventions: Added, Changed, Fixed, Removed.
v0.8.0
Changed
- Vault export/import — single encrypted bundle format —
vault exportnow writes a single encrypted bundle file instead of copying raw vault files.vault importdecrypts the bundle with your password and verifies the identity before writing. Old directory-based bundles are no longer compatible; re-export from your source machine after upgrading. - Encryption/decryption refactored —
encryptanddecryptnow operate in-place on tracked entries, consolidating file handling into shared helpers. Directory encryption uses the same pipeline as single-file encryption. - Fingerprint tracking for template entries — Templates now participate in the fingerprint store, enabling
statusandsync --dry-runto detect template drift without decrypting.
Removed
- Backup system — Removed the
dotling backupcommand, the--backupflag onsync, and all automatic backup-before-overwrite behavior.
Added
- Comprehensive roundtrip tests for encryption and decryption, and a full template sync lifecycle test suite.
v0.7.0
Added
- Shell completions (
dotling completions <SHELL>) — Generate tab-completion scripts for bash, zsh, fish, elvish, and powershell.
v0.6.2
Changed
- Module restructuring — Reorganized the codebase into a layered architecture with
core/,config/, andsync/top-level modules.
Fixed
- Minor formatting cleanup in the sync command hook error message.
v0.6.1
Added
dotling edit <entry>— Open any tracked file in your editor without manually decrypting and re-encrypting.
Fixed
- Hook retry logic — Hooks that fail are now retried up to 3 times before the sync is aborted.
v0.6.0
Added
- Dotfile templating (
dotling add --template,dotling vars) — Render machine-specific values into your dotfiles automatically. - Template syntax with
{{ var.key }}, built-in variables, environment variables, pipe filters, and whitespace control. dotling varssubcommand with seven actions: list, set, get, unset, check, import, export.- Bootstrap prompt for missing variables on new machines.
v0.5.0
Added
- Lifecycle hooks — Run custom commands before/after sync, globally or per-entry, with trust verification.
- Line-level three-way merge — Interactive merge option for copy-mode files during conflict resolution.
- Sync fingerprints — Blake2s-256 content hash tracking for encrypted and copy-mode entries.
dotling removeimprovements — Now restores tracked files to their original paths.
v0.4.0
Added
- Bidirectional
sync— Replaces the olddeploycommand. Syncs changes in both directions. - Recursive directory encryption —
encryptanddecryptnow handle entire directories.
Changed
removealways restores the original file and deletes the repo source.
v0.3.1
Fixed
- Vault architecture now correctly uses the master secret via key encapsulation.
- Absolute paths and
~-relative paths are resolved correctly during config lookups.
v0.3.0
Changed
- Rewrote core modules, replaced the printer with a UI layer, and simplified the CLI command structure.
v0.2.1
Added
- Automatic pull-back — modified entries are pulled back during push.
v0.2.0
Added
- Age-based encryption with key generation support.
- Core dotfiles management CLI and project scaffolding.
v0.1.0
Initial release.