remove support for workspace extensions and migrations (#11324)

This commit is contained in:
Jacob MacDonald
2025-10-17 16:08:57 -07:00
committed by GitHub
parent 9b9ab60985
commit f4330c9f5e
19 changed files with 214 additions and 1063 deletions
@@ -9,7 +9,6 @@ import * as fs from 'node:fs';
import * as os from 'node:os';
import * as path from 'node:path';
import {
ExtensionStorage,
annotateActiveExtensions,
loadExtension,
} from '../../config/extension.js';
@@ -117,7 +116,7 @@ describe('useExtensionUpdates', () => {
const extension = annotateActiveExtensions(
[loadExtension({ extensionDir, workspaceDir: tempHomeDir })!],
tempHomeDir,
new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir()),
new ExtensionEnablementManager(),
)[0];
const addItem = vi.fn();
@@ -190,7 +189,7 @@ describe('useExtensionUpdates', () => {
})!,
],
tempHomeDir,
new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir()),
new ExtensionEnablementManager(),
);
const addItem = vi.fn();
@@ -1,76 +0,0 @@
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { useState, useEffect, useCallback, useMemo } from 'react';
import type { GeminiCLIExtension } from '@google/gemini-cli-core';
import { getWorkspaceExtensions } from '../../config/extension.js';
import { type LoadedSettings, SettingScope } from '../../config/settings.js';
import process from 'node:process';
export function useWorkspaceMigration(settings: LoadedSettings) {
const [showWorkspaceMigrationDialog, setShowWorkspaceMigrationDialog] =
useState(false);
const [workspaceExtensions, setWorkspaceExtensions] = useState<
GeminiCLIExtension[]
>([]);
useEffect(() => {
// Default to true if not set.
if (!(settings.merged.experimental?.extensionManagement ?? true)) {
return;
}
const cwd = process.cwd();
const extensions = getWorkspaceExtensions(cwd);
if (
extensions.length > 0 &&
!settings.merged.extensions?.workspacesWithMigrationNudge?.includes(cwd)
) {
setWorkspaceExtensions(extensions);
setShowWorkspaceMigrationDialog(true);
console.log(settings.merged.extensions);
}
}, [
settings.merged.extensions,
settings.merged.experimental?.extensionManagement,
]);
const onWorkspaceMigrationDialogOpen = useCallback(() => {
const userSettings = settings.forScope(SettingScope.User);
const extensionSettings = userSettings.settings.extensions || {
disabled: [],
};
const workspacesWithMigrationNudge =
extensionSettings.workspacesWithMigrationNudge || [];
const cwd = process.cwd();
if (!workspacesWithMigrationNudge.includes(cwd)) {
workspacesWithMigrationNudge.push(cwd);
}
extensionSettings.workspacesWithMigrationNudge =
workspacesWithMigrationNudge;
settings.setValue(SettingScope.User, 'extensions', extensionSettings);
}, [settings]);
const onWorkspaceMigrationDialogClose = useCallback(() => {
setShowWorkspaceMigrationDialog(false);
}, [setShowWorkspaceMigrationDialog]);
return useMemo(
() => ({
showWorkspaceMigrationDialog,
workspaceExtensions,
onWorkspaceMigrationDialogOpen,
onWorkspaceMigrationDialogClose,
}),
[
showWorkspaceMigrationDialog,
workspaceExtensions,
onWorkspaceMigrationDialogOpen,
onWorkspaceMigrationDialogClose,
],
);
}