feat: isolate EH resource separation and registry symmetry (Phase 7-A) - #250
Merged
Conversation
Phase 7-A prerequisite for Issue #246. Separates the isolated extension host storage/logs from LocalProcess and fixes the registry symmetry bug that silently dropped isolated extensions from the snapshot — the root cause of Phase 6's activation failure. - logsLocation and workspaceStorageHome are now isolated-specific so the isolated EH never contends with LocalProcess for the same storage lock - workspaceStorageHome uses a sibling dir (workspaceStorage-isolated/) to stay outside VS Code's storage cleanup scan - --skipWorkspaceStorageLock is applied only to non-isolated EHs; the isolated EH acquires the lock normally since its storage is separated - _resolveAndProcessExtensions now includes a LocalIsolatedProcess bucket in allExtensions, so isolated-routed extensions register symmetrically with LocalProcess/LocalWebWorker/Remote Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Aug 3, 2026
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.
Summary
Phase 7-A prerequisite for #246. Separates the isolated extension host's storage/logs from LocalProcess and fixes the registry symmetry bug that silently dropped isolated extensions from the snapshot — the root cause of Phase 6's activation failure.
Changes
localIsolatedProcessExtensionHost.ts): the isolated EH now writes to<extHostLogsPath>/isolated/andworkspaceStorage-isolated/(sibling), so it never contends with LocalProcess for the same storage lock nor gets reclaimed by VS Code's storage cleanup.--skipWorkspaceStorageLock(extensionHostStarter.ts): applied only to non-isolated EHs; the isolated EH acquires the lock normally since its storage is now separated.abstractExtensionService.ts):_resolveAndProcessExtensionsnow includes aLocalIsolatedProcessbucket inallExtensions, so isolated-routed extensions register symmetrically with LocalProcess/LocalWebWorker/Remote. Without this, isolated extensions (e.g.vscode.typescript-language-features) were dropped from the registry snapshot, leaving the isolated EH'smyExtensionsempty and breaking activation.Verification
With
coderm.languageHost.isolatedEnabled: trueandcoderm.languageHost.isolatedExtensions: ["vscode.typescript-language-features"]:vscode.typescript-language-featuresactivates in the isolated EH (visible in Running Extensions asLocalIsolatedProcess).ts/.tsxfilesworkspaceStorage-isolated/is preserved (not reclaimed) and the storage lock is acquired without contentionRefs #246.
🤖 Generated with Claude Code