Releases: serkanyersen/dotstate
Releases · serkanyersen/dotstate
v0.3.2
New Contributors
- @FlyinPancake made their first contribution in #46
Added
- Profile Inheritance: Profiles can now inherit from a parent profile with child-wins override semantics. Multi-level chaining (child → parent → grandparent), cycle detection, delete protection for inherited profiles, and rename propagation across the inheritance chain. Manifest auto-migrates from v1 to v2.
- Manage Profiles UI: Create popup includes "Inherits From" field with live parent selection; profile details show resolved file counts with source annotations (own / inherited / common)
- CLI:
listcommand groups files by source and shows inheritance chain;activateresolves the full inheritance chain
Changed
- Manage Profiles UI: "Inherits From" and "Copy From" are now mutually exclusive in the create popup — selecting one disables the other with descriptive labels ("live link to parent profile" vs "one-time file copy")
- Docs: Updated README, website, and CONTRIBUTING.md with profile inheritance documentation
Fixed
- Profile Switch: Atomic profile switching with rollback — if activating the new profile fails, the old profile's symlinks are restored automatically
- Symlink Manager: Deduplicated
activate_profile/ensure_profile_symlinksinto their resolved-file counterparts, eliminating parallel code paths - Navigation:
NavigateWithMessagepayloads are now shown in a dialog instead of being dropped - Backups: Switched backup session timestamps to filesystem-safe format (
YYYY-MM-DDTHH-MM-SS) - Tests: Made backup/symlink tests sandbox-safe using test-local paths instead of real home directory
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Full Changelog: v0.3.0...v0.3.1
v0.3.0 New themes and Mouse Support
Full Changelog: v0.2.25...v0.3.0
Added
- Mouse Support: Comprehensive mouse interactions across all screens — click to select, focus panes, scroll lists/previews, and interact with popup dialogs (Profile Create, Package Add/Edit, Package Import)
- Themes: Six new themes — Gruvbox Dark/Light, Catppuccin Mocha/Latte, and Tokyo Night Dark/Light
Fixed
- Sync Screen: Focus-based pane switching (Tab key) and mouse-targeted scrolling between file list and diff preview
- Scrolling: Preview panes and dialogs now clamp scroll offset to prevent infinite scrolling past content
Changed
- Settings: Renamed "Embed Credentials in URL" to "Token in Remote URL" with clearer description; hidden in local repo mode
- Themes: Simplified theme cycling logic

v0.2.25
Full Changelog: v0.2.24...v0.2.25
Fixed
- Git SSH: Use system git for SSH remote operations (fetch, push, pull, clone) to fix compatibility with 1Password SSH Agent, YubiKey Agent, Secretive, and other non-standard SSH agent implementations. HTTPS operations continue to use git2 as before. Resolves #41
v0.2.24
Full Changelog: v0.2.23...v0.2.24
Added
- Dialogs: Scrollable dialogs with keyboard navigation (↑↓/jk, PageUp/PageDown, Home) for viewing long content
Fixed
- Git Sync: Improved recovery from failed sync operations - commit is automatically undone on push failure to preserve staged changes
- Git Sync: Better error messages for push rejections - now captures and displays full git hook output
v0.2.23
Full Changelog: v0.2.22...v0.2.23
Added
- Settings: New "Embed Credentials in URL" toggle - allows disabling credential embedding in git remote URLs for environments that reject URLs with embedded tokens
Changed
- Profile Selection: Converted from full-screen to popup dialog during onboarding with inline profile creation and preview panel
Fixed
- Profile Selection: Fixed text input where global keybindings interfered with typing
- Git Sync: Fixed silent push failures - server-side rejections are now properly captured and reported
v0.2.22 Stability improvements
Full Changelog: v0.2.20...v0.2.22
Added
- File Versioning: Schema versioning for all config/data files with automatic migration on load. Files without a version field are treated as v0 and auto-migrated with backup safety.
- Atomic Saves: All config/data file saves now use atomic write (temp file + rename) to prevent corruption on crash.
Fixed
- Package Installation: Fixed Homebrew on custom installations, CLI output streaming, TUI responsiveness during install, and auto-scroll behavior
- Storage Setup: Fixed GitHub setup progress popup being clipped
- Packages CLI: Fixed
packages listandpackages checknot populating cache - Main Menu: Fixed "requires setup" check using proper
is_repo_configured()
v0.2.21
Full Changelog: v0.2.20...v0.2.21
Bug fix
v0.2.20
New Contributors
- @tangowithfoxtrot made their first contribution in #40
Full Changelog: v0.2.19...v0.2.20
Added
- feat: shell completions by @tangowithfoxtrot in #40
- Code Quality: Comprehensive clippy lint configuration with pedantic lints enabled
Changed
- Main Menu: Selection now persists when navigating back from sub-screens
Fixed
- Dotfile Selection: Added confirmation dialog when removing common files from sync
- Stability: Theme system recovers gracefully from RwLock poison instead of panicking
- Stability: Fixed potential race conditions in symlink metadata checks
v0.2.19
Full Changelog: v0.2.18...v0.2.19
Added
- CLI:
dotstate packagessubcommand for managing packages from command linepackages list- List packages with installation statuspackages add- Add packages interactively or via flagspackages remove- Remove packages by name or selectionpackages check- Check installation statuspackages install- Install all missing packages- All commands support
--profileflag for non-active profiles
- CLI: Modular CLI architecture with
src/cli/folder structure
Changed
- App Architecture: Major refactor of
app.rs- reduced from ~2400 to ~1400 lines (40% reduction) - Screens: Screens now handle their own actions via
process_action()methods with type-safe action enums