Skip to content

Releases: serkanyersen/dotstate

v0.3.2

30 Mar 09:29

Choose a tag to compare

New Contributors

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: list command groups files by source and shows inheritance chain; activate resolves 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_symlinks into their resolved-file counterparts, eliminating parallel code paths
  • Navigation: NavigateWithMessage payloads 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

17 Feb 06:09

Choose a tag to compare

Full Changelog: v0.3.0...v0.3.1

  • Manage Files: Add visual differentiation for custom files and ability to permanently remove inactive custom entries from the file list (closes #43)
  • Docs: Add profile workflow documentation to README and website (closes #42)

v0.3.0 New themes and Mouse Support

06 Feb 08:00

Choose a tag to compare

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
tokyonight-light tokyonight-dark cattppuccin-latte cattppuccin-mocha gruvbox-light gruvbox-dark

v0.2.25

05 Feb 07:03

Choose a tag to compare

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

05 Feb 06:13

Choose a tag to compare

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

03 Feb 08:00

Choose a tag to compare

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

02 Feb 08:25

Choose a tag to compare

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 list and packages check not populating cache
  • Main Menu: Fixed "requires setup" check using proper is_repo_configured()

v0.2.21

31 Jan 01:07

Choose a tag to compare

Full Changelog: v0.2.20...v0.2.21

Bug fix

v0.2.20

29 Jan 22:25

Choose a tag to compare

New Contributors

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

27 Jan 09:48

Choose a tag to compare

Full Changelog: v0.2.18...v0.2.19

Added

  • CLI: dotstate packages subcommand for managing packages from command line
    • packages list - List packages with installation status
    • packages add - Add packages interactively or via flags
    • packages remove - Remove packages by name or selection
    • packages check - Check installation status
    • packages install - Install all missing packages
    • All commands support --profile flag 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