fix: add error handling for CSV read/parse in loadAgentManifest and loadBmadHelp

Wrap file read and csv.parse in try/catch blocks so malformed or
unreadable CSV files gracefully degrade instead of aborting setup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jheyworth 2026-02-09 00:34:16 +00:00
parent 3ba4bbcb73
commit 22fabf7ba1
1 changed files with 21 additions and 12 deletions

View File

@ -98,6 +98,7 @@ class GitHubCopilotSetup extends BaseIdeSetup {
return agents; return agents;
} }
try {
const csvContent = await fs.readFile(manifestPath, 'utf8'); const csvContent = await fs.readFile(manifestPath, 'utf8');
const records = csv.parse(csvContent, { const records = csv.parse(csvContent, {
columns: true, columns: true,
@ -107,6 +108,9 @@ class GitHubCopilotSetup extends BaseIdeSetup {
for (const record of records) { for (const record of records) {
agents.set(record.name, record); agents.set(record.name, record);
} }
} catch {
// Gracefully degrade if manifest is unreadable/malformed
}
return agents; return agents;
} }
@ -123,11 +127,16 @@ class GitHubCopilotSetup extends BaseIdeSetup {
return null; return null;
} }
try {
const csvContent = await fs.readFile(helpPath, 'utf8'); const csvContent = await fs.readFile(helpPath, 'utf8');
return csv.parse(csvContent, { return csv.parse(csvContent, {
columns: true, columns: true,
skip_empty_lines: true, skip_empty_lines: true,
}); });
} catch {
// Gracefully degrade if help CSV is unreadable/malformed
return null;
}
} }
/** /**