{"record":{"id":"dde2c48223e57bff","repo":"eyaltoledano/claude-task-master","slug":"deprecation-warning-found-configuration-in-le","errorCode":null,"errorMessage":"⚠️  DEPRECATION WARNING: Found configuration in legacy location '${configPath}'. Please migrate to .taskmaster/config.json. Run 'task-master migrate' to automatically migrate your project.","messagePattern":"⚠️  DEPRECATION WARNING: Found configuration in legacy location '(.+?)'\\. Please migrate to \\.taskmaster/config\\.json\\. Run 'task-master migrate' to automatically migrate your project\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"scripts/modules/config-manager.js","lineNumber":170,"sourceCode":"\t\t\t\t\t\t...defaults.models.research,\n\t\t\t\t\t\t...parsedConfig?.models?.research\n\t\t\t\t\t},\n\t\t\t\t\tfallback:\n\t\t\t\t\t\tparsedConfig?.models?.fallback?.provider &&\n\t\t\t\t\t\tparsedConfig?.models?.fallback?.modelId\n\t\t\t\t\t\t\t? { ...defaults.models.fallback, ...parsedConfig.models.fallback }\n\t\t\t\t\t\t\t: { ...defaults.models.fallback }\n\t\t\t\t},\n\t\t\t\tglobal: { ...defaults.global, ...parsedConfig?.global },\n\t\t\t\tclaudeCode: { ...defaults.claudeCode, ...parsedConfig?.claudeCode },\n\t\t\t\tcodexCli: { ...defaults.codexCli, ...parsedConfig?.codexCli },\n\t\t\t\tgrokCli: { ...defaults.grokCli, ...parsedConfig?.grokCli }\n\t\t\t};\n\t\t\tconfigSource = `file (${configPath})`; // Update source info\n\n\t\t\t// Issue deprecation warning if using legacy config file\n\t\t\tif (isLegacy) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\tchalk.yellow(\n\t\t\t\t\t\t`⚠️  DEPRECATION WARNING: Found configuration in legacy location '${configPath}'. Please migrate to .taskmaster/config.json. Run 'task-master migrate' to automatically migrate your project.`\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// --- Validation (Warn if file content is invalid) ---\n\t\t\t// Use log.warn for consistency\n\t\t\tif (!validateProvider(config.models.main.provider)) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\tchalk.yellow(\n\t\t\t\t\t\t`Warning: Invalid main provider \"${config.models.main.provider}\" in ${configPath}. Falling back to default.`\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconfig.models.main = { ...defaults.models.main };\n\t\t\t}\n\t\t\tif (!validateProvider(config.models.research.provider)) {\n\t\t\t\tconsole.warn(","sourceCodeStart":152,"sourceCodeEnd":188,"githubUrl":"https://github.com/eyaltoledano/claude-task-master/blob/c0c98d367c55296bfe69e65680625b6db437af02/scripts/modules/config-manager.js#L152-L188","documentation":"When loading configuration, task-master detects a config.json in the legacy location (e.g. .taskmaster/config.json predecessor location) and warns that it must be migrated to .taskmaster/config.json. The legacy config still works, but support will be dropped.","triggerScenarios":"A project containing a config file at the old legacy path when `newConfig()`/`_loadAndValidateConfig` runs (any command that loads configuration).","commonSituations":"Projects created with older task-master versions and never migrated; copying an old project template; partial upgrades.","solutions":["Run `task-master migrate` to move the config automatically","Alternatively move the file manually to .taskmaster/config.json and merge any existing content","Commit the migrated config and remove the legacy file from the repo","Ignore temporarily; the warning is non-fatal but the legacy path will stop working in a future release"],"exampleFix":"// before\n.taskmaster/config.json (legacy path in use)\n// after\n$ task-master migrate   # moves config to .taskmaster/config.json","handlingStrategy":"validation","validationCode":"import fs from 'fs';\nconst legacyPath = '.taskmaster/config.json'; // replace with actual legacy path check\nconst canonicalPath = '.taskmaster/config.json';\nif (fs.existsSync(legacyPath) && legacyPath !== canonicalPath) {\n  console.warn('Legacy config detected; run `task-master migrate`');\n}","typeGuard":"const usesLegacyConfig = (paths) => paths.some(p => p !== '.taskmaster/config.json' && fs.existsSync(p));","tryCatchPattern":null,"preventionTips":["Run `task-master migrate` after upgrading older projects","Never hand-create config at the legacy path","Add a repo check that only .taskmaster/config.json exists"],"tags":["configuration","deprecation","migration"],"backgroundTag":"deprecated-config-location","analyzedSha":"c0c98d367c55296bfe69e65680625b6db437af02","analyzedAt":"2026-08-29T02:56:26.071Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}