@funnycode/myclaude 0.1.160 → 0.1.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/myclaude.js +42 -49
- package/dist/myclaude.mjs +42 -49
- package/package.json +1 -1
package/dist/myclaude.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// MACRO - build-time constants (injected by build.ts)
|
|
5
5
|
// MACRO injected by build script
|
|
6
6
|
globalThis.MACRO = {
|
|
7
|
-
VERSION: "0.1.
|
|
8
|
-
BUILD_TIME: "2026-07-
|
|
7
|
+
VERSION: "0.1.162",
|
|
8
|
+
BUILD_TIME: "2026-07-30T18:43:12.950Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -119829,7 +119829,7 @@ var package_default;
|
|
|
119829
119829
|
var init_package = __esm(() => {
|
|
119830
119830
|
package_default = {
|
|
119831
119831
|
name: "@funnycode/myclaude",
|
|
119832
|
-
version: "0.1.
|
|
119832
|
+
version: "0.1.162",
|
|
119833
119833
|
private: false,
|
|
119834
119834
|
description: "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
119835
119835
|
license: "MIT",
|
|
@@ -410011,10 +410011,28 @@ function isInputModeCharacter(input) {
|
|
|
410011
410011
|
|
|
410012
410012
|
// src/projectOnboardingState.ts
|
|
410013
410013
|
import { join as join105 } from "path";
|
|
410014
|
+
function getDirectoryFingerprint(dirPath) {
|
|
410015
|
+
const fs13 = getFsImplementation();
|
|
410016
|
+
const entries = fs13.readdirStringSync(dirPath);
|
|
410017
|
+
const sortedEntries = entries.sort();
|
|
410018
|
+
const fingerprintParts = [];
|
|
410019
|
+
for (const entry of sortedEntries) {
|
|
410020
|
+
const fullPath = join105(dirPath, entry);
|
|
410021
|
+
const stat37 = fs13.statSync(fullPath);
|
|
410022
|
+
if (stat37.isDirectory()) {
|
|
410023
|
+
fingerprintParts.push(entry + "/");
|
|
410024
|
+
fingerprintParts.push(getDirectoryFingerprint(fullPath));
|
|
410025
|
+
} else {
|
|
410026
|
+
fingerprintParts.push(entry);
|
|
410027
|
+
}
|
|
410028
|
+
}
|
|
410029
|
+
return fingerprintParts.join(`
|
|
410030
|
+
`);
|
|
410031
|
+
}
|
|
410014
410032
|
function clearCachedSteps() {
|
|
410015
410033
|
cachedSteps = null;
|
|
410016
410034
|
cachedClaudeMdMtime = -1;
|
|
410017
|
-
|
|
410035
|
+
cachedDirFingerprint = "";
|
|
410018
410036
|
cachedAt = null;
|
|
410019
410037
|
}
|
|
410020
410038
|
function isCacheValid() {
|
|
@@ -410031,8 +410049,8 @@ function isCacheValid() {
|
|
|
410031
410049
|
return false;
|
|
410032
410050
|
}
|
|
410033
410051
|
try {
|
|
410034
|
-
const
|
|
410035
|
-
if (
|
|
410052
|
+
const currentFingerprint = getDirectoryFingerprint(cwd2);
|
|
410053
|
+
if (currentFingerprint !== cachedDirFingerprint)
|
|
410036
410054
|
return false;
|
|
410037
410055
|
} catch {
|
|
410038
410056
|
return false;
|
|
@@ -410057,9 +410075,9 @@ function getSteps() {
|
|
|
410057
410075
|
cachedClaudeMdMtime = -1;
|
|
410058
410076
|
}
|
|
410059
410077
|
try {
|
|
410060
|
-
|
|
410078
|
+
cachedDirFingerprint = getDirectoryFingerprint(cwd2);
|
|
410061
410079
|
} catch {
|
|
410062
|
-
|
|
410080
|
+
cachedDirFingerprint = "";
|
|
410063
410081
|
}
|
|
410064
410082
|
cachedAt = Date.now();
|
|
410065
410083
|
cachedSteps = [
|
|
@@ -410107,7 +410125,7 @@ function incrementProjectOnboardingSeenCount() {
|
|
|
410107
410125
|
projectOnboardingSeenCount: current.projectOnboardingSeenCount + 1
|
|
410108
410126
|
}));
|
|
410109
410127
|
}
|
|
410110
|
-
var cachedSteps = null, cachedClaudeMdMtime = -1,
|
|
410128
|
+
var cachedSteps = null, cachedClaudeMdMtime = -1, cachedDirFingerprint = "", cachedAt = null, CACHE_MAX_AGE_MS = 300000;
|
|
410111
410129
|
var init_projectOnboardingState = __esm(() => {
|
|
410112
410130
|
init_config();
|
|
410113
410131
|
init_cwd2();
|
|
@@ -566342,6 +566360,7 @@ function migrateBypassPermissionsAcceptedToSettings() {
|
|
|
566342
566360
|
});
|
|
566343
566361
|
} catch (error49) {
|
|
566344
566362
|
logError2(new Error(`Failed to migrate bypass permissions accepted: ${error49}`));
|
|
566363
|
+
throw error49;
|
|
566345
566364
|
}
|
|
566346
566365
|
}
|
|
566347
566366
|
var init_migrateBypassPermissionsAcceptedToSettings = __esm(() => {
|
|
@@ -566367,14 +566386,13 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566367
566386
|
}
|
|
566368
566387
|
const originalSettings = getSettingsForSource("localSettings") || {};
|
|
566369
566388
|
const originalProjectConfig = { ...projectConfig };
|
|
566370
|
-
const
|
|
566371
|
-
const fieldsToRemove = [];
|
|
566389
|
+
const migratedFields = [];
|
|
566372
566390
|
const updates = {};
|
|
566373
566391
|
try {
|
|
566374
566392
|
const existingSettings = originalSettings;
|
|
566375
566393
|
if (hasEnableAll) {
|
|
566376
566394
|
updates.enableAllProjectMcpServers = projectConfig.enableAllProjectMcpServers;
|
|
566377
|
-
|
|
566395
|
+
migratedFields.push("enableAllProjectMcpServers");
|
|
566378
566396
|
}
|
|
566379
566397
|
const existingEnabledServers = Array.isArray(existingSettings.enabledMcpjsonServers) ? [...existingSettings.enabledMcpjsonServers] : [];
|
|
566380
566398
|
const existingDisabledServers = Array.isArray(existingSettings.disabledMcpjsonServers) ? [...existingSettings.disabledMcpjsonServers] : [];
|
|
@@ -566388,7 +566406,7 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566388
566406
|
}
|
|
566389
566407
|
}
|
|
566390
566408
|
}
|
|
566391
|
-
|
|
566409
|
+
migratedFields.push("enabledMcpjsonServers");
|
|
566392
566410
|
}
|
|
566393
566411
|
if (hasDisabledServers) {
|
|
566394
566412
|
if (Array.isArray(projectConfig.disabledMcpjsonServers) && projectConfig.disabledMcpjsonServers.length > 0) {
|
|
@@ -566400,21 +566418,19 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566400
566418
|
}
|
|
566401
566419
|
}
|
|
566402
566420
|
}
|
|
566403
|
-
|
|
566421
|
+
migratedFields.push("disabledMcpjsonServers");
|
|
566404
566422
|
}
|
|
566405
566423
|
const enabledSet = new Set(existingEnabledServers);
|
|
566406
566424
|
const overlappingServers = existingDisabledServers.filter((server) => enabledSet.has(server));
|
|
566407
|
-
|
|
566408
|
-
const
|
|
566409
|
-
|
|
566410
|
-
|
|
566411
|
-
existingDisabledServers.splice(i3, 1);
|
|
566412
|
-
}
|
|
566425
|
+
for (const server of overlappingServers) {
|
|
566426
|
+
const index = existingDisabledServers.indexOf(server);
|
|
566427
|
+
if (index !== -1) {
|
|
566428
|
+
existingDisabledServers.splice(index, 1);
|
|
566413
566429
|
}
|
|
566430
|
+
}
|
|
566431
|
+
if (overlappingServers.length > 0) {
|
|
566414
566432
|
logEvent("tengu_migrate_mcp_server_overlap_in_both_lists", {
|
|
566415
|
-
|
|
566416
|
-
overlappingServers: overlappingServers.join(","),
|
|
566417
|
-
message: "MCP server(s) appear in both enabled and disabled lists. Removed from disabled list to resolve conflict."
|
|
566433
|
+
overlappingServers: overlappingServers.join(",")
|
|
566418
566434
|
});
|
|
566419
566435
|
}
|
|
566420
566436
|
const existingHadEnabledServers = Array.isArray(existingSettings.enabledMcpjsonServers);
|
|
@@ -566430,7 +566446,7 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566430
566446
|
updateSettingsForSource("localSettings", updates);
|
|
566431
566447
|
saveCurrentProjectConfig((config5) => {
|
|
566432
566448
|
const updated = { ...config5 };
|
|
566433
|
-
for (const field of
|
|
566449
|
+
for (const field of migratedFields) {
|
|
566434
566450
|
delete updated[field];
|
|
566435
566451
|
}
|
|
566436
566452
|
return updated;
|
|
@@ -566438,17 +566454,12 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566438
566454
|
saveGlobalConfig((c6) => ({ ...c6, hasCompletedMcpServerMigration: true }));
|
|
566439
566455
|
logEvent("tengu_migrate_enable_all_project_mcp_servers_to_settings", {
|
|
566440
566456
|
migration: "enableAllProjectMcpServersToSettings",
|
|
566441
|
-
fieldsMigrated:
|
|
566457
|
+
fieldsMigrated: migratedFields.join(",")
|
|
566442
566458
|
});
|
|
566443
566459
|
} catch (error49) {
|
|
566444
566460
|
logError2("Failed to migrate MCP server settings, rolling back", error49);
|
|
566445
566461
|
let rollbackFailed = false;
|
|
566446
566462
|
const rollbackUpdates = {};
|
|
566447
|
-
const migratedFields = [
|
|
566448
|
-
"enableAllProjectMcpServers",
|
|
566449
|
-
"enabledMcpjsonServers",
|
|
566450
|
-
"disabledMcpjsonServers"
|
|
566451
|
-
];
|
|
566452
566463
|
for (const field of migratedFields) {
|
|
566453
566464
|
if (field in originalSettings) {
|
|
566454
566465
|
rollbackUpdates[field] = originalSettings[field];
|
|
@@ -566456,10 +566467,8 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566456
566467
|
rollbackUpdates[field] = undefined;
|
|
566457
566468
|
}
|
|
566458
566469
|
}
|
|
566459
|
-
let settingsRollbackSucceeded = false;
|
|
566460
566470
|
try {
|
|
566461
566471
|
updateSettingsForSource("localSettings", rollbackUpdates);
|
|
566462
|
-
settingsRollbackSucceeded = true;
|
|
566463
566472
|
} catch (rollbackError) {
|
|
566464
566473
|
logError2("Rollback of settings failed", rollbackError);
|
|
566465
566474
|
rollbackFailed = true;
|
|
@@ -566467,7 +566476,7 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566467
566476
|
try {
|
|
566468
566477
|
saveCurrentProjectConfig((config5) => {
|
|
566469
566478
|
const updated = { ...config5 };
|
|
566470
|
-
for (const field of
|
|
566479
|
+
for (const field of migratedFields) {
|
|
566471
566480
|
updated[field] = originalProjectConfig[field];
|
|
566472
566481
|
}
|
|
566473
566482
|
return updated;
|
|
@@ -566475,22 +566484,6 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566475
566484
|
} catch (rollbackError) {
|
|
566476
566485
|
logError2("Rollback of project config failed", rollbackError);
|
|
566477
566486
|
rollbackFailed = true;
|
|
566478
|
-
if (settingsRollbackSucceeded) {
|
|
566479
|
-
try {
|
|
566480
|
-
const reapplyUpdates = {};
|
|
566481
|
-
for (const field of migratedFields) {
|
|
566482
|
-
if (updates[field] !== undefined) {
|
|
566483
|
-
reapplyUpdates[field] = updates[field];
|
|
566484
|
-
}
|
|
566485
|
-
}
|
|
566486
|
-
updateSettingsForSource("localSettings", reapplyUpdates);
|
|
566487
|
-
logError2("Re-applied migrated state to settings after project config rollback failure. " + "System is now consistent (migration state re-applied).", rollbackError);
|
|
566488
|
-
} catch (reapplyError) {
|
|
566489
|
-
logError2("Failed to re-apply migrated state to settings after project config rollback failure. " + "System is in an inconsistent state. Manual intervention may be required.", reapplyError);
|
|
566490
|
-
}
|
|
566491
|
-
} else {
|
|
566492
|
-
logError2("Settings rollback succeeded but project config rollback failed. " + "System is in an inconsistent state. Manual intervention may be required.", rollbackError);
|
|
566493
|
-
}
|
|
566494
566487
|
}
|
|
566495
566488
|
if (rollbackFailed) {
|
|
566496
566489
|
throw new Error("Migration failed and rollback was incomplete. The system may be in an inconsistent state. " + "Original error: " + (error49 instanceof Error ? error49.message : String(error49)));
|
package/dist/myclaude.mjs
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// MACRO - build-time constants (injected by build.ts)
|
|
5
5
|
// MACRO injected by build script
|
|
6
6
|
globalThis.MACRO = {
|
|
7
|
-
VERSION: "0.1.
|
|
8
|
-
BUILD_TIME: "2026-07-
|
|
7
|
+
VERSION: "0.1.162",
|
|
8
|
+
BUILD_TIME: "2026-07-30T18:43:12.950Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -119829,7 +119829,7 @@ var package_default;
|
|
|
119829
119829
|
var init_package = __esm(() => {
|
|
119830
119830
|
package_default = {
|
|
119831
119831
|
name: "@funnycode/myclaude",
|
|
119832
|
-
version: "0.1.
|
|
119832
|
+
version: "0.1.162",
|
|
119833
119833
|
private: false,
|
|
119834
119834
|
description: "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
119835
119835
|
license: "MIT",
|
|
@@ -410011,10 +410011,28 @@ function isInputModeCharacter(input) {
|
|
|
410011
410011
|
|
|
410012
410012
|
// src/projectOnboardingState.ts
|
|
410013
410013
|
import { join as join105 } from "path";
|
|
410014
|
+
function getDirectoryFingerprint(dirPath) {
|
|
410015
|
+
const fs13 = getFsImplementation();
|
|
410016
|
+
const entries = fs13.readdirStringSync(dirPath);
|
|
410017
|
+
const sortedEntries = entries.sort();
|
|
410018
|
+
const fingerprintParts = [];
|
|
410019
|
+
for (const entry of sortedEntries) {
|
|
410020
|
+
const fullPath = join105(dirPath, entry);
|
|
410021
|
+
const stat37 = fs13.statSync(fullPath);
|
|
410022
|
+
if (stat37.isDirectory()) {
|
|
410023
|
+
fingerprintParts.push(entry + "/");
|
|
410024
|
+
fingerprintParts.push(getDirectoryFingerprint(fullPath));
|
|
410025
|
+
} else {
|
|
410026
|
+
fingerprintParts.push(entry);
|
|
410027
|
+
}
|
|
410028
|
+
}
|
|
410029
|
+
return fingerprintParts.join(`
|
|
410030
|
+
`);
|
|
410031
|
+
}
|
|
410014
410032
|
function clearCachedSteps() {
|
|
410015
410033
|
cachedSteps = null;
|
|
410016
410034
|
cachedClaudeMdMtime = -1;
|
|
410017
|
-
|
|
410035
|
+
cachedDirFingerprint = "";
|
|
410018
410036
|
cachedAt = null;
|
|
410019
410037
|
}
|
|
410020
410038
|
function isCacheValid() {
|
|
@@ -410031,8 +410049,8 @@ function isCacheValid() {
|
|
|
410031
410049
|
return false;
|
|
410032
410050
|
}
|
|
410033
410051
|
try {
|
|
410034
|
-
const
|
|
410035
|
-
if (
|
|
410052
|
+
const currentFingerprint = getDirectoryFingerprint(cwd2);
|
|
410053
|
+
if (currentFingerprint !== cachedDirFingerprint)
|
|
410036
410054
|
return false;
|
|
410037
410055
|
} catch {
|
|
410038
410056
|
return false;
|
|
@@ -410057,9 +410075,9 @@ function getSteps() {
|
|
|
410057
410075
|
cachedClaudeMdMtime = -1;
|
|
410058
410076
|
}
|
|
410059
410077
|
try {
|
|
410060
|
-
|
|
410078
|
+
cachedDirFingerprint = getDirectoryFingerprint(cwd2);
|
|
410061
410079
|
} catch {
|
|
410062
|
-
|
|
410080
|
+
cachedDirFingerprint = "";
|
|
410063
410081
|
}
|
|
410064
410082
|
cachedAt = Date.now();
|
|
410065
410083
|
cachedSteps = [
|
|
@@ -410107,7 +410125,7 @@ function incrementProjectOnboardingSeenCount() {
|
|
|
410107
410125
|
projectOnboardingSeenCount: current.projectOnboardingSeenCount + 1
|
|
410108
410126
|
}));
|
|
410109
410127
|
}
|
|
410110
|
-
var cachedSteps = null, cachedClaudeMdMtime = -1,
|
|
410128
|
+
var cachedSteps = null, cachedClaudeMdMtime = -1, cachedDirFingerprint = "", cachedAt = null, CACHE_MAX_AGE_MS = 300000;
|
|
410111
410129
|
var init_projectOnboardingState = __esm(() => {
|
|
410112
410130
|
init_config();
|
|
410113
410131
|
init_cwd2();
|
|
@@ -566342,6 +566360,7 @@ function migrateBypassPermissionsAcceptedToSettings() {
|
|
|
566342
566360
|
});
|
|
566343
566361
|
} catch (error49) {
|
|
566344
566362
|
logError2(new Error(`Failed to migrate bypass permissions accepted: ${error49}`));
|
|
566363
|
+
throw error49;
|
|
566345
566364
|
}
|
|
566346
566365
|
}
|
|
566347
566366
|
var init_migrateBypassPermissionsAcceptedToSettings = __esm(() => {
|
|
@@ -566367,14 +566386,13 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566367
566386
|
}
|
|
566368
566387
|
const originalSettings = getSettingsForSource("localSettings") || {};
|
|
566369
566388
|
const originalProjectConfig = { ...projectConfig };
|
|
566370
|
-
const
|
|
566371
|
-
const fieldsToRemove = [];
|
|
566389
|
+
const migratedFields = [];
|
|
566372
566390
|
const updates = {};
|
|
566373
566391
|
try {
|
|
566374
566392
|
const existingSettings = originalSettings;
|
|
566375
566393
|
if (hasEnableAll) {
|
|
566376
566394
|
updates.enableAllProjectMcpServers = projectConfig.enableAllProjectMcpServers;
|
|
566377
|
-
|
|
566395
|
+
migratedFields.push("enableAllProjectMcpServers");
|
|
566378
566396
|
}
|
|
566379
566397
|
const existingEnabledServers = Array.isArray(existingSettings.enabledMcpjsonServers) ? [...existingSettings.enabledMcpjsonServers] : [];
|
|
566380
566398
|
const existingDisabledServers = Array.isArray(existingSettings.disabledMcpjsonServers) ? [...existingSettings.disabledMcpjsonServers] : [];
|
|
@@ -566388,7 +566406,7 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566388
566406
|
}
|
|
566389
566407
|
}
|
|
566390
566408
|
}
|
|
566391
|
-
|
|
566409
|
+
migratedFields.push("enabledMcpjsonServers");
|
|
566392
566410
|
}
|
|
566393
566411
|
if (hasDisabledServers) {
|
|
566394
566412
|
if (Array.isArray(projectConfig.disabledMcpjsonServers) && projectConfig.disabledMcpjsonServers.length > 0) {
|
|
@@ -566400,21 +566418,19 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566400
566418
|
}
|
|
566401
566419
|
}
|
|
566402
566420
|
}
|
|
566403
|
-
|
|
566421
|
+
migratedFields.push("disabledMcpjsonServers");
|
|
566404
566422
|
}
|
|
566405
566423
|
const enabledSet = new Set(existingEnabledServers);
|
|
566406
566424
|
const overlappingServers = existingDisabledServers.filter((server) => enabledSet.has(server));
|
|
566407
|
-
|
|
566408
|
-
const
|
|
566409
|
-
|
|
566410
|
-
|
|
566411
|
-
existingDisabledServers.splice(i3, 1);
|
|
566412
|
-
}
|
|
566425
|
+
for (const server of overlappingServers) {
|
|
566426
|
+
const index = existingDisabledServers.indexOf(server);
|
|
566427
|
+
if (index !== -1) {
|
|
566428
|
+
existingDisabledServers.splice(index, 1);
|
|
566413
566429
|
}
|
|
566430
|
+
}
|
|
566431
|
+
if (overlappingServers.length > 0) {
|
|
566414
566432
|
logEvent("tengu_migrate_mcp_server_overlap_in_both_lists", {
|
|
566415
|
-
|
|
566416
|
-
overlappingServers: overlappingServers.join(","),
|
|
566417
|
-
message: "MCP server(s) appear in both enabled and disabled lists. Removed from disabled list to resolve conflict."
|
|
566433
|
+
overlappingServers: overlappingServers.join(",")
|
|
566418
566434
|
});
|
|
566419
566435
|
}
|
|
566420
566436
|
const existingHadEnabledServers = Array.isArray(existingSettings.enabledMcpjsonServers);
|
|
@@ -566430,7 +566446,7 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566430
566446
|
updateSettingsForSource("localSettings", updates);
|
|
566431
566447
|
saveCurrentProjectConfig((config5) => {
|
|
566432
566448
|
const updated = { ...config5 };
|
|
566433
|
-
for (const field of
|
|
566449
|
+
for (const field of migratedFields) {
|
|
566434
566450
|
delete updated[field];
|
|
566435
566451
|
}
|
|
566436
566452
|
return updated;
|
|
@@ -566438,17 +566454,12 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566438
566454
|
saveGlobalConfig((c6) => ({ ...c6, hasCompletedMcpServerMigration: true }));
|
|
566439
566455
|
logEvent("tengu_migrate_enable_all_project_mcp_servers_to_settings", {
|
|
566440
566456
|
migration: "enableAllProjectMcpServersToSettings",
|
|
566441
|
-
fieldsMigrated:
|
|
566457
|
+
fieldsMigrated: migratedFields.join(",")
|
|
566442
566458
|
});
|
|
566443
566459
|
} catch (error49) {
|
|
566444
566460
|
logError2("Failed to migrate MCP server settings, rolling back", error49);
|
|
566445
566461
|
let rollbackFailed = false;
|
|
566446
566462
|
const rollbackUpdates = {};
|
|
566447
|
-
const migratedFields = [
|
|
566448
|
-
"enableAllProjectMcpServers",
|
|
566449
|
-
"enabledMcpjsonServers",
|
|
566450
|
-
"disabledMcpjsonServers"
|
|
566451
|
-
];
|
|
566452
566463
|
for (const field of migratedFields) {
|
|
566453
566464
|
if (field in originalSettings) {
|
|
566454
566465
|
rollbackUpdates[field] = originalSettings[field];
|
|
@@ -566456,10 +566467,8 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566456
566467
|
rollbackUpdates[field] = undefined;
|
|
566457
566468
|
}
|
|
566458
566469
|
}
|
|
566459
|
-
let settingsRollbackSucceeded = false;
|
|
566460
566470
|
try {
|
|
566461
566471
|
updateSettingsForSource("localSettings", rollbackUpdates);
|
|
566462
|
-
settingsRollbackSucceeded = true;
|
|
566463
566472
|
} catch (rollbackError) {
|
|
566464
566473
|
logError2("Rollback of settings failed", rollbackError);
|
|
566465
566474
|
rollbackFailed = true;
|
|
@@ -566467,7 +566476,7 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566467
566476
|
try {
|
|
566468
566477
|
saveCurrentProjectConfig((config5) => {
|
|
566469
566478
|
const updated = { ...config5 };
|
|
566470
|
-
for (const field of
|
|
566479
|
+
for (const field of migratedFields) {
|
|
566471
566480
|
updated[field] = originalProjectConfig[field];
|
|
566472
566481
|
}
|
|
566473
566482
|
return updated;
|
|
@@ -566475,22 +566484,6 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566475
566484
|
} catch (rollbackError) {
|
|
566476
566485
|
logError2("Rollback of project config failed", rollbackError);
|
|
566477
566486
|
rollbackFailed = true;
|
|
566478
|
-
if (settingsRollbackSucceeded) {
|
|
566479
|
-
try {
|
|
566480
|
-
const reapplyUpdates = {};
|
|
566481
|
-
for (const field of migratedFields) {
|
|
566482
|
-
if (updates[field] !== undefined) {
|
|
566483
|
-
reapplyUpdates[field] = updates[field];
|
|
566484
|
-
}
|
|
566485
|
-
}
|
|
566486
|
-
updateSettingsForSource("localSettings", reapplyUpdates);
|
|
566487
|
-
logError2("Re-applied migrated state to settings after project config rollback failure. " + "System is now consistent (migration state re-applied).", rollbackError);
|
|
566488
|
-
} catch (reapplyError) {
|
|
566489
|
-
logError2("Failed to re-apply migrated state to settings after project config rollback failure. " + "System is in an inconsistent state. Manual intervention may be required.", reapplyError);
|
|
566490
|
-
}
|
|
566491
|
-
} else {
|
|
566492
|
-
logError2("Settings rollback succeeded but project config rollback failed. " + "System is in an inconsistent state. Manual intervention may be required.", rollbackError);
|
|
566493
|
-
}
|
|
566494
566487
|
}
|
|
566495
566488
|
if (rollbackFailed) {
|
|
566496
566489
|
throw new Error("Migration failed and rollback was incomplete. The system may be in an inconsistent state. " + "Original error: " + (error49 instanceof Error ? error49.message : String(error49)));
|