Skip to content

Phase 6: ExtensionHostKind.LocalIsolatedProcess の shell 追加 #245

Description

@j4rviscmd

目的

Extension Host を言語系拡張用の隔離プロセスに分割する基盤を追加する(EH 完全分離の第一歩)。

背景

Phase 0-5(PR #240-244)で Rust + tree-sitter ベースの Language Host を実装済み(documentSymbol/foldingRange/hover/definition/references/documentHighlights)。これは技術検証として位置づけ、本来の目的(EH プロセス分割)へ舵を切る。

スコープ

ExtensionHostKind.LocalIsolatedProcess = 4 の shell 追加(デフォルト無効、reversible)。10ファイル、~600行。

ブループリット

  1. extensionHostKind.ts: LocalIsolatedProcess=4 + toString case
  2. extensionRunningLocation.ts: LocalIsolatedProcessRunningLocation class + union
  3. extensionRunningLocationTracker.ts: _maxLocalIsolatedProcessAffinity + _doComputeRunningLocation に第三 bucket
  4. abstractExtensionService.ts: _startExtensionHostsIfNecessary location loop + _onExtensionHostCrashed に isolated kind branch
  5. nativeExtensionService.ts: factory switch + kind picker(coderm.languageHost.isolatedExtensions ルックアップ)
  6. localIsolatedProcessExtensionHost.ts 新規: localProcessExtensionHost.ts の clone(~600行)
  7. extensionHostStarter.ts (common): IExtensionHostProcessOptions に kind フィールド
  8. extensionHostStarter.ts (main): start() で kind branch(name/correlationId)
  9. languageHostConfiguration.ts: coderm.languageHost.isolatedEnabled + isolatedExtensions 設定登録
  10. README.md / README.ja.md

受入基準

  • isolatedEnabled=false(デフォルト)で挙動不変
  • isolatedEnabled=true + isolatedExtensions=["test-ext"] で、その拡張が isolated-extension-host プロセスで動く(Process Explorer で確認)

進捗

基盤3ファイル完了(extensionHostKind, extensionRunningLocation, tracker の _maxLocalIsolatedProcessAffinity)。残り8ファイル。worktree .worktrees/eh-isolated-shell で作業中。

依存

Phase 0-5(Language Host、PR #240-244)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions