Add support for sensitive keychain-stored per-extension settings (#11953)

This commit is contained in:
christine betts
2025-10-28 14:48:50 -04:00
committed by GitHub
parent ebac183f60
commit d2e8d8afbb
22 changed files with 706 additions and 212 deletions
@@ -17,7 +17,7 @@ interface DisableArgs {
scope?: string;
}
export function handleDisable(args: DisableArgs) {
export async function handleDisable(args: DisableArgs) {
const workspaceDir = process.cwd();
const extensionManager = new ExtensionManager({
workspaceDir,
@@ -25,13 +25,16 @@ export function handleDisable(args: DisableArgs) {
requestSetting: promptForSetting,
settings: loadSettings(workspaceDir).merged,
});
extensionManager.loadExtensions();
await extensionManager.loadExtensions();
try {
if (args.scope?.toLowerCase() === 'workspace') {
extensionManager.disableExtension(args.name, SettingScope.Workspace);
await extensionManager.disableExtension(
args.name,
SettingScope.Workspace,
);
} else {
extensionManager.disableExtension(args.name, SettingScope.User);
await extensionManager.disableExtension(args.name, SettingScope.User);
}
debugLogger.log(
`Extension "${args.name}" successfully disabled for scope "${args.scope}".`,