You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(persistence): Migrate settings to persistent user data directory
Addresses a critical bug where `settings.json` was being deleted during auto-updates, leading to loss of user data.
This change:
- Ensures `settings.json` is always stored in the OS-standard, persistent user data directory.
- Implements a one-time migration process for existing users to move their `settings.json` from the application executable's directory to the new, safe location.
- Updates documentation to reflect the new data storage strategy and migration.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,11 @@
2
2
3
3
All notable changes to this project will be documented in this file.
4
4
5
+
## [0.2.2]
6
+
7
+
### Fixed
8
+
-**CRITICAL:** Fixed a major bug where `settings.json` was deleted during an auto-update, causing all user settings and repositories to be lost. The application now correctly stores all user data in the standard persistent user data directory. A one-time migration process has been added to automatically move existing settings for users updating from older versions.
Copy file name to clipboardExpand all lines: FUNCTIONAL_MANUAL.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,6 +119,8 @@ Click the **cog icon** in the header to access global settings.
119
119
-**Check for Pre-Releases:** If enabled, the auto-updater will include beta and other pre-release versions when checking for updates.
120
120
-**Enable Debug Logging:** Controls the verbose internal logging used by the Debug Panel. Disabling this may improve performance.
121
121
122
+
**Note on Data Safety:** All settings and repository configurations are stored in a safe location on your computer. This means your data will be automatically preserved when the application updates to a new version.
123
+
122
124
## 6. The Debug Panel
123
125
124
126
For advanced troubleshooting, a debug panel is available. You can open it by clicking the **"Debug"** button in the status bar at the very bottom of the window, or by pressing `Ctrl+D` (or `Cmd+D` on macOS).
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,7 @@ This application provides a simple, powerful dashboard to manage and automate th
17
17
-**Advanced Debugging:** A powerful debug console with log filtering and a save-to-file feature for in-depth troubleshooting.
18
18
-**Reliable Auto-Updates:** Get notified with a clear banner when a new version is ready and install it with a single click.
19
19
-**Easy Configuration:** Add new repositories and configure them through a simple, unified form.
20
+
-**Persistent & Safe Configuration:** All your settings and repository configurations are stored safely in a persistent location, ensuring they are never lost during application updates.
20
21
-**Global Settings:** Customize the application theme, icon set, notifications, and behavior like enabling pre-release updates or choosing your preferred web browser.
21
22
-**Cross-Platform:** Works on Windows, macOS, and Linux.
Copy file name to clipboardExpand all lines: TECHNICAL_MANUAL.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,10 +45,17 @@ The application is split into three main processes, which is standard for Electr
45
45
## 3. State Management and Data Flow
46
46
47
47
-**Primary State:** The root `App.tsx` component manages the entire application state, including the list of repositories, global settings, the active view, and the state of modals and panels. UI-specific state, such as the position and visibility of the right-click `ContextMenu`, is also managed here to ensure a single source of truth.
48
-
-**Persistence:** All application data, including repositories and global settings, is persisted to a single `settings.json` file in the application's user data directory. A `SettingsProvider` context handles loading this data on startup and saving it whenever it changes.
49
48
-**VCS State:**`App.tsx` also holds state for `detailedStatuses` and `branchLists` which are fetched periodically and after tasks complete to keep the UI in sync with the file system.
50
49
-**Parallel Task Execution:** To support running multiple tasks concurrently, a unique `executionId` is generated for each task run. This ID is passed between the renderer and main processes, allowing log output (`task-log`) and completion events (`task-step-end`) to be correctly routed to the appropriate repository and UI components without conflict.
51
50
51
+
### Data Persistence
52
+
53
+
All application data, including repositories and global settings, is persisted to a single `settings.json` file.
54
+
55
+
-**Location:** The file is stored in the standard application user data directory for your operating system (e.g., `%APPDATA%` on Windows, `~/Library/Application Support` on macOS). This ensures that user settings are preserved across application updates.
56
+
-**Management:** A `SettingsProvider` context handles loading this data on startup and saving it whenever it changes.
57
+
-**Migration:** A one-time migration process runs on startup to move `settings.json` for users updating from versions prior to `0.2.2`, where the file was incorrectly stored next to the application executable.
58
+
52
59
## 4. Development Workflow
53
60
54
61
1.**Installation:** Run `npm install` to install all dependencies.
0 commit comments