Merged
Conversation
added 7 commits
February 18, 2026 14:31
- always define the read/write methods, but throw an error in them instead - ignore watch errors
allow to properly override the storage database for each scope
onora-hbl
approved these changes
Feb 19, 2026
Contributor
onora-hbl
left a comment
There was a problem hiding this comment.
Code looks good, thanks for that!
|
🎉 This PR is included in version 26.2.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
This PR adds 3 different features, which goal is to be able to store workspace-related data (editor layout, chat history...) outside of the default client IndexedDB database
Allow overriding environment uris
It allows to override the
workspaceStorageHomein particular. The default valuevscode-userdata:///User/workspaceStoragecan be replaced by anything else, likefile:///some-random-visible-directoryto make it accessible in the filesystem, or using any scheme after adding your custom FileSystemProvider on itImprovements of the storage service override
It now allows to properly register a StorageDatabase factory for each of the storage scope (application, profile, workspace)
The default IndexedDB database can then be replaced by a custom implementation, or with the provided
JsonFileStorageDatabasewhich allows to write the data as a json file at the given uriallow defining the workspace id
By default, the workspace id is generated by hashing the workspace uri. The workspace id is then used as a key for everything related to storage of workspace data.
This feature allows to force the workspace id regardless of the workspace uri