From e94892233f986d543af014acbc8804c6cb6ea4b3 Mon Sep 17 00:00:00 2001 From: Karstein Phobic Nyvold Kvistad Date: Wed, 29 Apr 2026 08:23:57 +0200 Subject: [PATCH] fix(add_library): wrapper message reflects dedup vs add branch The wrapper at server.ts:1896 always rendered "Library 'X' added" even when the script's dedup pre-check no-op'd because the same library was already referenced. The script itself emits distinct markers ("Library Already Present:" vs "Library Added:"); the wrapper now inspects result.output to pick wording instead of hardcoding "added". --- src/server.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/server.ts b/src/server.ts index 1df4f1c..c7b24e9 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1970,12 +1970,14 @@ export async function startMcpServer(config: ServerConfig): Promise { ['ensure_project_open'] ); const result = await executor.executeScript(script); - return await formatModifyingResponse( - result, - `Library '${args.libraryName}' added to ${args.projectFilePath}. Project saved.`, - escaped, - mirrorCtx - ); + // Pick wording from the script's branch (dedup vs add) instead of + // always saying "added" -- script emits "Library Already Present" + // on the dedup no-op path and "Library Added" on actual add. + const dedupHit = result.output.includes('Library Already Present:'); + const successMessage = dedupHit + ? `Library '${args.libraryName}' already referenced in ${args.projectFilePath}. No-op (use force=true to add a duplicate).` + : `Library '${args.libraryName}' added to ${args.projectFilePath}. Project saved.`; + return await formatModifyingResponse(result, successMessage, escaped, mirrorCtx); } );