11diff --git a/src/server/project.ts b/src/server/project.ts
2- index 88fa23c1bc..59eaae37d6 100644
2+ index 88fa23c1bc..2d8b70564d 100644
33--- a/src/server/project.ts
44+++ b/src/server/project.ts
55@@ -76,6 +76,7 @@ import {
@@ -52,7 +52,25 @@ index 88fa23c1bc..59eaae37d6 100644
5252 });
5353 }
5454
55- @@ -1690,8 +1700,12 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
55+ @@ -1449,7 +1459,16 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
56+ // (can reuse cached imports for files that were not changed)
57+ // 4. compilation settings were changed in the way that might affect module resolution - drop all caches and collect all data from the scratch
58+ if (hasNewProgram || changedFiles.length) {
59+ - this.lastCachedUnresolvedImportsList = getUnresolvedImports(this.program!, this.cachedUnresolvedImportsPerFile);
60+ + // tsgo-backed programs resolve modules in Go (their own
61+ + // resolution cache: getProgramResolutionInfo /
62+ + // getModuleExportMap), so the JS-side unresolved-import walk —
63+ + // which re-derives the same data through a whole-program RPC
64+ + // dump on every update — is skipped. Its only consumer is the
65+ + // typings installer (auto-install @types), which tsgo does not
66+ + // route through the JS resolver.
67+ + this.lastCachedUnresolvedImportsList = (this.program as any)?.isTsgoBackedProgram
68+ + ? emptyArray
69+ + : getUnresolvedImports(this.program!, this.cachedUnresolvedImportsPerFile);
70+ }
71+
72+ this.enqueueInstallTypingsForProject(hasAddedorRemovedFiles);
73+ @@ -1690,8 +1709,12 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
5674 const file = this.program!.getSourceFileByPath(path);
5775 const info = value.info;
5876 if (!file || value.info?.path === file.resolvedPath) return;
@@ -67,7 +85,7 @@ index 88fa23c1bc..59eaae37d6 100644
6785 info?.detachFromProject(this);
6886 });
6987
70- @@ -1956,6 +1970 ,14 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
88+ @@ -1956,6 +1979 ,14 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
7189
7290 /** @internal */
7391 print(writeProjectFileNames: boolean, writeFileExplaination: boolean, writeFileVersionAndText: boolean): void {
@@ -82,7 +100,7 @@ index 88fa23c1bc..59eaae37d6 100644
82100 this.writeLog(`Project '${this.projectName}' (${ProjectKind[this.projectKind]})`);
83101 this.writeLog(this.filesToStringWorker(
84102 writeProjectFileNames && this.projectService.logger.hasLevel(LogLevel.verbose),
85- @@ -2646,7 +2668 ,8 @@ export class AutoImportProviderProject extends Project {
103+ @@ -2646,7 +2677 ,8 @@ export class AutoImportProviderProject extends Project {
86104 }
87105 }
88106
@@ -92,7 +110,7 @@ index 88fa23c1bc..59eaae37d6 100644
92110 let referencesAddded = 0;
93111 if (references?.length && hostProject.projectService.getHostPreferences().includeCompletionsForModuleExports) {
94112 // Add direct referenced projects to rootFiles names
95- @@ -2729,6 +2752 ,27 @@ export class AutoImportProviderProject extends Project {
113+ @@ -2729,6 +2761 ,27 @@ export class AutoImportProviderProject extends Project {
96114 }
97115 });
98116 }
@@ -120,7 +138,7 @@ index 88fa23c1bc..59eaae37d6 100644
120138 }
121139
122140 /** @internal */
123- @@ -2751,10 +2795 ,20 @@ export class AutoImportProviderProject extends Project {
141+ @@ -2751,10 +2804 ,20 @@ export class AutoImportProviderProject extends Project {
124142 return undefined;
125143 }
126144
@@ -145,7 +163,7 @@ index 88fa23c1bc..59eaae37d6 100644
145163
146164 const rootNames = this.getRootFileNames(dependencySelection, hostProject, host, compilerOptions);
147165 if (!rootNames.length) {
148- @@ -2815,7 +2869 ,13 @@ export class AutoImportProviderProject extends Project {
166+ @@ -2815,7 +2878 ,13 @@ export class AutoImportProviderProject extends Project {
149167 this.rootFileNames = rootFileNames;
150168 const oldProgram = this.getCurrentProgram();
151169 const hasSameSetOfFiles = super.updateGraph();
0 commit comments