From 195951e039d5227b49303d168379a9b9e402a316 Mon Sep 17 00:00:00 2001 From: David Snelling Date: Wed, 30 Jul 2025 14:39:13 -0700 Subject: [PATCH 1/2] **chore(dependencies): remove unused dependencies** Remove `@modelcontextprotocol/server-sequential-thinking` and its nested dependencies from `devDependencies` in `package-lock.json` as they are no longer required for the project. This reduces the overall package size and improves maintenance. --- package-lock.json | 85 ----------------------------------------------- 1 file changed, 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index c5a1c134..45667cff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,6 @@ "uuid": "^9.0.1" }, "devDependencies": { - "@modelcontextprotocol/server-sequential-thinking": "^2025.7.1", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", @@ -1894,90 +1893,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@modelcontextprotocol/sdk": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.5.0.tgz", - "integrity": "sha512-RXgulUX6ewvxjAG0kOpLMEdXXWkzWgaoCGaA2CwNW7cQCIphjpJhjpHSiaPdVCnisjRF/0Cm9KWHUuIoeiAblQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "raw-body": "^3.0.0", - "zod": "^3.23.8" - } - }, - "node_modules/@modelcontextprotocol/server-sequential-thinking": { - "version": "2025.7.1", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/server-sequential-thinking/-/server-sequential-thinking-2025.7.1.tgz", - "integrity": "sha512-gEMck99hpP+us6CTGACerxOlCsVL+e53kBev5E64m4yaQhnjIj/+vTttapc7Xc1TsvPnzSmtCwKYvcFPZ0tg/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@modelcontextprotocol/sdk": "0.5.0", - "chalk": "^5.3.0", - "yargs": "^17.7.2" - }, - "bin": { - "mcp-server-sequential-thinking": "dist/index.js" - } - }, - "node_modules/@modelcontextprotocol/server-sequential-thinking/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@modelcontextprotocol/server-sequential-thinking/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@modelcontextprotocol/server-sequential-thinking/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@modelcontextprotocol/server-sequential-thinking/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", From ba1aaedd1934b9e17e033e544a4fa3e079419b92 Mon Sep 17 00:00:00 2001 From: David Snelling Date: Wed, 30 Jul 2025 15:47:26 -0700 Subject: [PATCH 2/2] **fix(storage): handle additional errors in S3-compatible storage adapter** - Updated error handling in `S3CompatibleStorage` to include checks for `NotFound` errors alongside `NoSuchKey` during lock operations. - Ensured robustness in determining lock existence and managing exceptions related to missing keys. **Purpose**: Improve resilience of the S3-compatible storage adapter by addressing additional error scenarios, ensuring accurate lock detection and stable operation. --- src/storage/adapters/s3CompatibleStorage.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/storage/adapters/s3CompatibleStorage.ts b/src/storage/adapters/s3CompatibleStorage.ts index e7bc9e9f..1b674b42 100644 --- a/src/storage/adapters/s3CompatibleStorage.ts +++ b/src/storage/adapters/s3CompatibleStorage.ts @@ -1757,8 +1757,11 @@ export class S3CompatibleStorage extends BaseStorage { return false } } catch (error: any) { - // If HeadObject fails with NoSuchKey, the lock doesn't exist, which is good - if (error.name !== 'NoSuchKey' && !error.message?.includes('NoSuchKey')) { + // If HeadObject fails with NoSuchKey or NotFound, the lock doesn't exist, which is good + if (error.name !== 'NoSuchKey' && + !error.message?.includes('NoSuchKey') && + error.name !== 'NotFound' && + !error.message?.includes('NotFound')) { throw error } } @@ -1826,7 +1829,10 @@ export class S3CompatibleStorage extends BaseStorage { } } catch (error: any) { // If lock doesn't exist, that's fine - if (error.name === 'NoSuchKey' || error.message?.includes('NoSuchKey')) { + if (error.name === 'NoSuchKey' || + error.message?.includes('NoSuchKey') || + error.name === 'NotFound' || + error.message?.includes('NotFound')) { return } throw error