Repository navigation
feat: remember user configuration import/export folder - #3062
Merged
Merged
Conversation
Persist the last used user configuration folder and pass it as the default path of the native import/export dialogs, so the file picker reopens in the previously used folder across Agent restarts. Closes #3060
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3060.
Problem
The import/export file pickers always opened in the OS default folder (
~/) instead of the folder used previously.Solution
Route the user configuration import/export through Electron native dialogs that accept a
defaultPath, and persist the last used folder inelectron-settings(keyuser-config-folder) so it survives restarts. Both import and export update the remembered folder.uhk-common: newFileDialogIPC channels and dialog result types.uhk-agent: new main-processFileDialogServiceusingdialog.showOpenDialog/showSaveDialog, reading/writing the config file and persisting the folder.uhk-web: newFileDialogServiceabstraction with a browser default (file input + file-saver) and an Electron override (IPC), wired via DI.Notes
The pickers were already OS-native before, but
<input type="file">and the file-saver download offer no way to set the default path, which is why Electron'sdialogAPI is used for both.Testing
uhk-common,uhk-web(renderer + web) anduhk-agent.