Skip to content

Commit 22eb274

Browse files
committed
chore(marketplace): invoke to reload modes and mcps
1 parent 299e9a7 commit 22eb274

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

src/core/config/CustomModesManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ export class CustomModesManager {
308308
await fs.writeFile(filePath, yaml.stringify(settings), "utf-8")
309309
}
310310

311-
private async refreshMergedState(): Promise<void> {
311+
public async refreshMergedState(): Promise<void> {
312312
const settingsPath = await this.getCustomModesFilePath()
313313
const roomodesPath = await this.getWorkspaceRoomodes()
314314

src/core/webview/marketplaceMessageHandler.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ export async function handleMarketplaceMessages(
242242
try {
243243
await marketplaceManager
244244
.installMarketplaceItem(message.mpItem, message.mpInstallOptions)
245-
.then(async (r) => r === "$COMMIT" && (await provider.postStateToWebview()))
245+
.then(async (r) => r === "$COMMIT" && (await _onCommit()))
246246
} catch (error) {
247247
vscode.window.showErrorMessage(
248248
`Failed to install item "${message.mpItem.name}":\n${error instanceof Error ? error.message : String(error)}`,
@@ -263,7 +263,7 @@ export async function handleMarketplaceMessages(
263263
try {
264264
await marketplaceManager
265265
.installMarketplaceItem(item, { parameters })
266-
.then(async (r) => r === "$COMMIT" && (await provider.postStateToWebview()))
266+
.then(async (r) => r === "$COMMIT" && (await _onCommit()))
267267
} catch (error) {
268268
console.error(`Error submitting marketplace parameters: ${error}`)
269269
vscode.window.showErrorMessage(
@@ -287,7 +287,7 @@ export async function handleMarketplaceMessages(
287287
try {
288288
await marketplaceManager
289289
.removeInstalledMarketplaceItem(message.mpItem, message.mpInstallOptions)
290-
.then(async (r) => r === "$COMMIT" && (await provider.postStateToWebview()))
290+
.then(async (r) => r === "$COMMIT" && (await _onCommit()))
291291
} catch (error) {
292292
vscode.window.showErrorMessage(
293293
`Failed to remove item "${message.mpItem.name}":\n${error instanceof Error ? error.message : String(error)}`,
@@ -302,4 +302,12 @@ export async function handleMarketplaceMessages(
302302
default:
303303
return false
304304
}
305+
306+
async function _onCommit() {
307+
await Promise.all([
308+
provider.getMcpHub()?.reloadMcpServers?.(),
309+
provider.customModesManager?.refreshMergedState?.(),
310+
provider.postStateToWebview(),
311+
])
312+
}
305313
}

src/services/mcp/McpHub.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,11 @@ export class McpHub {
353353
)
354354
}
355355

356+
public async reloadMcpServers() {
357+
await this.initializeProjectMcpServers()
358+
await this.initializeGlobalMcpServers()
359+
}
360+
356361
private async initializeMcpServers(source: "global" | "project"): Promise<void> {
357362
try {
358363
const configPath =

0 commit comments

Comments
 (0)