Releases: serkanyersen/dotstate
Releases · serkanyersen/dotstate
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
v0.2.18
Full Changelog: v0.2.17...v0.2.18
Added
- Storage Setup: New unified storage setup screen with async GitHub flow, visual progress tracking, and edit token functionality in reconfiguration mode
- Fine Grained Tokens: Full support for github fine grained tokens, now you can limit the github token to only work with the storage repo. needs these configurations.
Fixed
- Deactivate: Fixed crash when deactivating directories containing symlinks; restore errors are now warnings instead of fatal
- Storage Setup: Improved error recovery - config resets to unconfigured state on failure, empty repos get default profile created
- Storage Setup: Fixed reconfiguration mode - Enter no longer triggers re-setup, disabled fields block input, token updates work with scoped tokens
- Storage Setup: Fixed global keybindings (q, t) being triggered while typing in text fields
- Storage Setup: Added support for fine-grained tokens (
github_pat_) with detailed permission help text - Sync: Fixed sync not detecting modified files (only untracked files were being detected)
- Git: Improved push error messages with token permission guidance for classic and fine-grained tokens
- Documentation: Updated README with detailed GitHub token setup guide
Removed
- GitHub Auth Screen: Removed legacy screen, replaced by new
StorageSetupScreen