From 674719bb87d5e3e606cb11bc45597489729129b5 Mon Sep 17 00:00:00 2001 From: Koneru Charan Date: Sun, 25 Jan 2026 02:20:53 +0530 Subject: [PATCH 01/47] Feature:Sorted Collection within MongoDB --- src/tree/documentdb/ClusterItemBase.ts | 3 +++ src/tree/documentdb/DatabaseItem.ts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/tree/documentdb/ClusterItemBase.ts b/src/tree/documentdb/ClusterItemBase.ts index 6af4468fe..dc7acf8e8 100644 --- a/src/tree/documentdb/ClusterItemBase.ts +++ b/src/tree/documentdb/ClusterItemBase.ts @@ -156,6 +156,9 @@ export abstract class ClusterItemBase ]; } + // Sort databases alphabetically by name + databases.sort((a, b) => a.name.localeCompare(b.name)); + // Map the databases to DatabaseItem elements return databases.map((database) => new DatabaseItem(this.cluster, database)); }); diff --git a/src/tree/documentdb/DatabaseItem.ts b/src/tree/documentdb/DatabaseItem.ts index a749803b9..71b937abe 100644 --- a/src/tree/documentdb/DatabaseItem.ts +++ b/src/tree/documentdb/DatabaseItem.ts @@ -49,6 +49,9 @@ export class DatabaseItem implements TreeElement, TreeElementWithExperience, Tre ]; } + // Sort collections alphabetically by name + collections.sort((a, b) => a.name.localeCompare(b.name)); + return collections.map((collection) => { const collectionItem = new CollectionItem(this.cluster, this.databaseInfo, collection); // Start loading document count in background (fire-and-forget) From 481ebd192932b288addba78c8dbc17fc59d70d1f Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Tue, 27 Jan 2026 13:15:30 +0100 Subject: [PATCH 02/47] fix: improve alphabetical sorting with numeric comparison for various prompts and items --- src/commands/addDiscoveryRegistry/PromptRegistryStep.ts | 2 +- .../chooseDataMigrationExtension.ts | 2 +- .../connections-view/moveItems/PromptTargetFolderStep.ts | 2 +- src/commands/newConnection/PromptServiceDiscoveryStep.ts | 2 +- src/commands/newConnection/PromptTenantStep.ts | 2 +- src/commands/updateCredentials/PromptTenantStep.ts | 2 +- .../azure/credentialsManagement/AccountTenantsStep.ts | 2 +- .../azure/credentialsManagement/SelectAccountStep.ts | 4 +++- .../azure/subscriptionFiltering/FilterSubscriptionSubStep.ts | 2 +- .../azure/subscriptionFiltering/InitializeFilteringStep.ts | 2 +- src/plugins/api-shared/azure/wizard/SelectSubscriptionStep.ts | 2 +- .../discovery-tree/AzureMongoRUServiceRootItem.ts | 2 +- .../discovery-tree/AzureMongoRUSubscriptionItem.ts | 2 +- .../discovery-wizard/SelectRUClusterStep.ts | 2 +- .../discovery-tree/AzureServiceRootItem.ts | 2 +- .../discovery-tree/AzureSubscriptionItem.ts | 2 +- .../discovery-wizard/SelectClusterStep.ts | 2 +- .../service-azure-vm/discovery-tree/AzureServiceRootItem.ts | 2 +- .../service-azure-vm/discovery-tree/AzureSubscriptionItem.ts | 4 +++- src/plugins/service-azure-vm/discovery-wizard/SelectVMStep.ts | 2 +- src/tree/connections-view/ConnectionsBranchDataProvider.ts | 4 ++-- src/tree/connections-view/FolderItem.ts | 4 ++-- .../connections-view/LocalEmulators/LocalEmulatorsItem.ts | 4 ++-- src/tree/discovery-view/DiscoveryBranchDataProvider.ts | 2 +- src/tree/documentdb/ClusterItemBase.ts | 2 +- src/tree/documentdb/DatabaseItem.ts | 2 +- src/tree/documentdb/IndexesItem.ts | 2 +- 27 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/commands/addDiscoveryRegistry/PromptRegistryStep.ts b/src/commands/addDiscoveryRegistry/PromptRegistryStep.ts index 3c53c3c18..650b66bfb 100644 --- a/src/commands/addDiscoveryRegistry/PromptRegistryStep.ts +++ b/src/commands/addDiscoveryRegistry/PromptRegistryStep.ts @@ -30,7 +30,7 @@ export class PromptRegistryStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); if (promptItems.length === 0) { promptItems.push({ diff --git a/src/commands/chooseDataMigrationExtension/chooseDataMigrationExtension.ts b/src/commands/chooseDataMigrationExtension/chooseDataMigrationExtension.ts index 4d90ed401..401dff3f7 100644 --- a/src/commands/chooseDataMigrationExtension/chooseDataMigrationExtension.ts +++ b/src/commands/chooseDataMigrationExtension/chooseDataMigrationExtension.ts @@ -26,7 +26,7 @@ export async function chooseDataMigrationExtension(context: IActionContext, node alwaysShow: true, })) // Sort alphabetically - .sort((a, b) => a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); const commonItems = [ // { diff --git a/src/commands/connections-view/moveItems/PromptTargetFolderStep.ts b/src/commands/connections-view/moveItems/PromptTargetFolderStep.ts index b5316601d..50b235d25 100644 --- a/src/commands/connections-view/moveItems/PromptTargetFolderStep.ts +++ b/src/commands/connections-view/moveItems/PromptTargetFolderStep.ts @@ -86,7 +86,7 @@ export class PromptTargetFolderStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); // Alphabetical sort + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); // Alphabetical sort // Determine if ALL source items are currently at root level const allItemsAtRoot = context.itemsToMove.every((item) => item.properties.parentId === undefined); diff --git a/src/commands/newConnection/PromptServiceDiscoveryStep.ts b/src/commands/newConnection/PromptServiceDiscoveryStep.ts index c3a96e850..9d9b88010 100644 --- a/src/commands/newConnection/PromptServiceDiscoveryStep.ts +++ b/src/commands/newConnection/PromptServiceDiscoveryStep.ts @@ -23,7 +23,7 @@ export class PromptServiceDiscoveryStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); const selectedItem = await context.ui.showQuickPick( [ diff --git a/src/commands/newConnection/PromptTenantStep.ts b/src/commands/newConnection/PromptTenantStep.ts index 853f82b0e..e0ce37bae 100644 --- a/src/commands/newConnection/PromptTenantStep.ts +++ b/src/commands/newConnection/PromptTenantStep.ts @@ -129,7 +129,7 @@ export class PromptTenantStep extends AzureWizardPromptStep { const aName = a.tenant.displayName ?? a.tenant.tenantId ?? ''; const bName = b.tenant.displayName ?? b.tenant.tenantId ?? ''; - return aName.localeCompare(bName); + return aName.localeCompare(bName, undefined, { numeric: true }); }); const tenantItems: TenantQuickPickItem[] = sortedTenants.map(({ tenant, isSignedIn }) => ({ diff --git a/src/plugins/api-shared/azure/credentialsManagement/SelectAccountStep.ts b/src/plugins/api-shared/azure/credentialsManagement/SelectAccountStep.ts index 377093bad..dae504da3 100644 --- a/src/plugins/api-shared/azure/credentialsManagement/SelectAccountStep.ts +++ b/src/plugins/api-shared/azure/credentialsManagement/SelectAccountStep.ts @@ -166,7 +166,9 @@ export class SelectAccountStep extends AzureWizardPromptStep a.account.label.localeCompare(b.account.label)); + return Array.from(accountMap.values()).sort((a, b) => + a.account.label.localeCompare(b.account.label, undefined, { numeric: true }), + ); } catch (error) { ext.outputChannel.error( l10n.t( diff --git a/src/plugins/api-shared/azure/subscriptionFiltering/FilterSubscriptionSubStep.ts b/src/plugins/api-shared/azure/subscriptionFiltering/FilterSubscriptionSubStep.ts index 3d8d889de..961409cfd 100644 --- a/src/plugins/api-shared/azure/subscriptionFiltering/FilterSubscriptionSubStep.ts +++ b/src/plugins/api-shared/azure/subscriptionFiltering/FilterSubscriptionSubStep.ts @@ -87,7 +87,7 @@ export class FilterSubscriptionSubStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); const selectedItems = await context.ui.showQuickPick(subscriptionItems, { stepName: 'filterSubscriptions', diff --git a/src/plugins/api-shared/azure/subscriptionFiltering/InitializeFilteringStep.ts b/src/plugins/api-shared/azure/subscriptionFiltering/InitializeFilteringStep.ts index ebefde738..dc31f4cdd 100644 --- a/src/plugins/api-shared/azure/subscriptionFiltering/InitializeFilteringStep.ts +++ b/src/plugins/api-shared/azure/subscriptionFiltering/InitializeFilteringStep.ts @@ -82,7 +82,7 @@ export class InitializeFilteringStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); // Add edit entry at the top return [ diff --git a/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUServiceRootItem.ts b/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUServiceRootItem.ts index 7a38c8884..a1b3f2c0d 100644 --- a/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUServiceRootItem.ts +++ b/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUServiceRootItem.ts @@ -85,7 +85,7 @@ export class AzureMongoRUServiceRootItem return ( subscriptions // sort by name - .sort((a, b) => a.name.localeCompare(b.name)) + .sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })) // map to AzureMongoRUSubscriptionItem .map((sub) => { return new AzureMongoRUSubscriptionItem( diff --git a/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUSubscriptionItem.ts b/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUSubscriptionItem.ts index dbc50893d..e57ec122d 100644 --- a/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUSubscriptionItem.ts +++ b/src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUSubscriptionItem.ts @@ -54,7 +54,7 @@ export class AzureMongoRUSubscriptionItem implements TreeElement, TreeElementWit context.telemetry.measurements.discoveryLoadTimeMs = Date.now() - startTime; return accounts - .sort((a, b) => (a.name || '').localeCompare(b.name || '')) + .sort((a, b) => (a.name || '').localeCompare(b.name || '', undefined, { numeric: true })) .map((account) => { const resourceId = nonNullProp(account, 'id', 'account.id', 'AzureMongoRUSubscriptionItem.ts'); diff --git a/src/plugins/service-azure-mongo-ru/discovery-wizard/SelectRUClusterStep.ts b/src/plugins/service-azure-mongo-ru/discovery-wizard/SelectRUClusterStep.ts index 8b000b8fd..eafc61033 100644 --- a/src/plugins/service-azure-mongo-ru/discovery-wizard/SelectRUClusterStep.ts +++ b/src/plugins/service-azure-mongo-ru/discovery-wizard/SelectRUClusterStep.ts @@ -50,7 +50,7 @@ export class SelectRUClusterStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); return promptItems; }; diff --git a/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureServiceRootItem.ts b/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureServiceRootItem.ts index a84bc9af6..ffd242318 100644 --- a/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureServiceRootItem.ts +++ b/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureServiceRootItem.ts @@ -84,7 +84,7 @@ export class AzureServiceRootItem implements TreeElement, TreeElementWithContext return ( subscriptions // sort by name - .sort((a, b) => a.name.localeCompare(b.name)) + .sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })) // map to AzureSubscriptionItem .map((sub) => { return new AzureSubscriptionItem( diff --git a/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureSubscriptionItem.ts b/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureSubscriptionItem.ts index e520c027c..640a389ea 100644 --- a/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureSubscriptionItem.ts +++ b/src/plugins/service-azure-mongo-vcore/discovery-tree/AzureSubscriptionItem.ts @@ -56,7 +56,7 @@ export class AzureSubscriptionItem implements TreeElement, TreeElementWithContex context.telemetry.measurements.discoveryLoadTimeMs = Date.now() - startTime; return accounts - .sort((a, b) => (a.name || '').localeCompare(b.name || '')) + .sort((a, b) => (a.name || '').localeCompare(b.name || '', undefined, { numeric: true })) .map((account) => { const resourceId = nonNullProp(account, 'id', 'account.id', 'AzureSubscriptionItem.ts'); diff --git a/src/plugins/service-azure-mongo-vcore/discovery-wizard/SelectClusterStep.ts b/src/plugins/service-azure-mongo-vcore/discovery-wizard/SelectClusterStep.ts index 8377e3ed3..c42a81be3 100644 --- a/src/plugins/service-azure-mongo-vcore/discovery-wizard/SelectClusterStep.ts +++ b/src/plugins/service-azure-mongo-vcore/discovery-wizard/SelectClusterStep.ts @@ -45,7 +45,7 @@ export class SelectClusterStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); return promptItems; }; diff --git a/src/plugins/service-azure-vm/discovery-tree/AzureServiceRootItem.ts b/src/plugins/service-azure-vm/discovery-tree/AzureServiceRootItem.ts index db8aad92b..2e413bd70 100644 --- a/src/plugins/service-azure-vm/discovery-tree/AzureServiceRootItem.ts +++ b/src/plugins/service-azure-vm/discovery-tree/AzureServiceRootItem.ts @@ -83,7 +83,7 @@ export class AzureServiceRootItem implements TreeElement, TreeElementWithContext return ( subscriptions // sort by name - .sort((a, b) => a.name.localeCompare(b.name)) + .sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })) // map to AzureSubscriptionItem .map((sub) => { return new AzureSubscriptionItem( diff --git a/src/plugins/service-azure-vm/discovery-tree/AzureSubscriptionItem.ts b/src/plugins/service-azure-vm/discovery-tree/AzureSubscriptionItem.ts index 42bb50fdd..820512f9e 100644 --- a/src/plugins/service-azure-vm/discovery-tree/AzureSubscriptionItem.ts +++ b/src/plugins/service-azure-vm/discovery-tree/AzureSubscriptionItem.ts @@ -124,7 +124,9 @@ export class AzureSubscriptionItem implements TreeElement, TreeElementWithContex context.telemetry.measurements.discoveryResourcesCount = vmItems.length; context.telemetry.measurements.discoveryLoadTimeMs = Date.now() - startTime; - return vmItems.sort((a, b) => a.cluster.name.localeCompare(b.cluster.name)); + return vmItems.sort((a, b) => + a.cluster.name.localeCompare(b.cluster.name, undefined, { numeric: true }), + ); }, ); } diff --git a/src/plugins/service-azure-vm/discovery-wizard/SelectVMStep.ts b/src/plugins/service-azure-vm/discovery-wizard/SelectVMStep.ts index f18d2a7d4..39248efa5 100644 --- a/src/plugins/service-azure-vm/discovery-wizard/SelectVMStep.ts +++ b/src/plugins/service-azure-vm/discovery-wizard/SelectVMStep.ts @@ -124,7 +124,7 @@ export class SelectVMStep extends AzureWizardPromptStep a.label.localeCompare(b.label)); + return taggedVms.sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true })); }; const selectedVMItem = await context.ui.showQuickPick(getVMQuickPickItems(), { diff --git a/src/tree/connections-view/ConnectionsBranchDataProvider.ts b/src/tree/connections-view/ConnectionsBranchDataProvider.ts index a8cc9e4c9..4e6285977 100644 --- a/src/tree/connections-view/ConnectionsBranchDataProvider.ts +++ b/src/tree/connections-view/ConnectionsBranchDataProvider.ts @@ -150,10 +150,10 @@ export class ConnectionsBranchDataProvider extends BaseExtendedTreeDataProvider< }); // Sort folders alphabetically by name - clusterFolderItems.sort((a, b) => a.name.localeCompare(b.name)); + clusterFolderItems.sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })); // Sort connections alphabetically by name - clusterItems.sort((a, b) => a.cluster.name.localeCompare(b.cluster.name)); + clusterItems.sort((a, b) => a.cluster.name.localeCompare(b.cluster.name, undefined, { numeric: true })); // Show "New Connection" only if there are no cluster folders or connections // (don't count the LocalEmulatorsItem - it's always shown) diff --git a/src/tree/connections-view/FolderItem.ts b/src/tree/connections-view/FolderItem.ts index c5d1a94b1..602f3b812 100644 --- a/src/tree/connections-view/FolderItem.ts +++ b/src/tree/connections-view/FolderItem.ts @@ -110,14 +110,14 @@ export class FolderItem implements TreeElement, TreeElementWithContextValue { folderElements.sort((a, b) => { const aName = (a as FolderItem).name; const bName = (b as FolderItem).name; - return aName.localeCompare(bName); + return aName.localeCompare(bName, undefined, { numeric: true }); }); // Sort connections alphabetically by name connectionElements.sort((a, b) => { const aName = (a as DocumentDBClusterItem).cluster.name; const bName = (b as DocumentDBClusterItem).cluster.name; - return aName.localeCompare(bName); + return aName.localeCompare(bName, undefined, { numeric: true }); }); // Return folders first, then connections diff --git a/src/tree/connections-view/LocalEmulators/LocalEmulatorsItem.ts b/src/tree/connections-view/LocalEmulators/LocalEmulatorsItem.ts index 104d90844..72acbb020 100644 --- a/src/tree/connections-view/LocalEmulators/LocalEmulatorsItem.ts +++ b/src/tree/connections-view/LocalEmulators/LocalEmulatorsItem.ts @@ -69,10 +69,10 @@ export class LocalEmulatorsItem implements TreeElement, TreeElementWithContextVa }); // Sort folders alphabetically by name - folderItems.sort((a, b) => a.name.localeCompare(b.name)); + folderItems.sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })); // Sort connections alphabetically by name - connectionItems.sort((a, b) => a.cluster.name.localeCompare(b.cluster.name)); + connectionItems.sort((a, b) => a.cluster.name.localeCompare(b.cluster.name, undefined, { numeric: true })); // Show "New Local Connection" only if there are no folders or connections const hasItems = folderItems.length > 0 || connectionItems.length > 0; diff --git a/src/tree/discovery-view/DiscoveryBranchDataProvider.ts b/src/tree/discovery-view/DiscoveryBranchDataProvider.ts index b4f4af51a..985022141 100644 --- a/src/tree/discovery-view/DiscoveryBranchDataProvider.ts +++ b/src/tree/discovery-view/DiscoveryBranchDataProvider.ts @@ -145,7 +145,7 @@ export class DiscoveryBranchDataProvider extends BaseExtendedTreeDataProvider a.id?.localeCompare(b.id ?? '') ?? 0); + return rootItems.sort((a, b) => a.id?.localeCompare(b.id ?? '', undefined, { numeric: true }) ?? 0); } /** diff --git a/src/tree/documentdb/ClusterItemBase.ts b/src/tree/documentdb/ClusterItemBase.ts index dc7acf8e8..6432b1e1e 100644 --- a/src/tree/documentdb/ClusterItemBase.ts +++ b/src/tree/documentdb/ClusterItemBase.ts @@ -157,7 +157,7 @@ export abstract class ClusterItemBase } // Sort databases alphabetically by name - databases.sort((a, b) => a.name.localeCompare(b.name)); + databases.sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })); // Map the databases to DatabaseItem elements return databases.map((database) => new DatabaseItem(this.cluster, database)); diff --git a/src/tree/documentdb/DatabaseItem.ts b/src/tree/documentdb/DatabaseItem.ts index 71b937abe..e686e1aa2 100644 --- a/src/tree/documentdb/DatabaseItem.ts +++ b/src/tree/documentdb/DatabaseItem.ts @@ -50,7 +50,7 @@ export class DatabaseItem implements TreeElement, TreeElementWithExperience, Tre } // Sort collections alphabetically by name - collections.sort((a, b) => a.name.localeCompare(b.name)); + collections.sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })); return collections.map((collection) => { const collectionItem = new CollectionItem(this.cluster, this.databaseInfo, collection); diff --git a/src/tree/documentdb/IndexesItem.ts b/src/tree/documentdb/IndexesItem.ts index d278c3fb9..a887a5160 100644 --- a/src/tree/documentdb/IndexesItem.ts +++ b/src/tree/documentdb/IndexesItem.ts @@ -48,7 +48,7 @@ export class IndexesItem implements TreeElement, TreeElementWithExperience, Tree } // Sort indexes by name - indexes.sort((a, b) => a.name.localeCompare(b.name)); + indexes.sort((a, b) => a.name.localeCompare(b.name, undefined, { numeric: true })); return indexes.map((index) => { return new IndexItem(this.cluster, this.databaseInfo, this.collectionInfo, index); From bccd9747b7caddbc58658e6b2f7c4ee4f079de0e Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Fri, 6 Feb 2026 22:38:06 +0100 Subject: [PATCH 03/47] fix: trim whitespace from collection and database names before validation --- src/commands/createCollection/CollectionNameStep.ts | 2 ++ src/commands/createDatabase/DatabaseNameStep.ts | 2 ++ src/commands/pasteCollection/PromptNewCollectionNameStep.ts | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/commands/createCollection/CollectionNameStep.ts b/src/commands/createCollection/CollectionNameStep.ts index 682d5750d..1ed0210db 100644 --- a/src/commands/createCollection/CollectionNameStep.ts +++ b/src/commands/createCollection/CollectionNameStep.ts @@ -64,6 +64,8 @@ export class CollectionNameStep extends AzureWizardPromptStep { + name = name.trim(); + if (name.length === 0) { return l10n.t('Collection name is required.'); } diff --git a/src/commands/createDatabase/DatabaseNameStep.ts b/src/commands/createDatabase/DatabaseNameStep.ts index abd0a6f06..33c0876f9 100644 --- a/src/commands/createDatabase/DatabaseNameStep.ts +++ b/src/commands/createDatabase/DatabaseNameStep.ts @@ -60,6 +60,8 @@ export class DatabaseNameStep extends AzureWizardPromptStep { + name = name.trim(); + if (name.length === 0) { return l10n.t('Database name is required.'); } diff --git a/src/commands/pasteCollection/PromptNewCollectionNameStep.ts b/src/commands/pasteCollection/PromptNewCollectionNameStep.ts index d1b613774..c28d937c6 100644 --- a/src/commands/pasteCollection/PromptNewCollectionNameStep.ts +++ b/src/commands/pasteCollection/PromptNewCollectionNameStep.ts @@ -153,6 +153,8 @@ export class PromptNewCollectionNameStep extends AzureWizardPromptStep { + name = name.trim(); + if (name.length === 0) { return l10n.t('Collection name is required.'); } From 3fbb29d224249374e5412f9f23786a598c08f38f Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Fri, 6 Feb 2026 22:41:34 +0100 Subject: [PATCH 04/47] fix: reject empty connection string in update connection string command --- src/commands/updateConnectionString/ConnectionStringStep.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/updateConnectionString/ConnectionStringStep.ts b/src/commands/updateConnectionString/ConnectionStringStep.ts index 4cb451655..245132b86 100644 --- a/src/commands/updateConnectionString/ConnectionStringStep.ts +++ b/src/commands/updateConnectionString/ConnectionStringStep.ts @@ -28,8 +28,9 @@ export class ConnectionStringStep extends AzureWizardPromptStep Date: Fri, 6 Feb 2026 22:42:25 +0100 Subject: [PATCH 05/47] fix: trim username after input in new connection wizard --- src/commands/newConnection/PromptUsernameStep.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/commands/newConnection/PromptUsernameStep.ts b/src/commands/newConnection/PromptUsernameStep.ts index 139090ee9..8f3d30418 100644 --- a/src/commands/newConnection/PromptUsernameStep.ts +++ b/src/commands/newConnection/PromptUsernameStep.ts @@ -29,10 +29,13 @@ export class PromptUsernameStep extends AzureWizardPromptStep Date: Fri, 6 Feb 2026 22:43:06 +0100 Subject: [PATCH 06/47] fix: do not trim password in new local connection wizard --- src/commands/newLocalConnection/PromptPasswordStep.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/newLocalConnection/PromptPasswordStep.ts b/src/commands/newLocalConnection/PromptPasswordStep.ts index 2d07b5d96..cfce59290 100644 --- a/src/commands/newLocalConnection/PromptPasswordStep.ts +++ b/src/commands/newLocalConnection/PromptPasswordStep.ts @@ -16,7 +16,7 @@ export class PromptPasswordStep extends AzureWizardPromptStep Date: Fri, 6 Feb 2026 22:43:47 +0100 Subject: [PATCH 07/47] fix: do not trim password in update credentials command --- src/commands/updateCredentials/PromptPasswordStep.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/commands/updateCredentials/PromptPasswordStep.ts b/src/commands/updateCredentials/PromptPasswordStep.ts index c7f3f69e3..659dce690 100644 --- a/src/commands/updateCredentials/PromptPasswordStep.ts +++ b/src/commands/updateCredentials/PromptPasswordStep.ts @@ -19,14 +19,12 @@ export class PromptPasswordStep extends AzureWizardPromptStep Date: Fri, 6 Feb 2026 22:44:28 +0100 Subject: [PATCH 08/47] fix: do not trim password in authenticate wizard --- .../wizards/authenticate/ProvidePasswordStep.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/documentdb/wizards/authenticate/ProvidePasswordStep.ts b/src/documentdb/wizards/authenticate/ProvidePasswordStep.ts index b5e405fa6..d55a20374 100644 --- a/src/documentdb/wizards/authenticate/ProvidePasswordStep.ts +++ b/src/documentdb/wizards/authenticate/ProvidePasswordStep.ts @@ -24,15 +24,13 @@ export class ProvidePasswordStep extends AzureWizardPromptStep Date: Fri, 6 Feb 2026 22:45:13 +0100 Subject: [PATCH 09/47] fix: do not trim password during validation in new connection wizard --- src/commands/newConnection/PromptPasswordStep.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/newConnection/PromptPasswordStep.ts b/src/commands/newConnection/PromptPasswordStep.ts index 872e9a44e..8335c68d6 100644 --- a/src/commands/newConnection/PromptPasswordStep.ts +++ b/src/commands/newConnection/PromptPasswordStep.ts @@ -36,7 +36,7 @@ export class PromptPasswordStep extends AzureWizardPromptStep Date: Fri, 6 Feb 2026 22:45:56 +0100 Subject: [PATCH 10/47] fix: add explicit empty check for mongo-ru emulator connection string --- .../mongo-ru/PromptMongoRUEmulatorConnectionStringStep.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/commands/newLocalConnection/mongo-ru/PromptMongoRUEmulatorConnectionStringStep.ts b/src/commands/newLocalConnection/mongo-ru/PromptMongoRUEmulatorConnectionStringStep.ts index 6cee8eb90..f1dc91f81 100644 --- a/src/commands/newLocalConnection/mongo-ru/PromptMongoRUEmulatorConnectionStringStep.ts +++ b/src/commands/newLocalConnection/mongo-ru/PromptMongoRUEmulatorConnectionStringStep.ts @@ -34,6 +34,14 @@ export class PromptMongoRUEmulatorConnectionStringStep extends AzureWizardPrompt //eslint-disable-next-line @typescript-eslint/require-await private async validateConnectionString(connectionString: string): Promise { + connectionString = connectionString ? connectionString.trim() : ''; + + if (connectionString.length === 0) { + return l10n.t('Invalid Connection String: {error}', { + error: l10n.t('Connection string cannot be empty.'), + }); + } + try { new DocumentDBConnectionString(connectionString); } catch (error) { From 7fb2085c4d1469e07afd70bbab1a3c36eeab45de Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Fri, 6 Feb 2026 22:46:41 +0100 Subject: [PATCH 11/47] fix: add empty validation for username in new local connection wizard --- src/commands/newLocalConnection/PromptUsernameStep.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/commands/newLocalConnection/PromptUsernameStep.ts b/src/commands/newLocalConnection/PromptUsernameStep.ts index 7aa338c03..bf5da50da 100644 --- a/src/commands/newLocalConnection/PromptUsernameStep.ts +++ b/src/commands/newLocalConnection/PromptUsernameStep.ts @@ -14,6 +14,13 @@ export class PromptUsernameStep extends AzureWizardPromptStep { + if (!username || username.trim().length === 0) { + return l10n.t('Username cannot be empty'); + } + return undefined; + }, }); context.userName = username.trim(); From db21ef7ac7c7370ee3595f7e081ab988e4a7fd7f Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Fri, 6 Feb 2026 22:47:22 +0100 Subject: [PATCH 12/47] fix: add empty validation for username in update credentials command --- src/commands/updateCredentials/PromptUserNameStep.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/commands/updateCredentials/PromptUserNameStep.ts b/src/commands/updateCredentials/PromptUserNameStep.ts index 182f321a3..93cef79f5 100644 --- a/src/commands/updateCredentials/PromptUserNameStep.ts +++ b/src/commands/updateCredentials/PromptUserNameStep.ts @@ -15,6 +15,13 @@ export class PromptUserNameStep extends AzureWizardPromptStep { + if (!username || username.trim().length === 0) { + return l10n.t('Username cannot be empty'); + } + return undefined; + }, }); const trimmedUsername = username.trim(); From 803588fefa3edc98788429b84442bc57d8eebf6a Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Fri, 6 Feb 2026 22:48:03 +0100 Subject: [PATCH 13/47] fix: add empty validation for username in authenticate wizard --- src/documentdb/wizards/authenticate/ProvideUsernameStep.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/documentdb/wizards/authenticate/ProvideUsernameStep.ts b/src/documentdb/wizards/authenticate/ProvideUsernameStep.ts index f5b604964..903c40a7a 100644 --- a/src/documentdb/wizards/authenticate/ProvideUsernameStep.ts +++ b/src/documentdb/wizards/authenticate/ProvideUsernameStep.ts @@ -17,6 +17,13 @@ export class ProvideUserNameStep extends AzureWizardPromptStep { + if (!username || username.trim().length === 0) { + return l10n.t('Username cannot be empty'); + } + return undefined; + }, }); const trimmedUsername = username.trim(); From a1dd34ef94f4834da7c96441786ef5497306afa8 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Fri, 6 Feb 2026 22:56:13 +0100 Subject: [PATCH 14/47] fix: include original username in values to mask for new connection wizard --- src/commands/newConnection/PromptUsernameStep.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/newConnection/PromptUsernameStep.ts b/src/commands/newConnection/PromptUsernameStep.ts index 8f3d30418..a09aa8891 100644 --- a/src/commands/newConnection/PromptUsernameStep.ts +++ b/src/commands/newConnection/PromptUsernameStep.ts @@ -32,7 +32,7 @@ export class PromptUsernameStep extends AzureWizardPromptStep Date: Fri, 6 Feb 2026 22:06:27 +0000 Subject: [PATCH 15/47] chore: update changelog and release notes for v0.7.0 enhancements and fixes --- CHANGELOG.md | 3 ++- docs/release-notes/0.7.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af5ca8a48..cfd7de8e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,10 +13,11 @@ - **Copy Connection String with Password**: Adds an option to include the password when copying a connection string. [#436](https://github.com/microsoft/vscode-documentdb/pull/436) - **Release Notes Notification**: Prompts users to view release notes after upgrading to a new major or minor version. [#487](https://github.com/microsoft/vscode-documentdb/pull/487) - **Accessibility**: Improves screen reader announcements, keyboard navigation, and ARIA labeling across Query Insights and document editing. [#374](https://github.com/microsoft/vscode-documentdb/issues/374), [#375](https://github.com/microsoft/vscode-documentdb/issues/375), [#377](https://github.com/microsoft/vscode-documentdb/issues/377), [#378](https://github.com/microsoft/vscode-documentdb/issues/378), [#379](https://github.com/microsoft/vscode-documentdb/issues/379), [#380](https://github.com/microsoft/vscode-documentdb/issues/380), [#381](https://github.com/microsoft/vscode-documentdb/issues/381), [#384](https://github.com/microsoft/vscode-documentdb/issues/384), [#385](https://github.com/microsoft/vscode-documentdb/issues/385) -- **Alphabetical Collection Sorting**: Sorts collections alphabetically in the tree view. Thanks to [@VanitasBlade](https://github.com/VanitasBlade). [#456](https://github.com/microsoft/vscode-documentdb/issues/456), [#465](https://github.com/microsoft/vscode-documentdb/pull/465) +- **Alphabetical Collection Sorting**: Sorts collections alphabetically in the tree view. [#456](https://github.com/microsoft/vscode-documentdb/issues/456), [#465](https://github.com/microsoft/vscode-documentdb/pull/465) - **Query Insights Prompt Hardening**: Updates the Query Insights model/prompt and adds additional prompt-injection mitigations. [#468](https://github.com/microsoft/vscode-documentdb/pull/468) - **Connection String Validation**: Trims and validates connection string input to avoid empty values. [#467](https://github.com/microsoft/vscode-documentdb/pull/467) - **Collection Paste Feedback**: Refreshes collection metadata after paste and improves error reporting for failed writes. [#482](https://github.com/microsoft/vscode-documentdb/pull/482), [#484](https://github.com/microsoft/vscode-documentdb/pull/484) +- **Collection Paste Validation / Input Trimming Consistency**: Fixes inconsistent trimming/validation of user input. [#493](https://github.com/microsoft/vscode-documentdb/pull/493) ### Fixes diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index f40d892ae..de33fe75d 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -101,12 +101,13 @@ We're grateful for the contributions from our open-source community! This releas Collections within DocumentDB databases are now displayed in alphabetical order, making it much easier to find the collection you're looking for. This improvement enhances usability when working with databases that contain many collections. -**Contributed by [@VanitasBlade](https://github.com/VanitasBlade)**, fixing issue [#456](https://github.com/microsoft/vscode-documentdb/issues/456) originally reported by [@majelbstoat](https://github.com/majelbstoat). +**Contributed by [@VanitasBlade](https://github.com/VanitasBlade)**, fixing issue [#456](https://github.com/microsoft/vscode-documentdb/issues/456) originally reported by [@majelbstoat](https://github.com/majelbstoat) and [@MattParkerDev](https://github.com/MattParkerDev). ### 2️⃣ Bug Reports from the Community - **Invalid query JSON handling**: Reported by [@majelbstoat](https://github.com/majelbstoat) ([#458](https://github.com/microsoft/vscode-documentdb/issues/458)); fixed in [Query Parsing Error Handling](#query-parsing-error-handling). - **Keyboard paste shortcuts**: Reported by [@cveld](https://github.com/cveld) and [@markjbrown](https://github.com/markjbrown) ([#435](https://github.com/microsoft/vscode-documentdb/issues/435)); fixed in [Monaco Editor Keyboard Paste](#monaco-editor-keyboard-paste). +- **Collection paste validation & input trimming consistency**: Reported by [@DhruvC-Affine](https://github.com/DhruvC-Affine) in [vscode-documentdb-bugbash-070-partners#4](https://github.com/tnaum-ms/vscode-documentdb-bugbash-070-partners/issues/4); fixed in [#493](https://github.com/microsoft/vscode-documentdb/pull/493). The user spotted that pasting a collection didn't validate the input correctly, but this uncovered a wider issue with lack of consistency when user input was trimmed. This report helped to improve the quality overall. ## Additional Improvements From 07a5ad6fb419bffb65863d2fa79045796371fc6c Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Fri, 6 Feb 2026 23:07:46 +0100 Subject: [PATCH 16/47] fix: add validation for empty password in new connection wizard --- l10n/bundle.l10n.json | 1 + src/commands/newConnection/PromptPasswordStep.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 97e0ff714..cfccd464d 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -734,6 +734,7 @@ "Optimizing the index on {0} can improve query performance by better matching the query pattern.": "Optimizing the index on {0} can improve query performance by better matching the query pattern.", "Overwrite existing documents": "Overwrite existing documents", "Overwrite existing documents that share the same _id; other write errors will abort the operation.": "Overwrite existing documents that share the same _id; other write errors will abort the operation.", + "Password cannot be empty": "Password cannot be empty", "Password for {username_at_resource}": "Password for {username_at_resource}", "Paste Collection": "Paste Collection", "Pasting…": "Pasting…", diff --git a/src/commands/newConnection/PromptPasswordStep.ts b/src/commands/newConnection/PromptPasswordStep.ts index 8335c68d6..330cdcbfd 100644 --- a/src/commands/newConnection/PromptPasswordStep.ts +++ b/src/commands/newConnection/PromptPasswordStep.ts @@ -21,6 +21,13 @@ export class PromptPasswordStep extends AzureWizardPromptStep this.validateInput(context, password), + // eslint-disable-next-line @typescript-eslint/require-await + asyncValidationTask: async (password?: string) => { + if (!password || password.length === 0) { + return l10n.t('Password cannot be empty'); + } + return undefined; + }, }); context.valuesToMask.push(password); From e0ff81eeebcbfd2da3ad885e4df11eaf5551b500 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Feb 2026 17:25:05 +0000 Subject: [PATCH 17/47] chore(deps-dev): bump webpack from 5.103.0 to 5.105.0 Bumps [webpack](https://github.com/webpack/webpack) from 5.103.0 to 5.105.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack/compare/v5.103.0...v5.105.0) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.105.0 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 82 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index f79724f7a..f6ebba692 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "ts-node": "~10.9.2", "typescript": "~5.9.3", "typescript-eslint": "~8.47.0", - "webpack": "~5.103.0", + "webpack": "~5.105.0", "webpack-bundle-analyzer": "~5.0.0", "webpack-cli": "~6.0.1", "webpack-dev-server": "~5.2.2" @@ -8665,9 +8665,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.31", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz", - "integrity": "sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==", + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -8910,9 +8910,9 @@ "license": "ISC" }, "node_modules/browserslist": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", - "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -8930,11 +8930,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.8.25", - "caniuse-lite": "^1.0.30001754", - "electron-to-chromium": "^1.5.249", + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", - "update-browserslist-db": "^1.1.4" + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -9182,9 +9182,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001757", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz", - "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==", + "version": "1.0.30001769", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz", + "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==", "dev": true, "funding": [ { @@ -10432,9 +10432,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.260", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.260.tgz", - "integrity": "sha512-ov8rBoOBhVawpzdre+Cmz4FB+y66Eqrk6Gwqd8NGxuhv99GQ8XqMAr351KEkOt7gukXWDg6gJWEMKgL2RLMPtA==", + "version": "1.5.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", "dev": true, "license": "ISC" }, @@ -10528,14 +10528,14 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", - "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.0" }, "engines": { "node": ">=10.13.0" @@ -10690,9 +10690,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", "dev": true, "license": "MIT" }, @@ -19792,9 +19792,9 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -20910,9 +20910,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", - "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -21197,9 +21197,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", - "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "license": "MIT", "dependencies": { @@ -21237,9 +21237,9 @@ } }, "node_modules/webpack": { - "version": "5.103.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz", - "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==", + "version": "5.105.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", + "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", "dev": true, "license": "MIT", "dependencies": { @@ -21251,10 +21251,10 @@ "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", - "browserslist": "^4.26.3", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.3", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.19.0", + "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -21265,8 +21265,8 @@ "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.4", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.5.1", "webpack-sources": "^3.3.3" }, "bin": { diff --git a/package.json b/package.json index 1ca0eeaba..3f5ded3fa 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "ts-node": "~10.9.2", "typescript": "~5.9.3", "typescript-eslint": "~8.47.0", - "webpack": "~5.103.0", + "webpack": "~5.105.0", "webpack-bundle-analyzer": "~5.0.0", "webpack-cli": "~6.0.1", "webpack-dev-server": "~5.2.2" From 297551eeba3d8e7cb03994c956f60e69fa65abc9 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 10:35:13 +0100 Subject: [PATCH 18/47] fix: improve error handling and messaging during import and export operations --- l10n/bundle.l10n.json | 23 +++++- .../exportDocuments/exportDocuments.ts | 37 ++++++--- .../importDocuments/importDocuments.ts | 81 +++++++++++++++---- 3 files changed, 114 insertions(+), 27 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 97e0ff714..eb0b3b3a6 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -1,4 +1,5 @@ { + " Write error: {0}": " Write error: {0}", " (Press 'Space' to select and 'Enter' to confirm)": " (Press 'Space' to select and 'Enter' to confirm)", " and ": " and ", " on GitHub.": " on GitHub.", @@ -209,6 +210,7 @@ "Back to account selection": "Back to account selection", "Back to tenant selection": "Back to tenant selection", "Browse to {mongoExecutableFileName}": "Browse to {mongoExecutableFileName}", + "Bulk write error during import into \"{0}.{1}\": {2} document(s) inserted.": "Bulk write error during import into \"{0}.{1}\": {2} document(s) inserted.", "Cancel": "Cancel", "Cancel this operation": "Cancel this operation", "Cannot {0}": "Cannot {0}", @@ -397,8 +399,10 @@ "Error creating resource: {0}": "Error creating resource: {0}", "Error deleting selected documents": "Error deleting selected documents", "Error dropping index: {error}": "Error dropping index: {error}", + "Error exporting documents: {0}": "Error exporting documents: {0}", "Error exporting documents: {error}": "Error exporting documents: {error}", "Error generating query": "Error generating query", + "Error inserting documents into \"{0}.{1}\": {2}": "Error inserting documents into \"{0}.{1}\": {2}", "Error modifying index: {error}": "Error modifying index: {error}", "Error opening the document view": "Error opening the document view", "Error running process: ": "Error running process: ", @@ -411,7 +415,7 @@ "Error while running the query": "Error while running the query", "Error: {0}": "Error: {0}", "Error: {error}": "Error: {error}", - "Errors found in document {path}. Please fix these.": "Errors found in document {path}. Please fix these.", + "Errors found in file \"{path}\". Please fix these:": "Errors found in file \"{path}\". Please fix these:", "Examined-to-Returned Ratio": "Examined-to-Returned Ratio", "Excellent": "Excellent", "Execute the find query": "Execute the find query", @@ -431,12 +435,13 @@ "Explain(count) completed [{durationMs}ms]": "Explain(count) completed [{durationMs}ms]", "Explain(find) completed [{durationMs}ms]": "Explain(find) completed [{durationMs}ms]", "Export": "Export", + "Export complete. Exported document count: {documentCount}": "Export complete. Exported document count: {documentCount}", "Export Current Query Results…": "Export Current Query Results…", "Export Entire Collection…": "Export Entire Collection…", "Export Execution Plan Details": "Export Execution Plan Details", + "Export operation was canceled after {0} document(s).": "Export operation was canceled after {0} document(s).", "Export Optimization Opportunities": "Export Optimization Opportunities", "Exported document count: {documentCount}": "Exported document count: {documentCount}", - "Exporting data to: {filePath}": "Exporting data to: {filePath}", "Exporting documents": "Exporting documents", "Exporting…": "Exporting…", "Extension dependency with id \"{0}\" must be updated.": "Extension dependency with id \"{0}\" must be updated.", @@ -462,7 +467,7 @@ "Failed to drop index.": "Failed to drop index.", "Failed to end session: {0}": "Failed to end session: {0}", "Failed to ensure the target collection exists.": "Failed to ensure the target collection exists.", - "Failed to export documents. Please see the output for details.": "Failed to export documents. Please see the output for details.", + "Failed to export documents.": "Failed to export documents.", "Failed to extract cluster credentials from the selected node.": "Failed to extract cluster credentials from the selected node.", "Failed to extract the connection string from the selected account.": "Failed to extract the connection string from the selected account.", "Failed to find commandId on generic tree item.": "Failed to find commandId on generic tree item.", @@ -546,6 +551,9 @@ "Ignoring the following files that do not match the \"*.json\" file name pattern:": "Ignoring the following files that do not match the \"*.json\" file name pattern:", "Import": "Import", "Import completed with errors.": "Import completed with errors.", + "Import failed with unexpected error: {0}": "Import failed with unexpected error: {0}", + "Import failed: document buffer is not initialized.": "Import failed: document buffer is not initialized.", + "Import failed: unsupported node type.": "Import failed: unsupported node type.", "Import From JSON…": "Import From JSON…", "Import successful.": "Import successful.", "IMPORTANT: Please be sure to remove any private information before submitting.": "IMPORTANT: Please be sure to remove any private information before submitting.", @@ -582,7 +590,7 @@ "Info from the webview: ": "Info from the webview: ", "Information was confusing": "Information was confusing", "Initializing task...": "Initializing task...", - "Inserted {0} document(s). See output for more details.": "Inserted {0} document(s). See output for more details.", + "Inserted {0} document(s).": "Inserted {0} document(s).", "Install Azure Account Extension...": "Install Azure Account Extension...", "Internal error: connectionString must be defined.": "Internal error: connectionString must be defined.", "Internal error: connectionString, port, and api must be defined.": "Internal error: connectionString, port, and api must be defined.", @@ -635,6 +643,7 @@ "Limit": "Limit", "Limit Returned Fields": "Limit Returned Fields", "Load More...": "Load More...", + "Loaded {0} document(s) from \"{1}\"": "Loaded {0} document(s) from \"{1}\"", "Loading \"{0}\"...": "Loading \"{0}\"...", "Loading Azure Accounts Used for Service Discovery…": "Loading Azure Accounts Used for Service Discovery…", "Loading cluster details for \"{cluster}\"": "Loading cluster details for \"{cluster}\"", @@ -734,6 +743,7 @@ "Optimizing the index on {0} can improve query performance by better matching the query pattern.": "Optimizing the index on {0} can improve query performance by better matching the query pattern.", "Overwrite existing documents": "Overwrite existing documents", "Overwrite existing documents that share the same _id; other write errors will abort the operation.": "Overwrite existing documents that share the same _id; other write errors will abort the operation.", + "Parsing file {0}: {1}": "Parsing file {0}: {1}", "Password for {username_at_resource}": "Password for {username_at_resource}", "Paste Collection": "Paste Collection", "Pasting…": "Pasting…", @@ -819,6 +829,7 @@ "Save to the database": "Save to the database", "Saving \"{path}\" will update the entity \"{name}\" to the cloud.": "Saving \"{path}\" will update the entity \"{name}\" to the cloud.", "Saving credentials for \"{clusterName}\"…": "Saving credentials for \"{clusterName}\"…", + "See output for more details.": "See output for more details.", "Select {0}": "Select {0}", "Select {mongoExecutableFileName}": "Select {mongoExecutableFileName}", "Select a location for new resources.": "Select a location for new resources.", @@ -846,6 +857,7 @@ "SHARD_MERGE · {0} shards": "SHARD_MERGE · {0} shards", "SHARD_MERGE · {0} shards · {1} docs · {2}ms": "SHARD_MERGE · {0} shards · {1} docs · {2}ms", "Shard: {0}": "Shard: {0}", + "Show Output": "Show Output", "Show Stage Details": "Show Stage Details", "Sign in to additional accounts or authenticate with other tenants to see more options.": "Sign in to additional accounts or authenticate with other tenants to see more options.", "Sign in to additional accounts or authenticate with other tenants to see more subscriptions.": "Sign in to additional accounts or authenticate with other tenants to see more subscriptions.", @@ -875,6 +887,8 @@ "Starting Azure account management wizard": "Starting Azure account management wizard", "Starting Azure sign-in process…": "Starting Azure sign-in process…", "Starting executable: \"{command}\"": "Starting executable: \"{command}\"", + "Starting export to: {filePath}": "Starting export to: {filePath}", + "Starting import of {0} file(s) into collection \"{1}\"": "Starting import of {0} file(s) into collection \"{1}\"", "Starting sign-in to tenant: {0}": "Starting sign-in to tenant: {0}", "Starts with mongodb:// or mongodb+srv://": "Starts with mongodb:// or mongodb+srv://", "Stopping {0}": "Stopping {0}", @@ -986,6 +1000,7 @@ "To connect to Azure resources, you need to sign in to Azure accounts.": "To connect to Azure resources, you need to sign in to Azure accounts.", "TODO: Share the steps needed to reliably reproduce the problem. Please include actual and expected results.": "TODO: Share the steps needed to reliably reproduce the problem. Please include actual and expected results.", "Too many arguments. Expecting 0 or 1 argument(s) to {constructorCall}": "Too many arguments. Expecting 0 or 1 argument(s) to {constructorCall}", + "Total documents to import: {0}": "Total documents to import: {0}", "Total time taken to execute the query on the server": "Total time taken to execute the query on the server", "Transforming Stage 2 response to UI format": "Transforming Stage 2 response to UI format", "Tree View": "Tree View", diff --git a/src/commands/exportDocuments/exportDocuments.ts b/src/commands/exportDocuments/exportDocuments.ts index 31edc0b3d..af4065448 100644 --- a/src/commands/exportDocuments/exportDocuments.ts +++ b/src/commands/exportDocuments/exportDocuments.ts @@ -56,7 +56,7 @@ export async function exportQueryResults( ); const filePath = targetUri.fsPath; // Convert `vscode.Uri` to a regular file path - ext.outputChannel.appendLog(l10n.t('Exporting data to: {filePath}', { filePath })); + ext.outputChannel.info(l10n.t('Starting export to: {filePath}', { filePath })); let documentCount = 0; @@ -78,7 +78,7 @@ export async function exportQueryResults( actionContext.telemetry.measurements.documentCount = documentCount; }); - ext.outputChannel.appendLog(l10n.t('Exported document count: {documentCount}', { documentCount })); + ext.outputChannel.info(l10n.t('Export complete. Exported document count: {documentCount}', { documentCount })); } async function runExportWithProgressAndDescription( @@ -99,14 +99,20 @@ async function runExportWithProgressAndDescription( try { await exportFunction(progress, cancellationToken); } catch (error) { - vscode.window.showErrorMessage( - l10n.t('Failed to export documents. Please see the output for details.'), - ); - ext.outputChannel.appendLog( + ext.outputChannel.error( l10n.t('Error exporting documents: {error}', { error: parseError(error).message, }), ); + ext.outputChannel.show(); + + void vscode.window + .showErrorMessage(l10n.t('Failed to export documents.'), l10n.t('Show Output')) + .then((choice) => { + if (choice === l10n.t('Show Output')) { + ext.outputChannel.show(); + } + }); } progress.report({ increment: 100 }); // Complete the progress bar }, @@ -134,6 +140,7 @@ async function exportDocumentsToFile( // Cancel the operation documentStreamAbortController.abort(); await vscode.workspace.fs.delete(vscode.Uri.file(filePath)); // Clean up the file if canceled + ext.outputChannel.warn(l10n.t('Export operation was canceled after {0} document(s).', documentCount)); vscode.window.showWarningMessage(l10n.t('The export operation was canceled.')); return documentCount; } @@ -143,6 +150,7 @@ async function exportDocumentsToFile( // Progress reporting for every 100 documents if (documentCount % 100 === 0) { + ext.outputChannel.trace(l10n.t('{documentCount} documents exported…', { documentCount })); progress.report({ message: l10n.t('{documentCount} documents exported…', { documentCount }) }); } @@ -165,9 +173,20 @@ async function exportDocumentsToFile( vscode.window.showInformationMessage(l10n.t('Exported document count: {documentCount}', { documentCount })); } catch (error) { - vscode.window.showErrorMessage( - l10n.t('Error exporting documents: {error}', { error: parseError(error).message }), - ); + const errorMessage = error instanceof Error ? error.message : String(error); + ext.outputChannel.error(l10n.t('Error exporting documents: {0}', errorMessage)); + ext.outputChannel.show(); + + void vscode.window + .showErrorMessage( + l10n.t('Error exporting documents: {error}', { error: parseError(error).message }), + l10n.t('Show Output'), + ) + .then((choice) => { + if (choice === l10n.t('Show Output')) { + ext.outputChannel.show(); + } + }); throw error; // Re-throw the error to be caught by the outer error handler } diff --git a/src/commands/importDocuments/importDocuments.ts b/src/commands/importDocuments/importDocuments.ts index c3a589d95..03df42043 100644 --- a/src/commands/importDocuments/importDocuments.ts +++ b/src/commands/importDocuments/importDocuments.ts @@ -46,10 +46,10 @@ export async function importDocuments( }); if (ignoredUris.length) { - ext.outputChannel.appendLog( + ext.outputChannel.warn( l10n.t('Ignoring the following files that do not match the "*.json" file name pattern:'), ); - ignoredUris.forEach((uri) => ext.outputChannel.appendLog(`${uri.fsPath}`)); + ignoredUris.forEach((uri) => ext.outputChannel.warn(` ${uri.fsPath}`)); ext.outputChannel.show(); } @@ -84,6 +84,14 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, async (progress) => { progress.report({ increment: 0, message: l10n.t('Loading documents…') }); + ext.outputChannel.info( + l10n.t( + 'Starting import of {0} file(s) into collection "{1}"', + uris.length, + selectedItem.collectionInfo.name, + ), + ); + const countUri = uris.length; const incrementUri = 25 / (countUri || 1); const documents: unknown[] = []; @@ -96,24 +104,32 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, message: l10n.t('Loading document {num} of {countUri}', { num: i + 1, countUri }), }); + ext.outputChannel.trace(l10n.t('Parsing file {0}: {1}', i + 1, uris[i].fsPath)); + const result = await parseAndValidateFile(selectedItem, uris[i]); // Note to future maintainers: the validation can return 0 valid documents and still have errors. if (result.errors && result.errors.length) { - ext.outputChannel.appendLog( - l10n.t('Errors found in document {path}. Please fix these.', { path: uris[i].path }), + ext.outputChannel.error( + l10n.t('Errors found in file "{path}". Please fix these:', { path: uris[i].path }), ); - ext.outputChannel.appendLog(result.errors.join('\n')); - ext.outputChannel.show(); + for (const err of result.errors) { + ext.outputChannel.error(` ${err}`); + } hasErrors = true; } if (result.documents && result.documents.length > 0) { + ext.outputChannel.trace( + l10n.t('Loaded {0} document(s) from "{1}"', result.documents.length, uris[i].path), + ); documents.push(...result.documents); } } + ext.outputChannel.info(l10n.t('Total documents to import: {0}', documents.length)); + const countDocuments = documents.length; const incrementDocuments = 75 / (countDocuments || 1); let count = 0; @@ -171,16 +187,31 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, // let's make sure we reach 100% progress, useful in case of errors etc. progress.report({ increment: 100, message: l10n.t('Finished importing') }); - return ( - (hasErrors ? l10n.t('Import completed with errors.') : l10n.t('Import successful.')) + - ' ' + - l10n.t('Inserted {0} document(s). See output for more details.', count) - ); + return { hasErrors, count }; }, ); - // We should not use await here, otherwise the node status will not be updated until the message is closed - vscode.window.showInformationMessage(result); + const message = + (result.hasErrors ? l10n.t('Import completed with errors.') : l10n.t('Import successful.')) + + ' ' + + l10n.t('Inserted {0} document(s).', result.count); + + if (result.hasErrors) { + ext.outputChannel.warn(message); + ext.outputChannel.show(); + + void vscode.window + .showWarningMessage(message + ' ' + l10n.t('See output for more details.'), l10n.t('Show Output')) + .then((choice) => { + if (choice === l10n.t('Show Output')) { + ext.outputChannel.show(); + } + }); + } else { + ext.outputChannel.info(message); + // We should not use await here, otherwise the node status will not be updated until the message is closed + void vscode.window.showInformationMessage(message); + } } async function askForDocuments(context: IActionContext): Promise { @@ -257,6 +288,7 @@ async function insertDocument( try { // Check for valid buffer if (!buffer) { + ext.outputChannel.error(l10n.t('Import failed: document buffer is not initialized.')); return { count: 0, errorOccurred: true }; } @@ -266,8 +298,11 @@ async function insertDocument( } // Should only reach here if node is neither CollectionItem nor CosmosDBContainerResourceItem + ext.outputChannel.error(l10n.t('Import failed: unsupported node type.')); return { count: 0, errorOccurred: true }; - } catch { + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + ext.outputChannel.error(l10n.t('Import failed with unexpected error: {0}', errorMessage)); return { count: 0, errorOccurred: true }; } } @@ -316,12 +351,30 @@ async function insertDocumentWithBufferIntoCluster( if (isBulkWriteError(error)) { // Handle MongoDB bulk write errors // It could be a partial failure, so we need to check the result + ext.outputChannel.warn( + l10n.t( + 'Bulk write error during import into "{0}.{1}": {2} document(s) inserted.', + databaseName, + collectionName, + error.result.insertedCount, + ), + ); + if (error.writeErrors) { + const errors = Array.isArray(error.writeErrors) ? error.writeErrors : [error.writeErrors]; + for (const writeError of errors) { + ext.outputChannel.error(l10n.t(' Write error: {0}', String(writeError))); + } + } return { count: error.result.insertedCount, errorOccurred: true, }; } else { // Handle other errors + const errorMessage = error instanceof Error ? error.message : String(error); + ext.outputChannel.error( + l10n.t('Error inserting documents into "{0}.{1}": {2}', databaseName, collectionName, errorMessage), + ); return { count: 0, errorOccurred: true, From 601146ea7c385376b03b97b9f0ae8effae85d1e9 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 10:52:07 +0100 Subject: [PATCH 19/47] fix: add warning messages for ignored files during import operations --- l10n/bundle.l10n.json | 1 + src/commands/exportDocuments/exportDocuments.ts | 2 -- src/commands/importDocuments/importDocuments.ts | 13 +++++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index eb0b3b3a6..b1686209c 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -87,6 +87,7 @@ "{0} connections": "{0} connections", "{0} created": "{0} created", "{0} failed: {1}": "{0} failed: {1}", + "{0} file(s) were ignored because they do not match the \"*.json\" pattern.": "{0} file(s) were ignored because they do not match the \"*.json\" pattern.", "{0} inserted": "{0} inserted", "{0} item(s) already exist in the destination. Check the Output panel for details.": "{0} item(s) already exist in the destination. Check the Output panel for details.", "{0} processed": "{0} processed", diff --git a/src/commands/exportDocuments/exportDocuments.ts b/src/commands/exportDocuments/exportDocuments.ts index af4065448..e18eee1c5 100644 --- a/src/commands/exportDocuments/exportDocuments.ts +++ b/src/commands/exportDocuments/exportDocuments.ts @@ -104,7 +104,6 @@ async function runExportWithProgressAndDescription( error: parseError(error).message, }), ); - ext.outputChannel.show(); void vscode.window .showErrorMessage(l10n.t('Failed to export documents.'), l10n.t('Show Output')) @@ -175,7 +174,6 @@ async function exportDocumentsToFile( } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); ext.outputChannel.error(l10n.t('Error exporting documents: {0}', errorMessage)); - ext.outputChannel.show(); void vscode.window .showErrorMessage( diff --git a/src/commands/importDocuments/importDocuments.ts b/src/commands/importDocuments/importDocuments.ts index 03df42043..6b6a9967b 100644 --- a/src/commands/importDocuments/importDocuments.ts +++ b/src/commands/importDocuments/importDocuments.ts @@ -50,7 +50,17 @@ export async function importDocuments( l10n.t('Ignoring the following files that do not match the "*.json" file name pattern:'), ); ignoredUris.forEach((uri) => ext.outputChannel.warn(` ${uri.fsPath}`)); - ext.outputChannel.show(); + + void vscode.window + .showWarningMessage( + l10n.t('{0} file(s) were ignored because they do not match the "*.json" pattern.', ignoredUris.length), + l10n.t('Show Output'), + ) + .then((choice) => { + if (choice === l10n.t('Show Output')) { + ext.outputChannel.show(); + } + }); } if (!selectedItem) { @@ -198,7 +208,6 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, if (result.hasErrors) { ext.outputChannel.warn(message); - ext.outputChannel.show(); void vscode.window .showWarningMessage(message + ' ' + l10n.t('See output for more details.'), l10n.t('Show Output')) From b82f5b9d5a27ac8a9d2cccffbf2f7154312c6098 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 11:21:27 +0100 Subject: [PATCH 20/47] refactor: remove auto-show from logTaskConflicts utility logTaskConflicts() now only logs to the output channel. Callers are responsible for surfacing the output to the user, enabling the 'Show Output' button pattern instead of auto-showing. --- src/commands/connections-view/verificationUtils.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/connections-view/verificationUtils.ts b/src/commands/connections-view/verificationUtils.ts index d3c7350f8..f6e74d965 100644 --- a/src/commands/connections-view/verificationUtils.ts +++ b/src/commands/connections-view/verificationUtils.ts @@ -125,5 +125,4 @@ export function logTaskConflicts(headerMessage: string, tasks: TaskInfo[]): void ext.outputChannel.appendLog(` • ${task.taskName} (${task.taskType})`); } ext.outputChannel.appendLog(l10n.t('Please stop these tasks first before proceeding.')); - ext.outputChannel.show(); } From abd231a140151871c7cc179dd134d13097c18351 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 11:21:34 +0100 Subject: [PATCH 21/47] refactor: add 'Show Output' QuickPick option to VerifyNoConflictsStep Replace auto-showing the output channel with a user-selectable 'Show Output' option in both naming conflict and task conflict QuickPick dialogs. When selected, the output channel is shown and the step re-prompts so the user can then Go Back or Cancel. --- .../moveItems/VerifyNoConflictsStep.ts | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts b/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts index 00ce04f62..d18e9b68d 100644 --- a/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts +++ b/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts @@ -20,7 +20,7 @@ import { } from '../verificationUtils'; import { type MoveItemsWizardContext } from './MoveItemsWizardContext'; -type ConflictAction = 'back' | 'exit'; +type ConflictAction = 'back' | 'exit' | 'show-output'; /** * Step to verify the move operation can proceed safely. @@ -41,7 +41,10 @@ export class VerifyNoConflictsStep extends AzureWizardPromptStep Date: Mon, 9 Feb 2026 11:37:38 +0100 Subject: [PATCH 22/47] refactor: add 'Show Output' button to task failure notifications - taskProgressReportingService: add 'Show Output' button to the error notification shown when a task fails - taskService: remove auto-show of output channel on task failure - StreamingDocumentWriter: remove auto-show from handleFatalError - README: document centralized failure notification for task authors --- l10n/bundle.l10n.json | 2 ++ src/services/taskService/README.md | 15 +++++++++++++ .../UI/taskProgressReportingService.ts | 22 +++++++++++++------ .../writers/StreamingDocumentWriter.ts | 1 - src/services/taskService/taskService.ts | 1 - 5 files changed, 32 insertions(+), 9 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index b1686209c..ec12b6f4b 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -125,6 +125,7 @@ "$(error) Failure": "$(error) Failure", "$(info) Some storage accounts were filtered because of their sku. Learn more...": "$(info) Some storage accounts were filtered because of their sku. Learn more...", "$(keyboard) Manually enter error": "$(keyboard) Manually enter error", + "$(output) Show Output": "$(output) Show Output", "$(pass) Signed in": "$(pass) Signed in", "$(plus) Create new {0}...": "$(plus) Create new {0}...", "$(plus) Create new resource group": "$(plus) Create new resource group", @@ -1060,6 +1061,7 @@ "Validating source collection...": "Validating source collection...", "Verifying folder can be deleted…": "Verifying folder can be deleted…", "Verifying move operation…": "Verifying move operation…", + "View conflict details in the Output panel": "View conflict details in the Output panel", "View in Marketplace": "View in Marketplace", "View Raw Execution Stats": "View Raw Execution Stats", "View Raw Explain Output": "View Raw Explain Output", diff --git a/src/services/taskService/README.md b/src/services/taskService/README.md index 9d88dfc18..f096feb2b 100644 --- a/src/services/taskService/README.md +++ b/src/services/taskService/README.md @@ -582,6 +582,21 @@ try { } ``` +### Task Failure Notifications + +When a task transitions to `Failed`, the framework handles failure reporting centrally: + +1. **Error logging**: The `Task` base class automatically logs the error to the output channel via `ext.outputChannel.error()` — task authors do NOT need to do this manually. +2. **User notification**: The `TaskProgressReportingService` automatically shows an error notification with a **"Show Output"** button, allowing the user to view error details on demand. +3. **No auto-show**: The output channel is NOT opened automatically — this avoids disrupting the user's workflow. The user can choose to view it via the button. + +Task authors do **not** need to: + +- Call `ext.outputChannel.show()` on failure +- Show their own error notifications via `vscode.window.showErrorMessage()` + +Both are handled by the framework. If a task needs custom failure behavior (e.g., logging additional context), it can handle errors in `doWork()` before re-throwing. + ### Error Classification The `StreamingDocumentWriter` classifies errors for retry decisions: diff --git a/src/services/taskService/UI/taskProgressReportingService.ts b/src/services/taskService/UI/taskProgressReportingService.ts index d1bd15386..6db374fc3 100644 --- a/src/services/taskService/UI/taskProgressReportingService.ts +++ b/src/services/taskService/UI/taskProgressReportingService.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as vscode from 'vscode'; +import { ext } from '../../../extensionVariables'; import { isTerminalState, TaskState, type Task, type TaskService } from '../taskService'; /** @@ -321,13 +322,20 @@ class TaskProgressReportingServiceImpl implements TaskProgressReportingService { void vscode.window.showInformationMessage(vscode.l10n.t('{0} was stopped', task.name)); break; case TaskState.Failed: - void vscode.window.showErrorMessage( - vscode.l10n.t( - '{0} failed: {1}', - task.name, - status.error instanceof Error ? status.error.message : 'Unknown error', - ), - ); + void vscode.window + .showErrorMessage( + vscode.l10n.t( + '{0} failed: {1}', + task.name, + status.error instanceof Error ? status.error.message : 'Unknown error', + ), + vscode.l10n.t('Show Output'), + ) + .then((choice) => { + if (choice === vscode.l10n.t('Show Output')) { + ext.outputChannel.show(); + } + }); break; } } diff --git a/src/services/taskService/data-api/writers/StreamingDocumentWriter.ts b/src/services/taskService/data-api/writers/StreamingDocumentWriter.ts index aa3577e33..4cf1500fc 100644 --- a/src/services/taskService/data-api/writers/StreamingDocumentWriter.ts +++ b/src/services/taskService/data-api/writers/StreamingDocumentWriter.ts @@ -826,7 +826,6 @@ export abstract class StreamingDocumentWriter { ); ext.outputChannel.error(vscode.l10n.t('[StreamingWriter] Partial progress: {0}', statsError.getStatsString())); - ext.outputChannel.show(); throw statsError; } diff --git a/src/services/taskService/taskService.ts b/src/services/taskService/taskService.ts index 700a3a1aa..34c15bafe 100644 --- a/src/services/taskService/taskService.ts +++ b/src/services/taskService/taskService.ts @@ -236,7 +236,6 @@ export abstract class Task { message: `${msg}${detail}`.trim(), }), ); - ext.outputChannel.show(); } } } From b3a8f0ebb227f0782125cee5d73dc2b5256456ad Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 11:48:01 +0100 Subject: [PATCH 23/47] fix: suppress duplicate error notification from callWithTelemetryAndErrorHandling When a task fails, callWithTelemetryAndErrorHandling shows its own generic 'An error has occurred' notification for multiline errors. Since TaskProgressReportingService already shows a specific error notification with a 'Show Output' button, suppress the generic one via context.errorHandling.suppressDisplay = true. --- src/services/taskService/taskService.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/services/taskService/taskService.ts b/src/services/taskService/taskService.ts index 34c15bafe..71d242aae 100644 --- a/src/services/taskService/taskService.ts +++ b/src/services/taskService/taskService.ts @@ -340,6 +340,10 @@ export abstract class Task { this.updateStatus(TaskState.Completed, vscode.l10n.t('Task completed successfully'), 100); } } catch (error) { + // Suppress the default error notification from callWithTelemetryAndErrorHandling + // because TaskProgressReportingService shows its own notification with a "Show Output" button + context.errorHandling.suppressDisplay = true; + // Add error information to telemetry context.telemetry.properties.task_error = error instanceof Error ? error.message : 'Unknown error'; From 1681238e72079952b7268878f0b82dbd103c8e50 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:00:43 +0100 Subject: [PATCH 24/47] feat: enhance import process with cancellation support and user notifications --- l10n/bundle.l10n.json | 2 ++ .../importDocuments/importDocuments.ts | 26 ++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index ec12b6f4b..b14ad43bc 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -552,11 +552,13 @@ "Ignore": "Ignore", "Ignoring the following files that do not match the \"*.json\" file name pattern:": "Ignoring the following files that do not match the \"*.json\" file name pattern:", "Import": "Import", + "Import canceled. Inserted {0} document(s) before cancellation.": "Import canceled. Inserted {0} document(s) before cancellation.", "Import completed with errors.": "Import completed with errors.", "Import failed with unexpected error: {0}": "Import failed with unexpected error: {0}", "Import failed: document buffer is not initialized.": "Import failed: document buffer is not initialized.", "Import failed: unsupported node type.": "Import failed: unsupported node type.", "Import From JSON…": "Import From JSON…", + "Import operation was canceled after {0} document(s).": "Import operation was canceled after {0} document(s).", "Import successful.": "Import successful.", "IMPORTANT: Please be sure to remove any private information before submitting.": "IMPORTANT: Please be sure to remove any private information before submitting.", "Imported: {name} (imported on {date})": "Imported: {name} (imported on {date})", diff --git a/src/commands/importDocuments/importDocuments.ts b/src/commands/importDocuments/importDocuments.ts index 6b6a9967b..74be0a4d5 100644 --- a/src/commands/importDocuments/importDocuments.ts +++ b/src/commands/importDocuments/importDocuments.ts @@ -90,8 +90,9 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, { location: vscode.ProgressLocation.Notification, title: l10n.t('Importing documents…'), + cancellable: true, }, - async (progress) => { + async (progress, cancellationToken) => { progress.report({ increment: 0, message: l10n.t('Loading documents…') }); ext.outputChannel.info( @@ -169,7 +170,15 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, } } + let wasCancelled = false; + for (let i = 0; i < countDocuments; i++) { + if (cancellationToken.isCancellationRequested) { + wasCancelled = true; + ext.outputChannel.warn(l10n.t('Import operation was canceled after {0} document(s).', count)); + break; + } + progress.report({ increment: incrementDocuments, message: l10n.t('Importing document {num} of {countDocuments}', { @@ -187,7 +196,7 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, } // Do insertion for the last batch for bulk insertion - if (buffer && buffer.getStats().documentCount > 0) { + if (!wasCancelled && buffer && buffer.getStats().documentCount > 0) { const lastBatchFlushResult = await insertDocument(selectedItem, undefined, buffer); count += lastBatchFlushResult.count; @@ -197,10 +206,21 @@ export async function importDocumentsWithProgress(selectedItem: CollectionItem, // let's make sure we reach 100% progress, useful in case of errors etc. progress.report({ increment: 100, message: l10n.t('Finished importing') }); - return { hasErrors, count }; + return { hasErrors, count, wasCancelled }; }, ); + if (result.wasCancelled) { + const message = l10n.t('Import canceled. Inserted {0} document(s) before cancellation.', result.count); + ext.outputChannel.warn(message); + void vscode.window.showWarningMessage(message, l10n.t('Show Output')).then((choice) => { + if (choice === l10n.t('Show Output')) { + ext.outputChannel.show(); + } + }); + return; + } + const message = (result.hasErrors ? l10n.t('Import completed with errors.') : l10n.t('Import successful.')) + ' ' + From c1ae096d4197b898229e3384f49f525fd40a896a Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:18:25 +0100 Subject: [PATCH 25/47] fix: remove duplicate error notification in exportDocumentsToFile --- src/commands/exportDocuments/exportDocuments.ts | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/commands/exportDocuments/exportDocuments.ts b/src/commands/exportDocuments/exportDocuments.ts index e18eee1c5..ea67e5fc0 100644 --- a/src/commands/exportDocuments/exportDocuments.ts +++ b/src/commands/exportDocuments/exportDocuments.ts @@ -172,19 +172,6 @@ async function exportDocumentsToFile( vscode.window.showInformationMessage(l10n.t('Exported document count: {documentCount}', { documentCount })); } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error); - ext.outputChannel.error(l10n.t('Error exporting documents: {0}', errorMessage)); - - void vscode.window - .showErrorMessage( - l10n.t('Error exporting documents: {error}', { error: parseError(error).message }), - l10n.t('Show Output'), - ) - .then((choice) => { - if (choice === l10n.t('Show Output')) { - ext.outputChannel.show(); - } - }); throw error; // Re-throw the error to be caught by the outer error handler } From 5bcd5818c3db82dee69186a3dba86b4038c7aa20 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:19:07 +0100 Subject: [PATCH 26/47] fix: propagate export error to prevent false success log --- src/commands/exportDocuments/exportDocuments.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/commands/exportDocuments/exportDocuments.ts b/src/commands/exportDocuments/exportDocuments.ts index ea67e5fc0..b83f6e889 100644 --- a/src/commands/exportDocuments/exportDocuments.ts +++ b/src/commands/exportDocuments/exportDocuments.ts @@ -112,6 +112,8 @@ async function runExportWithProgressAndDescription( ext.outputChannel.show(); } }); + + throw error; } progress.report({ increment: 100 }); // Complete the progress bar }, From faa99f56dece0cece0af4053ba6453438d88bb49 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:19:46 +0100 Subject: [PATCH 27/47] fix: remove leading spaces from l10n key for Write error --- l10n/bundle.l10n.json | 2 +- src/commands/importDocuments/importDocuments.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index ec12b6f4b..4ec3ca87f 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -1,5 +1,5 @@ { - " Write error: {0}": " Write error: {0}", + "Write error: {0}": "Write error: {0}", " (Press 'Space' to select and 'Enter' to confirm)": " (Press 'Space' to select and 'Enter' to confirm)", " and ": " and ", " on GitHub.": " on GitHub.", diff --git a/src/commands/importDocuments/importDocuments.ts b/src/commands/importDocuments/importDocuments.ts index 6b6a9967b..849f96814 100644 --- a/src/commands/importDocuments/importDocuments.ts +++ b/src/commands/importDocuments/importDocuments.ts @@ -371,7 +371,7 @@ async function insertDocumentWithBufferIntoCluster( if (error.writeErrors) { const errors = Array.isArray(error.writeErrors) ? error.writeErrors : [error.writeErrors]; for (const writeError of errors) { - ext.outputChannel.error(l10n.t(' Write error: {0}', String(writeError))); + ext.outputChannel.error(' ' + l10n.t('Write error: {0}', String(writeError))); } } return { From 84f216d02f81acbad91452ebc5582c5aa77a8357 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:21:37 +0100 Subject: [PATCH 28/47] fix: ensure output panel is discoverable for all task conflict callers --- l10n/bundle.l10n.json | 3 +-- .../deleteFolder/VerifyNoConflictsStep.ts | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 4ec3ca87f..db87790ec 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -1,5 +1,4 @@ { - "Write error: {0}": "Write error: {0}", " (Press 'Space' to select and 'Enter' to confirm)": " (Press 'Space' to select and 'Enter' to confirm)", " and ": " and ", " on GitHub.": " on GitHub.", @@ -401,7 +400,6 @@ "Error creating resource: {0}": "Error creating resource: {0}", "Error deleting selected documents": "Error deleting selected documents", "Error dropping index: {error}": "Error dropping index: {error}", - "Error exporting documents: {0}": "Error exporting documents: {0}", "Error exporting documents: {error}": "Error exporting documents: {error}", "Error generating query": "Error generating query", "Error inserting documents into \"{0}.{1}\": {2}": "Error inserting documents into \"{0}.{1}\": {2}", @@ -1079,6 +1077,7 @@ "Working...": "Working...", "Working…": "Working…", "Would you like to open the Collection View?": "Would you like to open the Collection View?", + "Write error: {0}": "Write error: {0}", "Write operation failed: {0}": "Write operation failed: {0}", "writing batch...": "writing batch...", "Yes": "Yes", diff --git a/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts index 7d99f8fc9..24defc84b 100644 --- a/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts +++ b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts @@ -5,6 +5,7 @@ import { AzureWizardPromptStep, UserCancelledError, type IAzureQuickPickItem } from '@microsoft/vscode-azext-utils'; import * as l10n from '@vscode/l10n'; +import { ext } from '../../../extensionVariables'; import { ConnectionStorageService, ItemType } from '../../../services/connectionStorageService'; import { enumerateConnectionsInFolder, @@ -14,7 +15,7 @@ import { } from '../verificationUtils'; import { type DeleteFolderWizardContext } from './DeleteFolderWizardContext'; -type ConflictAction = 'exit'; +type ConflictAction = 'exit' | 'show-output'; /** * Step to verify the folder can be deleted and count items to be deleted. @@ -36,7 +37,10 @@ export class VerifyNoConflictsStep extends AzureWizardPromptStep Date: Mon, 9 Feb 2026 12:22:39 +0100 Subject: [PATCH 29/47] fix: re-prompt instead of GoBackError when showing output for conflicts --- .../moveItems/VerifyNoConflictsStep.ts | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts b/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts index d18e9b68d..9d3b02a27 100644 --- a/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts +++ b/src/commands/connections-view/moveItems/VerifyNoConflictsStep.ts @@ -33,23 +33,25 @@ type ConflictAction = 'back' | 'exit' | 'show-output'; export class VerifyNoConflictsStep extends AzureWizardPromptStep { public async prompt(context: MoveItemsWizardContext): Promise { try { - // Use QuickPick with loading state while checking for conflicts - const result = await context.ui.showQuickPick(this.verifyNoConflicts(context), { - placeHolder: l10n.t('Verifying move operation…'), - loadingPlaceHolder: l10n.t('Checking for conflicts…'), - suppressPersistence: true, - }); - - // User selected an action (only shown when conflicts exist) - if (result.data === 'show-output') { - ext.outputChannel.show(); - throw new GoBackError(); - } else if (result.data === 'back') { - context.targetFolderId = undefined; - context.targetFolderPath = undefined; - throw new GoBackError(); - } else { - throw new UserCancelledError(); + // Loop to allow re-prompting after "Show Output" + while (true) { + const result = await context.ui.showQuickPick(this.verifyNoConflicts(context), { + placeHolder: l10n.t('Verifying move operation…'), + loadingPlaceHolder: l10n.t('Checking for conflicts…'), + suppressPersistence: true, + }); + + // User selected an action (only shown when conflicts exist) + if (result.data === 'show-output') { + ext.outputChannel.show(); + continue; // Re-prompt after showing output + } else if (result.data === 'back') { + context.targetFolderId = undefined; + context.targetFolderPath = undefined; + throw new GoBackError(); + } else { + throw new UserCancelledError(); + } } } catch (error) { if (error instanceof VerificationCompleteError) { From 825d5c4ac37da728c91a2f32052191f34137df37 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:23:21 +0100 Subject: [PATCH 30/47] fix: guard file deletion on export cancel to prevent FileNotFound error --- src/commands/exportDocuments/exportDocuments.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/exportDocuments/exportDocuments.ts b/src/commands/exportDocuments/exportDocuments.ts index b83f6e889..fa0e7eb5a 100644 --- a/src/commands/exportDocuments/exportDocuments.ts +++ b/src/commands/exportDocuments/exportDocuments.ts @@ -140,7 +140,11 @@ async function exportDocumentsToFile( if (cancellationToken.isCancellationRequested) { // Cancel the operation documentStreamAbortController.abort(); - await vscode.workspace.fs.delete(vscode.Uri.file(filePath)); // Clean up the file if canceled + try { + await vscode.workspace.fs.delete(vscode.Uri.file(filePath)); + } catch { + // Ignore errors if the file doesn't exist yet (canceled before first write) + } ext.outputChannel.warn(l10n.t('Export operation was canceled after {0} document(s).', documentCount)); vscode.window.showWarningMessage(l10n.t('The export operation was canceled.')); return documentCount; From 989900872514e7a1d64df4f7e9df70c089bbdbe3 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:27:40 +0100 Subject: [PATCH 31/47] fix: removed obsolete try/catch block --- .../exportDocuments/exportDocuments.ts | 74 +++++++++---------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/src/commands/exportDocuments/exportDocuments.ts b/src/commands/exportDocuments/exportDocuments.ts index fa0e7eb5a..f43edde0b 100644 --- a/src/commands/exportDocuments/exportDocuments.ts +++ b/src/commands/exportDocuments/exportDocuments.ts @@ -132,55 +132,51 @@ async function exportDocumentsToFile( let documentCount = 0; - try { - // Start the JSON array - let buffer = '[\n'; - - for await (const doc of documentStream) { - if (cancellationToken.isCancellationRequested) { - // Cancel the operation - documentStreamAbortController.abort(); - try { - await vscode.workspace.fs.delete(vscode.Uri.file(filePath)); - } catch { - // Ignore errors if the file doesn't exist yet (canceled before first write) - } - ext.outputChannel.warn(l10n.t('Export operation was canceled after {0} document(s).', documentCount)); - vscode.window.showWarningMessage(l10n.t('The export operation was canceled.')); - return documentCount; - } - - documentCount += 1; - const docString = EJSON.stringify(doc, undefined, 4); - - // Progress reporting for every 100 documents - if (documentCount % 100 === 0) { - ext.outputChannel.trace(l10n.t('{documentCount} documents exported…', { documentCount })); - progress.report({ message: l10n.t('{documentCount} documents exported…', { documentCount }) }); + // Start the JSON array + let buffer = '[\n'; + + for await (const doc of documentStream) { + if (cancellationToken.isCancellationRequested) { + // Cancel the operation + documentStreamAbortController.abort(); + try { + await vscode.workspace.fs.delete(vscode.Uri.file(filePath)); + } catch { + // Ignore errors if the file doesn't exist yet (canceled before first write) } + ext.outputChannel.warn(l10n.t('Export operation was canceled after {0} document(s).', documentCount)); + vscode.window.showWarningMessage(l10n.t('The export operation was canceled.')); + return documentCount; + } - // Prepare buffer for writing - buffer += buffer.length > 2 ? ',\n' : ''; // Add a comma and newline for non-first documents - buffer += docString; + documentCount += 1; + const docString = EJSON.stringify(doc, undefined, 4); - if (buffer.length > bufferLimit) { - await appendToFile(filePath, buffer); - buffer = ''; // Clear the buffer after writing - } + // Progress reporting for every 100 documents + if (documentCount % 100 === 0) { + ext.outputChannel.trace(l10n.t('{documentCount} documents exported…', { documentCount })); + progress.report({ message: l10n.t('{documentCount} documents exported…', { documentCount }) }); } - // Final buffer flush after the loop - if (buffer.length > 0) { + // Prepare buffer for writing + buffer += buffer.length > 2 ? ',\n' : ''; // Add a comma and newline for non-first documents + buffer += docString; + + if (buffer.length > bufferLimit) { await appendToFile(filePath, buffer); + buffer = ''; // Clear the buffer after writing } + } - await appendToFile(filePath, '\n]'); // End the JSON array - - vscode.window.showInformationMessage(l10n.t('Exported document count: {documentCount}', { documentCount })); - } catch (error) { - throw error; // Re-throw the error to be caught by the outer error handler + // Final buffer flush after the loop + if (buffer.length > 0) { + await appendToFile(filePath, buffer); } + await appendToFile(filePath, '\n]'); // End the JSON array + + vscode.window.showInformationMessage(l10n.t('Exported document count: {documentCount}', { documentCount })); + return documentCount; } From 709634b3e16118dea7ae20199713b6c0e5555fdf Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 12:34:16 +0100 Subject: [PATCH 32/47] fix: keep wizard active on Show Output and use detail field for consistent sizing --- .../deleteFolder/VerifyNoConflictsStep.ts | 28 ++++++++++--------- .../moveItems/VerifyNoConflictsStep.ts | 4 +-- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts index 24defc84b..4986a0153 100644 --- a/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts +++ b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.ts @@ -29,19 +29,21 @@ type ConflictAction = 'exit' | 'show-output'; export class VerifyNoConflictsStep extends AzureWizardPromptStep { public async prompt(context: DeleteFolderWizardContext): Promise { try { - // Use QuickPick with loading state while verifying - const result = await context.ui.showQuickPick(this.verifyAndCount(context), { - placeHolder: l10n.t('Verifying folder can be deleted…'), - loadingPlaceHolder: l10n.t('Analyzing folder contents…'), - suppressPersistence: true, - }); + // Loop to allow re-prompting after "Show Output" + while (true) { + const result = await context.ui.showQuickPick(this.verifyAndCount(context), { + placeHolder: l10n.t('Verifying folder can be deleted…'), + loadingPlaceHolder: l10n.t('Analyzing folder contents…'), + suppressPersistence: true, + }); - // User selected an action (only shown when conflicts exist) - if (result.data === 'show-output') { - ext.outputChannel.show(); - throw new UserCancelledError(); - } else if (result.data === 'exit') { - throw new UserCancelledError(); + // User selected an action (only shown when conflicts exist) + if (result.data === 'show-output') { + ext.outputChannel.show(); + continue; // Re-prompt after showing output + } else if (result.data === 'exit') { + throw new UserCancelledError(); + } } } catch (error) { if (error instanceof VerificationCompleteError) { @@ -89,7 +91,7 @@ export class VerifyNoConflictsStep extends AzureWizardPromptStep Date: Mon, 9 Feb 2026 11:38:53 +0000 Subject: [PATCH 33/47] chore: update changelog and release notes for v0.7.0 with new import/export features and cancellable operations --- CHANGELOG.md | 2 ++ docs/release-notes/0.7.md | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cfd7de8e6..25c363262 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ - **Connection String Validation**: Trims and validates connection string input to avoid empty values. [#467](https://github.com/microsoft/vscode-documentdb/pull/467) - **Collection Paste Feedback**: Refreshes collection metadata after paste and improves error reporting for failed writes. [#482](https://github.com/microsoft/vscode-documentdb/pull/482), [#484](https://github.com/microsoft/vscode-documentdb/pull/484) - **Collection Paste Validation / Input Trimming Consistency**: Fixes inconsistent trimming/validation of user input. [#493](https://github.com/microsoft/vscode-documentdb/pull/493) +- **Cancellable Imports**: Import operations can now be cancelled. [#496](https://github.com/microsoft/vscode-documentdb/pull/496) +- **Import/Export Feedback**: Improves user feedback and error handling for import/export operations. [#495](https://github.com/microsoft/vscode-documentdb/pull/495) ### Fixes diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index de33fe75d..5aa4d461b 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -108,9 +108,14 @@ Collections within DocumentDB databases are now displayed in alphabetical order, - **Invalid query JSON handling**: Reported by [@majelbstoat](https://github.com/majelbstoat) ([#458](https://github.com/microsoft/vscode-documentdb/issues/458)); fixed in [Query Parsing Error Handling](#query-parsing-error-handling). - **Keyboard paste shortcuts**: Reported by [@cveld](https://github.com/cveld) and [@markjbrown](https://github.com/markjbrown) ([#435](https://github.com/microsoft/vscode-documentdb/issues/435)); fixed in [Monaco Editor Keyboard Paste](#monaco-editor-keyboard-paste). - **Collection paste validation & input trimming consistency**: Reported by [@DhruvC-Affine](https://github.com/DhruvC-Affine) in [vscode-documentdb-bugbash-070-partners#4](https://github.com/tnaum-ms/vscode-documentdb-bugbash-070-partners/issues/4); fixed in [#493](https://github.com/microsoft/vscode-documentdb/pull/493). The user spotted that pasting a collection didn't validate the input correctly, but this uncovered a wider issue with lack of consistency when user input was trimmed. This report helped to improve the quality overall. +- **Improved Import/Export Feedback**: Reported by [@MattParkerDev](https://github.com/MattParkerDev) in [vscode-documentdb-bugbash-070-partners#1](https://github.com/tnaum-ms/vscode-documentdb-bugbash-070-partners/issues/1); fixed in [#495](https://github.com/microsoft/vscode-documentdb/pull/495). The user reported that no output was displayed for import success or failure. This has been fixed to provide clear feedback. ## Additional Improvements +### Cancellable Import Operations + +Long-running import operations can now be cancelled. A cancel button is available in the progress notification, allowing you to stop the import process if needed. [#496](https://github.com/microsoft/vscode-documentdb/pull/496) + ### Estimated Document Count Display Collections in the tree view now display an estimated document count, helping you assess collection sizes without running explicit count queries. This makes it easier to understand your data at a glance. From 68798e30d0fb5f81365d4578f8f5c7410b3d463b Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 11:41:21 +0000 Subject: [PATCH 34/47] chore: update changelog and release notes to include webpack dependency update for security --- CHANGELOG.md | 1 + docs/release-notes/0.7.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25c363262..27c847c3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ ### Security - **Dependency Updates**: Updates `qs` and `express` to address security vulnerabilities. [#434](https://github.com/microsoft/vscode-documentdb/pull/434) +- **Webpack Update**: Bumps `webpack` from 5.103.0 to 5.105.0. [#494](https://github.com/microsoft/vscode-documentdb/pull/494) ## 0.6.3 diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index 5aa4d461b..64a20fabb 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -165,9 +165,9 @@ Fixed markdown formatting issues in AI-generated responses from the Query Insigh Resolved UI rendering issues that affected users of dark themes like Nord. Text in certain controls was dark-on-dark and invisible, making parts of the interface unusable. All UI elements now properly respect theme colors for better visibility in both light and dark modes. -### Security Dependency Updates ([#434](https://github.com/microsoft/vscode-documentdb/pull/434)) +### Security Dependency Updates ([#434](https://github.com/microsoft/vscode-documentdb/pull/434), [#494](https://github.com/microsoft/vscode-documentdb/pull/494)) -Updated `qs` and `express` dependencies to address security vulnerabilities, ensuring the extension maintains high security standards. +Updated `qs`, `express` and `webpack` dependencies to address security vulnerabilities, ensuring the extension maintains high security standards. ### Query Parsing Error Handling ([#471](https://github.com/microsoft/vscode-documentdb/pull/471)) From dd8503bab054ed444e61464eb2b25897d3649401 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 13:47:01 +0100 Subject: [PATCH 35/47] fix: add void prefix to floating promises in exportDocuments.ts --- src/commands/exportDocuments/exportDocuments.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/exportDocuments/exportDocuments.ts b/src/commands/exportDocuments/exportDocuments.ts index f43edde0b..0f2fd7bb2 100644 --- a/src/commands/exportDocuments/exportDocuments.ts +++ b/src/commands/exportDocuments/exportDocuments.ts @@ -145,7 +145,7 @@ async function exportDocumentsToFile( // Ignore errors if the file doesn't exist yet (canceled before first write) } ext.outputChannel.warn(l10n.t('Export operation was canceled after {0} document(s).', documentCount)); - vscode.window.showWarningMessage(l10n.t('The export operation was canceled.')); + void vscode.window.showWarningMessage(l10n.t('The export operation was canceled.')); return documentCount; } @@ -175,7 +175,7 @@ async function exportDocumentsToFile( await appendToFile(filePath, '\n]'); // End the JSON array - vscode.window.showInformationMessage(l10n.t('Exported document count: {documentCount}', { documentCount })); + void vscode.window.showInformationMessage(l10n.t('Exported document count: {documentCount}', { documentCount })); return documentCount; } From a2be210850e16faad4546d3b5e9cf032d4c36678 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 13:47:43 +0100 Subject: [PATCH 36/47] fix: add errorHandling to mock context in taskService tests --- src/services/taskService/taskService.test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/services/taskService/taskService.test.ts b/src/services/taskService/taskService.test.ts index 62be0f170..663e6a0c8 100644 --- a/src/services/taskService/taskService.test.ts +++ b/src/services/taskService/taskService.test.ts @@ -31,6 +31,9 @@ jest.mock('@microsoft/vscode-azext-utils', () => ({ properties: {}, measurements: {}, }, + errorHandling: { + suppressDisplay: false, + }, }; return await callback(mockContext); }, From 63b36470548eb2b35ddb26a46e3fd930a1a0cbbe Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 13:49:58 +0100 Subject: [PATCH 37/47] test: add show-output tests for moveItems VerifyNoConflictsStep --- .../moveItems/VerifyNoConflictsStep.test.ts | 72 +++++++++++++++++-- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/src/commands/connections-view/moveItems/VerifyNoConflictsStep.test.ts b/src/commands/connections-view/moveItems/VerifyNoConflictsStep.test.ts index 9d20cf823..827b97aed 100644 --- a/src/commands/connections-view/moveItems/VerifyNoConflictsStep.test.ts +++ b/src/commands/connections-view/moveItems/VerifyNoConflictsStep.test.ts @@ -240,7 +240,7 @@ describe('VerifyNoConflictsStep', () => { (context.ui.showQuickPick as jest.Mock).mockImplementation( async (itemsPromise: Promise[]>) => { const items = await itemsPromise; - expect(items).toHaveLength(2); // 'back' and 'exit' options + expect(items).toHaveLength(3); // 'show-output', 'back' and 'exit' options return { data: 'back' }; }, ); @@ -294,9 +294,8 @@ describe('VerifyNoConflictsStep', () => { // Expected to throw } - // Verify output channel was used + // Verify output channel was used for logging (but not auto-shown) expect(mockAppendLog).toHaveBeenCalled(); - expect(mockShow).toHaveBeenCalled(); // Verify conflict names were logged const logCalls = mockAppendLog.mock.calls.map((call) => call[0]); @@ -382,6 +381,35 @@ describe('VerifyNoConflictsStep', () => { await expect(step.prompt(context)).resolves.not.toThrow(); expect(mockIsNameDuplicateInParent).not.toHaveBeenCalled(); }); + + it('should show output and re-prompt when user selects show-output for naming conflicts', async () => { + const context = createMockContext({ + itemsToMove: [createMockConnectionItem({ name: 'Conflicting Item' })], + targetFolderId: 'target-folder', + }); + + // Simulate conflict + mockIsNameDuplicateInParent.mockResolvedValue(true); + + let callCount = 0; + (context.ui.showQuickPick as jest.Mock).mockImplementation( + async (itemsPromise: Promise[]>) => { + await itemsPromise; + callCount++; + if (callCount === 1) { + return { data: 'show-output' }; // First call: show output + } + return { data: 'exit' }; // Second call: cancel + }, + ); + + await expect(step.prompt(context)).rejects.toThrow(UserCancelledError); + + // show-output should have caused re-prompt (2 calls total) + expect(callCount).toBe(2); + // outputChannel.show() should have been called + expect(mockShow).toHaveBeenCalled(); + }); }); describe('task conflict detection', () => { @@ -518,9 +546,10 @@ describe('VerifyNoConflictsStep', () => { // Expected } - // Task conflicts should only have cancel option (no go back) - expect(capturedOptions).toHaveLength(1); - expect(capturedOptions[0].data).toBe('exit'); + // Task conflicts should have show-output and cancel options (no go back) + expect(capturedOptions).toHaveLength(2); + expect(capturedOptions[0].data).toBe('show-output'); + expect(capturedOptions[1].data).toBe('exit'); }); it('should log task conflict details to output channel', async () => { @@ -555,5 +584,36 @@ describe('VerifyNoConflictsStep', () => { expect.arrayContaining([expect.objectContaining({ taskId: 'task-1' })]), ); }); + + it('should show output and re-prompt when user selects show-output for task conflicts', async () => { + const context = createMockContext({ + itemsToMove: [createMockConnectionItem({ id: 'conn-1', name: 'Connection 1' })], + }); + + mockFindConflictingTasksForConnections.mockReturnValue([ + { taskId: 'task-1', taskName: 'Copy Task', taskType: 'copy-paste' }, + ]); + + let callCount = 0; + const mockShowQuickPick = jest.fn().mockImplementation(async (itemsPromise: Promise) => { + await itemsPromise; + callCount++; + if (callCount === 1) { + return { data: 'show-output' }; // First call: show output + } + return { data: 'exit' }; // Second call: cancel + }); + context.ui = { + ...context.ui, + showQuickPick: mockShowQuickPick, + } as unknown as typeof context.ui; + + await expect(step.prompt(context)).rejects.toThrow(UserCancelledError); + + // show-output should have caused re-prompt (2 calls total) + expect(callCount).toBe(2); + // outputChannel.show() should have been called + expect(mockShow).toHaveBeenCalled(); + }); }); }); From d7c0d706648156f6a0b4d77b735838e45d36d7b0 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 13:52:42 +0100 Subject: [PATCH 38/47] test: add tests for deleteFolder VerifyNoConflictsStep show-output --- .../VerifyNoConflictsStep.test.ts | 263 ++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts diff --git a/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts new file mode 100644 index 000000000..cebd0ee8e --- /dev/null +++ b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts @@ -0,0 +1,263 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { UserCancelledError } from '@microsoft/vscode-azext-utils'; +import { ConnectionType, ItemType } from '../../../services/connectionStorageService'; +import { type DeleteFolderWizardContext } from './DeleteFolderWizardContext'; +import { VerifyNoConflictsStep } from './VerifyNoConflictsStep'; + +// Mock ConnectionStorageService +const mockGetChildren = jest.fn(); +jest.mock('../../../services/connectionStorageService', () => ({ + ConnectionStorageService: { + getChildren: (...args: unknown[]) => mockGetChildren(...args), + }, + ConnectionType: { + Clusters: 'clusters', + Emulators: 'emulators', + }, + ItemType: { + Connection: 'connection', + Folder: 'folder', + }, +})); + +// Mock TaskService +const mockFindConflictingTasksForConnections = jest.fn< + Array<{ taskId: string; taskName: string; taskType: string }>, + [string[]] +>(() => []); +jest.mock('../../../services/taskService/taskService', () => ({ + TaskService: { + findConflictingTasksForConnections: (connectionIds: string[]) => + mockFindConflictingTasksForConnections(connectionIds), + }, +})); + +// Mock verificationUtils +const mockEnumerateConnectionsInFolder = jest.fn, [string, string]>(); +const mockLogTaskConflicts = jest.fn(); +jest.mock('../verificationUtils', () => ({ + VerificationCompleteError: class VerificationCompleteError extends Error { + constructor() { + super('Conflict verification completed successfully'); + this.name = 'VerificationCompleteError'; + } + }, + findConflictingTasks: jest.requireActual('../verificationUtils').findConflictingTasks, + enumerateConnectionsInFolder: (...args: unknown[]) => mockEnumerateConnectionsInFolder(...(args as [string, string])), + logTaskConflicts: (...args: unknown[]) => mockLogTaskConflicts(...args), +})); + +// Mock extensionVariables +const mockAppendLog = jest.fn(); +const mockShow = jest.fn(); +jest.mock('../../../extensionVariables', () => ({ + ext: { + outputChannel: { + get appendLog() { + return mockAppendLog; + }, + get show() { + return mockShow; + }, + }, + }, +})); + +// Mock vscode l10n +jest.mock('@vscode/l10n', () => ({ + t: jest.fn((str: string) => str), +})); + +// Helper to create mock context +function createMockContext(overrides: Partial = {}): DeleteFolderWizardContext { + return { + telemetry: { properties: {}, measurements: {} }, + errorHandling: { issueProperties: {} }, + valuesToMask: [], + ui: { + showQuickPick: jest.fn(), + showInputBox: jest.fn(), + showWarningMessage: jest.fn(), + onDidFinishPrompt: jest.fn(), + showOpenDialog: jest.fn(), + showWorkspaceFolderPick: jest.fn(), + }, + folderItem: overrides.folderItem ?? { + storageId: 'folder-1', + name: 'Test Folder', + }, + connectionType: overrides.connectionType ?? ConnectionType.Clusters, + foldersToDelete: 0, + connectionsToDelete: 0, + conflictingTasks: [], + ...overrides, + } as DeleteFolderWizardContext; +} + +describe('VerifyNoConflictsStep (deleteFolder)', () => { + let step: VerifyNoConflictsStep; + + beforeEach(() => { + jest.clearAllMocks(); + step = new VerifyNoConflictsStep(); + mockGetChildren.mockResolvedValue([]); + mockEnumerateConnectionsInFolder.mockResolvedValue([]); + mockFindConflictingTasksForConnections.mockReturnValue([]); + }); + + describe('shouldPrompt', () => { + it('should always return true', () => { + expect(step.shouldPrompt()).toBe(true); + }); + }); + + describe('prompt - no conflicts', () => { + it('should proceed without error when no conflicts exist', async () => { + const context = createMockContext(); + + (context.ui.showQuickPick as jest.Mock).mockImplementation( + async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }, + ); + + // Should complete without error (VerificationCompleteError is caught internally) + await expect(step.prompt(context)).resolves.not.toThrow(); + }); + + it('should count descendants correctly', async () => { + const context = createMockContext(); + + // Simulate folder with 2 connections and 1 subfolder containing 1 connection + mockGetChildren + .mockResolvedValueOnce([ + { id: 'conn-1', properties: { type: ItemType.Connection } }, + { id: 'conn-2', properties: { type: ItemType.Connection } }, + { id: 'subfolder-1', properties: { type: ItemType.Folder } }, + ]) + .mockResolvedValueOnce([ + { id: 'conn-3', properties: { type: ItemType.Connection } }, + ]); + + (context.ui.showQuickPick as jest.Mock).mockImplementation( + async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }, + ); + + await step.prompt(context); + + expect(context.foldersToDelete).toBe(2); // 1 subfolder + 1 for the folder itself + expect(context.connectionsToDelete).toBe(3); + }); + }); + + describe('prompt - task conflicts', () => { + it('should throw UserCancelledError when user selects cancel', async () => { + const context = createMockContext(); + + mockEnumerateConnectionsInFolder.mockResolvedValue(['conn-1']); + mockFindConflictingTasksForConnections.mockReturnValue([ + { taskId: 'task-1', taskName: 'Copy Task', taskType: 'copy-paste' }, + ]); + + (context.ui.showQuickPick as jest.Mock).mockImplementation( + async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }, + ); + + await expect(step.prompt(context)).rejects.toThrow(UserCancelledError); + expect(context.conflictingTasks).toHaveLength(1); + }); + + it('should offer show-output and cancel options for task conflicts', async () => { + const context = createMockContext(); + + mockEnumerateConnectionsInFolder.mockResolvedValue(['conn-1']); + mockFindConflictingTasksForConnections.mockReturnValue([ + { taskId: 'task-1', taskName: 'Copy Task', taskType: 'copy-paste' }, + ]); + + let capturedOptions: Array<{ data: string }> = []; + (context.ui.showQuickPick as jest.Mock).mockImplementation( + async (itemsPromise: Promise>) => { + capturedOptions = await itemsPromise; + return { data: 'exit' }; + }, + ); + + try { + await step.prompt(context); + } catch { + // Expected + } + + expect(capturedOptions).toHaveLength(2); + expect(capturedOptions[0].data).toBe('show-output'); + expect(capturedOptions[1].data).toBe('exit'); + }); + + it('should show output and re-prompt when user selects show-output', async () => { + const context = createMockContext(); + + mockEnumerateConnectionsInFolder.mockResolvedValue(['conn-1']); + mockFindConflictingTasksForConnections.mockReturnValue([ + { taskId: 'task-1', taskName: 'Copy Task', taskType: 'copy-paste' }, + ]); + + let callCount = 0; + (context.ui.showQuickPick as jest.Mock).mockImplementation( + async (itemsPromise: Promise) => { + await itemsPromise; + callCount++; + if (callCount === 1) { + return { data: 'show-output' }; + } + return { data: 'exit' }; + }, + ); + + await expect(step.prompt(context)).rejects.toThrow(UserCancelledError); + + // show-output should have caused re-prompt (2 calls total) + expect(callCount).toBe(2); + // outputChannel.show() should have been called + expect(mockShow).toHaveBeenCalled(); + }); + + it('should log task conflict details', async () => { + const context = createMockContext(); + + mockEnumerateConnectionsInFolder.mockResolvedValue(['conn-1']); + mockFindConflictingTasksForConnections.mockReturnValue([ + { taskId: 'task-1', taskName: 'Copy Task', taskType: 'copy-paste' }, + ]); + + (context.ui.showQuickPick as jest.Mock).mockImplementation( + async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }, + ); + + try { + await step.prompt(context); + } catch { + // Expected + } + + expect(mockLogTaskConflicts).toHaveBeenCalledWith( + expect.any(String), + expect.arrayContaining([expect.objectContaining({ taskId: 'task-1' })]), + ); + }); + }); +}); From 5485a34ccae7fbb30644d0ab27ecb223be24dd8c Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 14:30:33 +0100 Subject: [PATCH 39/47] refactor: simplify mock implementation for showQuickPick in VerifyNoConflictsStep tests --- .../VerifyNoConflictsStep.test.ts | 65 ++++++++----------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts index cebd0ee8e..b1d9a1ca5 100644 --- a/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts +++ b/src/commands/connections-view/deleteFolder/VerifyNoConflictsStep.test.ts @@ -47,7 +47,8 @@ jest.mock('../verificationUtils', () => ({ } }, findConflictingTasks: jest.requireActual('../verificationUtils').findConflictingTasks, - enumerateConnectionsInFolder: (...args: unknown[]) => mockEnumerateConnectionsInFolder(...(args as [string, string])), + enumerateConnectionsInFolder: (...args: unknown[]) => + mockEnumerateConnectionsInFolder(...(args as [string, string])), logTaskConflicts: (...args: unknown[]) => mockLogTaskConflicts(...args), })); @@ -119,12 +120,10 @@ describe('VerifyNoConflictsStep (deleteFolder)', () => { it('should proceed without error when no conflicts exist', async () => { const context = createMockContext(); - (context.ui.showQuickPick as jest.Mock).mockImplementation( - async (itemsPromise: Promise) => { - await itemsPromise; - return { data: 'exit' }; - }, - ); + (context.ui.showQuickPick as jest.Mock).mockImplementation(async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }); // Should complete without error (VerificationCompleteError is caught internally) await expect(step.prompt(context)).resolves.not.toThrow(); @@ -140,16 +139,12 @@ describe('VerifyNoConflictsStep (deleteFolder)', () => { { id: 'conn-2', properties: { type: ItemType.Connection } }, { id: 'subfolder-1', properties: { type: ItemType.Folder } }, ]) - .mockResolvedValueOnce([ - { id: 'conn-3', properties: { type: ItemType.Connection } }, - ]); + .mockResolvedValueOnce([{ id: 'conn-3', properties: { type: ItemType.Connection } }]); - (context.ui.showQuickPick as jest.Mock).mockImplementation( - async (itemsPromise: Promise) => { - await itemsPromise; - return { data: 'exit' }; - }, - ); + (context.ui.showQuickPick as jest.Mock).mockImplementation(async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }); await step.prompt(context); @@ -167,12 +162,10 @@ describe('VerifyNoConflictsStep (deleteFolder)', () => { { taskId: 'task-1', taskName: 'Copy Task', taskType: 'copy-paste' }, ]); - (context.ui.showQuickPick as jest.Mock).mockImplementation( - async (itemsPromise: Promise) => { - await itemsPromise; - return { data: 'exit' }; - }, - ); + (context.ui.showQuickPick as jest.Mock).mockImplementation(async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }); await expect(step.prompt(context)).rejects.toThrow(UserCancelledError); expect(context.conflictingTasks).toHaveLength(1); @@ -214,16 +207,14 @@ describe('VerifyNoConflictsStep (deleteFolder)', () => { ]); let callCount = 0; - (context.ui.showQuickPick as jest.Mock).mockImplementation( - async (itemsPromise: Promise) => { - await itemsPromise; - callCount++; - if (callCount === 1) { - return { data: 'show-output' }; - } - return { data: 'exit' }; - }, - ); + (context.ui.showQuickPick as jest.Mock).mockImplementation(async (itemsPromise: Promise) => { + await itemsPromise; + callCount++; + if (callCount === 1) { + return { data: 'show-output' }; + } + return { data: 'exit' }; + }); await expect(step.prompt(context)).rejects.toThrow(UserCancelledError); @@ -241,12 +232,10 @@ describe('VerifyNoConflictsStep (deleteFolder)', () => { { taskId: 'task-1', taskName: 'Copy Task', taskType: 'copy-paste' }, ]); - (context.ui.showQuickPick as jest.Mock).mockImplementation( - async (itemsPromise: Promise) => { - await itemsPromise; - return { data: 'exit' }; - }, - ); + (context.ui.showQuickPick as jest.Mock).mockImplementation(async (itemsPromise: Promise) => { + await itemsPromise; + return { data: 'exit' }; + }); try { await step.prompt(context); From e8106e3fce28ecd7d8f97649f74b072d68a3d221 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 14:27:18 +0000 Subject: [PATCH 40/47] chore: update changelog and release notes for v0.7.0 enhancements and fixes --- CHANGELOG.md | 20 ++++++++++---------- docs/release-notes/0.7.md | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27c847c3d..3b047d439 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,26 +9,26 @@ ### Improvements -- **Estimated Document Count**: Shows an estimated document count for collections in the tree view. [#170](https://github.com/microsoft/vscode-documentdb/pull/170) -- **Copy Connection String with Password**: Adds an option to include the password when copying a connection string. [#436](https://github.com/microsoft/vscode-documentdb/pull/436) -- **Release Notes Notification**: Prompts users to view release notes after upgrading to a new major or minor version. [#487](https://github.com/microsoft/vscode-documentdb/pull/487) - **Accessibility**: Improves screen reader announcements, keyboard navigation, and ARIA labeling across Query Insights and document editing. [#374](https://github.com/microsoft/vscode-documentdb/issues/374), [#375](https://github.com/microsoft/vscode-documentdb/issues/375), [#377](https://github.com/microsoft/vscode-documentdb/issues/377), [#378](https://github.com/microsoft/vscode-documentdb/issues/378), [#379](https://github.com/microsoft/vscode-documentdb/issues/379), [#380](https://github.com/microsoft/vscode-documentdb/issues/380), [#381](https://github.com/microsoft/vscode-documentdb/issues/381), [#384](https://github.com/microsoft/vscode-documentdb/issues/384), [#385](https://github.com/microsoft/vscode-documentdb/issues/385) - **Alphabetical Collection Sorting**: Sorts collections alphabetically in the tree view. [#456](https://github.com/microsoft/vscode-documentdb/issues/456), [#465](https://github.com/microsoft/vscode-documentdb/pull/465) -- **Query Insights Prompt Hardening**: Updates the Query Insights model/prompt and adds additional prompt-injection mitigations. [#468](https://github.com/microsoft/vscode-documentdb/pull/468) -- **Connection String Validation**: Trims and validates connection string input to avoid empty values. [#467](https://github.com/microsoft/vscode-documentdb/pull/467) -- **Collection Paste Feedback**: Refreshes collection metadata after paste and improves error reporting for failed writes. [#482](https://github.com/microsoft/vscode-documentdb/pull/482), [#484](https://github.com/microsoft/vscode-documentdb/pull/484) -- **Collection Paste Validation / Input Trimming Consistency**: Fixes inconsistent trimming/validation of user input. [#493](https://github.com/microsoft/vscode-documentdb/pull/493) - **Cancellable Imports**: Import operations can now be cancelled. [#496](https://github.com/microsoft/vscode-documentdb/pull/496) +- **Collection Paste Feedback**: Refreshes collection metadata after paste and improves error reporting for failed writes. [#482](https://github.com/microsoft/vscode-documentdb/pull/482), [#484](https://github.com/microsoft/vscode-documentdb/pull/484) +- **Collection Paste Validation and Input Trimming Consistency**: Fixes inconsistent trimming/validation of user input. [#493](https://github.com/microsoft/vscode-documentdb/pull/493) +- **Connection String Validation**: Trims and validates connection string input to avoid empty values. [#467](https://github.com/microsoft/vscode-documentdb/pull/467) +- **Copy Connection String with Password**: Adds an option to include the password when copying a connection string. [#436](https://github.com/microsoft/vscode-documentdb/pull/436) +- **Estimated Document Count**: Shows an estimated document count for collections in the tree view. [#170](https://github.com/microsoft/vscode-documentdb/pull/170) - **Import/Export Feedback**: Improves user feedback and error handling for import/export operations. [#495](https://github.com/microsoft/vscode-documentdb/pull/495) +- **Query Insights Prompt Hardening**: Updates the Query Insights model/prompt and adds additional prompt-injection mitigations. [#468](https://github.com/microsoft/vscode-documentdb/pull/468) +- **Release Notes Notification**: Prompts users to view release notes after upgrading to a new major or minor version. [#487](https://github.com/microsoft/vscode-documentdb/pull/487) ### Fixes +- **Azure Resources View Expansion**: Fixes cluster expansion failures in the Azure Resources view by deriving resource group information from resource IDs. [#480](https://github.com/microsoft/vscode-documentdb/pull/480) - **Dark Theme Rendering**: Fixes unreadable text in some dark themes by respecting theme colors. [#457](https://github.com/microsoft/vscode-documentdb/issues/457) -- **Query Insights Markdown Rendering**: Restricts AI output formatting to avoid malformed markdown rendering. [#428](https://github.com/microsoft/vscode-documentdb/issues/428) +- **Import from Discovery View**: Fixes document import for Azure Cosmos DB for MongoDB (RU) discovery when connection metadata is not yet cached. [#368](https://github.com/microsoft/vscode-documentdb/issues/368), [#479](https://github.com/microsoft/vscode-documentdb/pull/479) - **Invalid Query JSON**: Shows a clear error when query JSON fails to parse instead of silently using empty objects. [#458](https://github.com/microsoft/vscode-documentdb/issues/458), [#471](https://github.com/microsoft/vscode-documentdb/pull/471) - **Keyboard Paste Shortcuts**: Restores Ctrl+V/Cmd+V in the Query Editor and Document View by pinning Monaco to 0.52.2. [#435](https://github.com/microsoft/vscode-documentdb/issues/435), [#470](https://github.com/microsoft/vscode-documentdb/pull/470) -- **Import from Discovery View**: Fixes document import for Azure Cosmos DB for MongoDB (RU) discovery when connection metadata is not yet cached. [#368](https://github.com/microsoft/vscode-documentdb/issues/368), [#479](https://github.com/microsoft/vscode-documentdb/pull/479) -- **Azure Resources View Expansion**: Fixes cluster expansion failures in the Azure Resources view by deriving resource group information from resource IDs. [#480](https://github.com/microsoft/vscode-documentdb/pull/480) +- **Query Insights Markdown Rendering**: Restricts AI output formatting to avoid malformed markdown rendering. [#428](https://github.com/microsoft/vscode-documentdb/issues/428) ### Security diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index 64a20fabb..fbcd587cd 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -107,8 +107,8 @@ Collections within DocumentDB databases are now displayed in alphabetical order, - **Invalid query JSON handling**: Reported by [@majelbstoat](https://github.com/majelbstoat) ([#458](https://github.com/microsoft/vscode-documentdb/issues/458)); fixed in [Query Parsing Error Handling](#query-parsing-error-handling). - **Keyboard paste shortcuts**: Reported by [@cveld](https://github.com/cveld) and [@markjbrown](https://github.com/markjbrown) ([#435](https://github.com/microsoft/vscode-documentdb/issues/435)); fixed in [Monaco Editor Keyboard Paste](#monaco-editor-keyboard-paste). -- **Collection paste validation & input trimming consistency**: Reported by [@DhruvC-Affine](https://github.com/DhruvC-Affine) in [vscode-documentdb-bugbash-070-partners#4](https://github.com/tnaum-ms/vscode-documentdb-bugbash-070-partners/issues/4); fixed in [#493](https://github.com/microsoft/vscode-documentdb/pull/493). The user spotted that pasting a collection didn't validate the input correctly, but this uncovered a wider issue with lack of consistency when user input was trimmed. This report helped to improve the quality overall. -- **Improved Import/Export Feedback**: Reported by [@MattParkerDev](https://github.com/MattParkerDev) in [vscode-documentdb-bugbash-070-partners#1](https://github.com/tnaum-ms/vscode-documentdb-bugbash-070-partners/issues/1); fixed in [#495](https://github.com/microsoft/vscode-documentdb/pull/495). The user reported that no output was displayed for import success or failure. This has been fixed to provide clear feedback. +- **Collection paste validation & input trimming consistency**: Reported by [@DhruvC-Affine](https://github.com/DhruvC-Affine); fixed in [#493](https://github.com/microsoft/vscode-documentdb/pull/493). The user spotted that pasting a collection didn't validate the input correctly, but this uncovered a wider issue with lack of consistency when user input was trimmed. This report helped to improve the quality overall. +- **Improved Import/Export Feedback**: Reported by [@MattParkerDev](https://github.com/MattParkerDev); fixed in [#495](https://github.com/microsoft/vscode-documentdb/pull/495). The user reported that no output was displayed for import success or failure. This has been fixed to provide clear feedback. ## Additional Improvements From cd442d605551ef81ee27a70a8c4568713a964f43 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 14:52:09 +0000 Subject: [PATCH 41/47] chore: update release notes --- docs/release-notes/0.7.md | 64 +++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index fbcd587cd..8b36c6688 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -73,9 +73,9 @@ Accessibility is a core value for us, and this release includes improvements to **Screen Reader Enhancements** -- **Search Results Announcements** ([#384](https://github.com/microsoft/vscode-documentdb/issues/384)): Screen readers now properly announce search result counts and "No Results Found" messages in the Collection View - **AI Analysis Status** ([#380](https://github.com/microsoft/vscode-documentdb/issues/380)): Screen readers now announce the "AI is analyzing..." status message instead of generic "Document" text in Query Insights - **Rating Button Context** ([#381](https://github.com/microsoft/vscode-documentdb/issues/381)): Added proper grouping labels so screen readers announce "How would you rate AI insights?" when focusing on like/dislike buttons +- **Search Results Announcements** ([#384](https://github.com/microsoft/vscode-documentdb/issues/384)): Screen readers now properly announce search result counts and "No Results Found" messages in the Collection View **Keyboard Navigation Improvements** @@ -84,10 +84,10 @@ Accessibility is a core value for us, and this release includes improvements to **ARIA Labeling Fixes** -- **Query Field Labels** ([#379](https://github.com/microsoft/vscode-documentdb/issues/379)): Added proper visual labels for query fields with programmatic names that correctly reflect field purpose - **Button Naming** ([#378](https://github.com/microsoft/vscode-documentdb/issues/378)): Next, Previous, and Close buttons in the Tips section now have proper accessible names -- **Spin Button Labels** ([#377](https://github.com/microsoft/vscode-documentdb/issues/377)): Skip and Limit spin buttons now have appropriate accessible names for assistive technologies - **Label-in-Name Compliance** ([#374](https://github.com/microsoft/vscode-documentdb/issues/374)): Refresh and Validate buttons now have accessible names that include their visual labels, ensuring compatibility with voice control +- **Query Field Labels** ([#379](https://github.com/microsoft/vscode-documentdb/issues/379)): Added proper visual labels for query fields with programmatic names that correctly reflect field purpose +- **Spin Button Labels** ([#377](https://github.com/microsoft/vscode-documentdb/issues/377)): Skip and Limit spin buttons now have appropriate accessible names for assistive technologies **User Impact** @@ -105,10 +105,10 @@ Collections within DocumentDB databases are now displayed in alphabetical order, ### 2️⃣ Bug Reports from the Community -- **Invalid query JSON handling**: Reported by [@majelbstoat](https://github.com/majelbstoat) ([#458](https://github.com/microsoft/vscode-documentdb/issues/458)); fixed in [Query Parsing Error Handling](#query-parsing-error-handling). -- **Keyboard paste shortcuts**: Reported by [@cveld](https://github.com/cveld) and [@markjbrown](https://github.com/markjbrown) ([#435](https://github.com/microsoft/vscode-documentdb/issues/435)); fixed in [Monaco Editor Keyboard Paste](#monaco-editor-keyboard-paste). - **Collection paste validation & input trimming consistency**: Reported by [@DhruvC-Affine](https://github.com/DhruvC-Affine); fixed in [#493](https://github.com/microsoft/vscode-documentdb/pull/493). The user spotted that pasting a collection didn't validate the input correctly, but this uncovered a wider issue with lack of consistency when user input was trimmed. This report helped to improve the quality overall. +- **Invalid query JSON handling**: Reported by [@majelbstoat](https://github.com/majelbstoat) ([#458](https://github.com/microsoft/vscode-documentdb/issues/458)); fixed in [Query Parsing Error Handling](#query-parsing-error-handling). - **Improved Import/Export Feedback**: Reported by [@MattParkerDev](https://github.com/MattParkerDev); fixed in [#495](https://github.com/microsoft/vscode-documentdb/pull/495). The user reported that no output was displayed for import success or failure. This has been fixed to provide clear feedback. +- **Keyboard paste shortcuts**: Reported by [@cveld](https://github.com/cveld) and [@markjbrown](https://github.com/markjbrown) ([#435](https://github.com/microsoft/vscode-documentdb/issues/435)); fixed in [Monaco Editor Keyboard Paste](#monaco-editor-keyboard-paste). ## Additional Improvements @@ -116,23 +116,21 @@ Collections within DocumentDB databases are now displayed in alphabetical order, Long-running import operations can now be cancelled. A cancel button is available in the progress notification, allowing you to stop the import process if needed. [#496](https://github.com/microsoft/vscode-documentdb/pull/496) -### Estimated Document Count Display +### Connection String Handling ([#467](https://github.com/microsoft/vscode-documentdb/pull/467)) -Collections in the tree view now display an estimated document count, helping you assess collection sizes without running explicit count queries. This makes it easier to understand your data at a glance. +Connection string inputs are now automatically trimmed and validated. This prevents issues when pasting connection strings that may contain leading or trailing whitespace, ensuring successful connections every time. -### Query Insights Performance Enhancement ([#468](https://github.com/microsoft/vscode-documentdb/pull/468)) +### Copy Connection String with Password ([#436](https://github.com/microsoft/vscode-documentdb/pull/436)) -The Query Insights feature has been improved with an updated AI model (GPT-4o) and refined prompt architecture. Key improvements include: +When copying connection details to the clipboard, you can now choose whether to include the password. Previously, it wasn't possible to copy connection strings with passwords included—this option provides the flexibility needed for different security contexts. -- **Faster Response Times**: The GPT-4o model delivers query analysis results more quickly than previous models -- **Enhanced Security**: Restructured prompt components with explicit delimiters and security instructions to protect against prompt injection attacks -- **Better Reliability**: Improved prompt structure ensures more consistent and accurate recommendations +### Estimated Document Count Display -These changes make the Query Insights feature faster and more reliable for analyzing query performance. +Collections in the tree view now display an estimated document count, helping you assess collection sizes without running explicit count queries. This makes it easier to understand your data at a glance. -### Connection String Handling ([#467](https://github.com/microsoft/vscode-documentdb/pull/467)) +### Improved AI Response Formatting ([#428](https://github.com/microsoft/vscode-documentdb/issues/428)) -Connection string inputs are now automatically trimmed and validated. This prevents issues when pasting connection strings that may contain leading or trailing whitespace, ensuring successful connections every time. +Fixed markdown formatting issues in AI-generated responses from the Query Insights feature. The extension now restricts formatting options to prevent malformed output, ensuring recommendations are always readable and properly rendered. ### Improved Data Migration Feedback @@ -141,9 +139,15 @@ Two enhancements improve the collection paste experience: - **Accurate Count Updates** ([#482](https://github.com/microsoft/vscode-documentdb/pull/482)): Document count estimates now refresh correctly after paste operations, even when some documents fail to insert - **Complete Error Logging** ([#484](https://github.com/microsoft/vscode-documentdb/pull/484)): All write errors, including unique index violations, are now properly logged. Failed operations automatically open the output log to ensure you don't miss important error details -### Copy Connection String with Password ([#436](https://github.com/microsoft/vscode-documentdb/pull/436)) +### Query Insights Performance Enhancement ([#468](https://github.com/microsoft/vscode-documentdb/pull/468)) -When copying connection details to the clipboard, you can now choose whether to include the password. Previously, it wasn't possible to copy connection strings with passwords included—this option provides the flexibility needed for different security contexts. +The Query Insights feature has been improved with an updated AI model (GPT-4o) and refined prompt architecture. Key improvements include: + +- **Faster Response Times**: The GPT-4o model delivers query analysis results more quickly than previous models +- **Enhanced Security**: Restructured prompt components with explicit delimiters and security instructions to protect against prompt injection attacks +- **Better Reliability**: Improved prompt structure ensures more consistent and accurate recommendations + +These changes make the Query Insights feature faster and more reliable for analyzing query performance. ### Release Notes Notification on Upgrade ([#487](https://github.com/microsoft/vscode-documentdb/pull/487)) @@ -155,25 +159,19 @@ The notification appears when the Connections View becomes visible, and lets you - Choose Remind Me Later to see it again next session - Ignore the notification for that version -### Improved AI Response Formatting ([#428](https://github.com/microsoft/vscode-documentdb/issues/428)) +## Key Fixes -Fixed markdown formatting issues in AI-generated responses from the Query Insights feature. The extension now restricts formatting options to prevent malformed output, ensuring recommendations are always readable and properly rendered. +### Azure Resources View Connectivity ([#480](https://github.com/microsoft/vscode-documentdb/pull/480)) -## Key Fixes +Resolved connection failures when expanding Azure DocumentDB clusters in the Azure Resources view. Previously, undefined resource group metadata caused cryptic API errors. The extension now correctly extracts resource group information from resource IDs, ensuring reliable connectivity to vCore and Azure Cosmos DB for MongoDB (RU) clusters. ### Dark Theme Support ([#457](https://github.com/microsoft/vscode-documentdb/issues/457)) Resolved UI rendering issues that affected users of dark themes like Nord. Text in certain controls was dark-on-dark and invisible, making parts of the interface unusable. All UI elements now properly respect theme colors for better visibility in both light and dark modes. -### Security Dependency Updates ([#434](https://github.com/microsoft/vscode-documentdb/pull/434), [#494](https://github.com/microsoft/vscode-documentdb/pull/494)) - -Updated `qs`, `express` and `webpack` dependencies to address security vulnerabilities, ensuring the extension maintains high security standards. - -### Query Parsing Error Handling ([#471](https://github.com/microsoft/vscode-documentdb/pull/471)) - - +### Document Import from Discovery View ([#479](https://github.com/microsoft/vscode-documentdb/pull/479)) -Fixed an issue where invalid JSON in query fields (filter, projection, sort) was silently replaced with empty objects, making it difficult to understand why queries weren't working as expected. Parse failures now display clear error dialogs with helpful JSON syntax examples. **Reported by [@majelbstoat](https://github.com/majelbstoat)** in [#458](https://github.com/microsoft/vscode-documentdb/issues/458). +Fixed document import failures when using the Azure Service Discovery View with Azure Cosmos DB for MongoDB (RU) resources. The extension now properly retrieves connection strings even when metadata cache hasn't fully populated, ensuring reliable imports from discovered resources. Resolves [#368](https://github.com/microsoft/vscode-documentdb/issues/368). ### Monaco Editor Keyboard Paste ([#470](https://github.com/microsoft/vscode-documentdb/pull/470)) @@ -181,13 +179,15 @@ Fixed an issue where invalid JSON in query fields (filter, projection, sort) was Restored keyboard paste functionality (`Ctrl+V` / `Cmd+V`) in the Query Editor and Document View. A regression in Monaco Editor 0.53.x/0.54.x broke keyboard shortcuts for paste operations. Downgrading to Monaco 0.52.2 resolves this issue. Context menu paste always worked, but keyboard shortcuts are now functional again. **Reported by [@cveld](https://github.com/cveld)** in [#435](https://github.com/microsoft/vscode-documentdb/issues/435). -### Document Import from Discovery View ([#479](https://github.com/microsoft/vscode-documentdb/pull/479)) +### Query Parsing Error Handling ([#471](https://github.com/microsoft/vscode-documentdb/pull/471)) -Fixed document import failures when using the Azure Service Discovery View with Azure Cosmos DB for MongoDB (RU) resources. The extension now properly retrieves connection strings even when metadata cache hasn't fully populated, ensuring reliable imports from discovered resources. Resolves [#368](https://github.com/microsoft/vscode-documentdb/issues/368). + -### Azure Resources View Connectivity ([#480](https://github.com/microsoft/vscode-documentdb/pull/480)) +Fixed an issue where invalid JSON in query fields (filter, projection, sort) was silently replaced with empty objects, making it difficult to understand why queries weren't working as expected. Parse failures now display clear error dialogs with helpful JSON syntax examples. **Reported by [@majelbstoat](https://github.com/majelbstoat)** in [#458](https://github.com/microsoft/vscode-documentdb/issues/458). -Resolved connection failures when expanding Azure DocumentDB clusters in the Azure Resources view. Previously, undefined resource group metadata caused cryptic API errors. The extension now correctly extracts resource group information from resource IDs, ensuring reliable connectivity to vCore and Azure Cosmos DB for MongoDB (RU) clusters. +### Security Dependency Updates ([#434](https://github.com/microsoft/vscode-documentdb/pull/434), [#494](https://github.com/microsoft/vscode-documentdb/pull/494)) + +Updated `qs`, `express` and `webpack` dependencies to address security vulnerabilities, ensuring the extension maintains high security standards. ## Changelog From 9e7ec794d59e94acdde377d9e10f42d20558076a Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 19:00:23 +0100 Subject: [PATCH 42/47] fix: https://github.com/microsoft/vscode-documentdb/pull/496#discussion_r2782024322 --- src/commands/importDocuments/importDocuments.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/commands/importDocuments/importDocuments.ts b/src/commands/importDocuments/importDocuments.ts index 9fdf01dde..82b323216 100644 --- a/src/commands/importDocuments/importDocuments.ts +++ b/src/commands/importDocuments/importDocuments.ts @@ -391,7 +391,21 @@ async function insertDocumentWithBufferIntoCluster( if (error.writeErrors) { const errors = Array.isArray(error.writeErrors) ? error.writeErrors : [error.writeErrors]; for (const writeError of errors) { - ext.outputChannel.error(' ' + l10n.t('Write error: {0}', String(writeError))); + // Extract error message from WriteError object + // WriteError objects have errmsg property, other errors may have message + let errorMsg = ''; + if (typeof writeError === 'object' && writeError !== null) { + if (typeof (writeError as unknown as { errmsg?: string }).errmsg === 'string') { + errorMsg = (writeError as unknown as { errmsg: string }).errmsg; + } else if (typeof (writeError as unknown as { message?: string }).message === 'string') { + errorMsg = (writeError as unknown as { message: string }).message; + } else { + errorMsg = JSON.stringify(writeError); + } + } else { + errorMsg = JSON.stringify(writeError); + } + ext.outputChannel.error(' ' + l10n.t('Write error: {0}', errorMsg)); } } return { From b17b362748824cb72656cf3358e8679780e2f7b7 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 18:33:54 +0000 Subject: [PATCH 43/47] fix: npm run 10n --- l10n/bundle.l10n.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 57bf8ee78..5ee448e53 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -743,8 +743,8 @@ "Optimizing the index on {0} can improve query performance by better matching the query pattern.": "Optimizing the index on {0} can improve query performance by better matching the query pattern.", "Overwrite existing documents": "Overwrite existing documents", "Overwrite existing documents that share the same _id; other write errors will abort the operation.": "Overwrite existing documents that share the same _id; other write errors will abort the operation.", - "Password cannot be empty": "Password cannot be empty", "Parsing file {0}: {1}": "Parsing file {0}: {1}", + "Password cannot be empty": "Password cannot be empty", "Password for {username_at_resource}": "Password for {username_at_resource}", "Paste Collection": "Paste Collection", "Pasting…": "Pasting…", From 22467034830b3ae69f4ee8559c9b4b51b8f8845b Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 20:47:54 +0100 Subject: [PATCH 44/47] fix: enhance collection paste experience with accurate count updates and improved error logging --- docs/release-notes/0.7.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index 8b36c6688..cef5302e5 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -137,7 +137,7 @@ Fixed markdown formatting issues in AI-generated responses from the Query Insigh Two enhancements improve the collection paste experience: - **Accurate Count Updates** ([#482](https://github.com/microsoft/vscode-documentdb/pull/482)): Document count estimates now refresh correctly after paste operations, even when some documents fail to insert -- **Complete Error Logging** ([#484](https://github.com/microsoft/vscode-documentdb/pull/484)): All write errors, including unique index violations, are now properly logged. Failed operations automatically open the output log to ensure you don't miss important error details +- **Complete Error Logging** ([#484](https://github.com/microsoft/vscode-documentdb/pull/484)): All write errors, including unique index violations, are now properly logged. A "Show Output" button is included in error notifications, allowing you to quickly access detailed logs when an operation fails. ### Query Insights Performance Enhancement ([#468](https://github.com/microsoft/vscode-documentdb/pull/468)) From af95b9a6e0edcd319bb9691ee8438cffc70a6d7c Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Mon, 9 Feb 2026 21:00:02 +0100 Subject: [PATCH 45/47] fix: improve dark theme visibility and enhance collection paste validation consistency --- docs/release-notes/0.7.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index cef5302e5..14bffb9c3 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -106,6 +106,7 @@ Collections within DocumentDB databases are now displayed in alphabetical order, ### 2️⃣ Bug Reports from the Community - **Collection paste validation & input trimming consistency**: Reported by [@DhruvC-Affine](https://github.com/DhruvC-Affine); fixed in [#493](https://github.com/microsoft/vscode-documentdb/pull/493). The user spotted that pasting a collection didn't validate the input correctly, but this uncovered a wider issue with lack of consistency when user input was trimmed. This report helped to improve the quality overall. +- **Dark theme visibility**: Reported by [@majelbstoat](https://github.com/majelbstoat) ([#457](https://github.com/microsoft/vscode-documentdb/issues/457)); fixed in [Dark Theme Support](#dark-theme-support). - **Invalid query JSON handling**: Reported by [@majelbstoat](https://github.com/majelbstoat) ([#458](https://github.com/microsoft/vscode-documentdb/issues/458)); fixed in [Query Parsing Error Handling](#query-parsing-error-handling). - **Improved Import/Export Feedback**: Reported by [@MattParkerDev](https://github.com/MattParkerDev); fixed in [#495](https://github.com/microsoft/vscode-documentdb/pull/495). The user reported that no output was displayed for import success or failure. This has been fixed to provide clear feedback. - **Keyboard paste shortcuts**: Reported by [@cveld](https://github.com/cveld) and [@markjbrown](https://github.com/markjbrown) ([#435](https://github.com/microsoft/vscode-documentdb/issues/435)); fixed in [Monaco Editor Keyboard Paste](#monaco-editor-keyboard-paste). @@ -167,7 +168,9 @@ Resolved connection failures when expanding Azure DocumentDB clusters in the Azu ### Dark Theme Support ([#457](https://github.com/microsoft/vscode-documentdb/issues/457)) -Resolved UI rendering issues that affected users of dark themes like Nord. Text in certain controls was dark-on-dark and invisible, making parts of the interface unusable. All UI elements now properly respect theme colors for better visibility in both light and dark modes. + + +Resolved UI rendering issues that affected users of dark themes like Nord. Text in certain controls was dark-on-dark and invisible, making parts of the interface unusable. All UI elements now properly respect theme colors for better visibility in both light and dark modes. **Reported by [@majelbstoat](https://github.com/majelbstoat)** in [#435](https://github.com/microsoft/vscode-documentdb/issues/457). ### Document Import from Discovery View ([#479](https://github.com/microsoft/vscode-documentdb/pull/479)) From 7a3424db7c87e59c8b9387e5bc63c6ec214d55c3 Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Tue, 10 Feb 2026 10:34:16 +0100 Subject: [PATCH 46/47] Refactor code structure for improved readability and maintainability --- docs/release-notes/0.7.md | 2 +- .../images/0.7.0_copy_and_paste.png | Bin 0 -> 338493 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/release-notes/images/0.7.0_copy_and_paste.png diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index 14bffb9c3..f87c8657e 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -14,7 +14,7 @@ It includes **Lightweight Data Migration** for collection copying, adds **Folder We're introducing **Lightweight Data Migration** (also known as "**Collection Copy-and-Paste**"). This feature enables you to copy collections and paste them into new or existing collections, across different databases or even different servers - all directly within VS Code. -

Lightweight Data Migration Overview

+

Lightweight Data Migration Overview

Designed for **smaller-to-medium datasets** that can be streamed through your local machine, this feature simplifies moving data between environments. It's useful for: diff --git a/docs/release-notes/images/0.7.0_copy_and_paste.png b/docs/release-notes/images/0.7.0_copy_and_paste.png new file mode 100644 index 0000000000000000000000000000000000000000..c2fb8571a0027c3be78228aff7671916b3c34074 GIT binary patch literal 338493 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 Or!#EEzJ-bNGr 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⪇mGCew16$nX?hurNZ`5%6q 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 z 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 literal 0 HcmV?d00001 From 99ff825d721041aa92a4cb6f45249d1f83ec3bea Mon Sep 17 00:00:00 2001 From: Tomasz Naumowicz Date: Tue, 10 Feb 2026 10:38:28 +0100 Subject: [PATCH 47/47] fix: correct issue reference for dark theme UI rendering improvements --- docs/release-notes/0.7.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.7.md b/docs/release-notes/0.7.md index f87c8657e..0be7fb0b5 100644 --- a/docs/release-notes/0.7.md +++ b/docs/release-notes/0.7.md @@ -170,7 +170,7 @@ Resolved connection failures when expanding Azure DocumentDB clusters in the Azu -Resolved UI rendering issues that affected users of dark themes like Nord. Text in certain controls was dark-on-dark and invisible, making parts of the interface unusable. All UI elements now properly respect theme colors for better visibility in both light and dark modes. **Reported by [@majelbstoat](https://github.com/majelbstoat)** in [#435](https://github.com/microsoft/vscode-documentdb/issues/457). +Resolved UI rendering issues that affected users of dark themes like Nord. Text in certain controls was dark-on-dark and invisible, making parts of the interface unusable. All UI elements now properly respect theme colors for better visibility in both light and dark modes. **Reported by [@majelbstoat](https://github.com/majelbstoat)** in [#457](https://github.com/microsoft/vscode-documentdb/issues/457). ### Document Import from Discovery View ([#479](https://github.com/microsoft/vscode-documentdb/pull/479))