Skip to content

feat: isolate EH resource separation and registry symmetry (Phase 7-A) - #250

Merged
j4rviscmd merged 1 commit into
mainfrom
feat/isolated-eh-resources
Aug 3, 2026
Merged

feat: isolate EH resource separation and registry symmetry (Phase 7-A)#250
j4rviscmd merged 1 commit into
mainfrom
feat/isolated-eh-resources

Conversation

@j4rviscmd

Copy link
Copy Markdown
Owner

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

  • logsLocation / workspaceStorageHome separation (localIsolatedProcessExtensionHost.ts): the isolated EH now writes to <extHostLogsPath>/isolated/ and workspaceStorage-isolated/ (sibling), so it never contends with LocalProcess for the same storage lock nor gets reclaimed by VS Code's storage cleanup.
  • Conditional --skipWorkspaceStorageLock (extensionHostStarter.ts): applied only to non-isolated EHs; the isolated EH acquires the lock normally since its storage is now separated.
  • Registry symmetry (abstractExtensionService.ts): _resolveAndProcessExtensions now includes a LocalIsolatedProcess bucket in allExtensions, 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's myExtensions empty and breaking activation.

Verification

With coderm.languageHost.isolatedEnabled: true and coderm.languageHost.isolatedExtensions: ["vscode.typescript-language-features"]:

  • vscode.typescript-language-features activates in the isolated EH (visible in Running Extensions as LocalIsolatedProcess)
  • Hover and Go-to-Definition work on .ts/.tsx files
  • workspaceStorage-isolated/ is preserved (not reclaimed) and the storage lock is acquired without contention

Refs #246.

🤖 Generated with Claude Code

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>
@j4rviscmd j4rviscmd added the enhancement New feature or request label Aug 3, 2026
@j4rviscmd
j4rviscmd merged commit 410c28f into main Aug 3, 2026
3 checks passed
@j4rviscmd
j4rviscmd deleted the feat/isolated-eh-resources branch August 3, 2026 02:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant