Compare commits

...

4 Commits

Author SHA1 Message Date
mollierj-devel 9a90a8289b
Merge 71557b9073 into d419ac8a70 2026-01-12 10:56:16 -06:00
Brian 71557b9073
Merge branch 'main' into fix/description 2026-01-11 11:14:05 +08:00
mollierj-devel 2a9919d16a
Update tools/cli/installers/lib/ide/kilo.js
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-10 19:47:31 +01:00
mollierj-devel b08e9da31c fix(kilo): Fix malformed YAML in .kilocodemodes file generation
ref : https://github.com/bmad-code-org/BMAD-METHOD/issues/1154

- Properly escape customInstructions content in KiloCode mode entries
- Replace newlines with spaces to prevent YAML parsing errors
- Escape double quotes in instruction text
- Wrap customInstructions value in quotes for valid YAML format

The issue was caused by direct injection of agent-command-header.md content
containing unescaped newlines and special characters, resulting in malformed
YAML structure with repeated "Read the full YAML from" text fragments.

Fixes: Malformed .kilocodemodes YAML file generation
2026-01-10 19:19:45 +01:00
1 changed files with 3 additions and 1 deletions

View File

@ -119,7 +119,9 @@ class KiloSetup extends BaseIdeSetup {
modeEntry += ` name: '${icon} ${title}'\n`; modeEntry += ` name: '${icon} ${title}'\n`;
modeEntry += ` roleDefinition: ${roleDefinition}\n`; modeEntry += ` roleDefinition: ${roleDefinition}\n`;
modeEntry += ` whenToUse: ${whenToUse}\n`; modeEntry += ` whenToUse: ${whenToUse}\n`;
modeEntry += ` customInstructions: ${activationHeader} Read the full YAML from ${relativePath} start activation to alter your state of being follow startup section instructions stay in this being until told to exit this mode\n`; const customInstructions = `${activationHeader || ''} Read the full YAML from ${relativePath} start activation to alter your state of being follow startup section instructions stay in this being until told to exit this mode`;
const escapedInstructions = customInstructions.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, ' ').trim();
modeEntry += ` customInstructions: "${escapedInstructions}"\n`;
modeEntry += ` groups:\n`; modeEntry += ` groups:\n`;
modeEntry += ` - read\n`; modeEntry += ` - read\n`;
modeEntry += ` - edit\n`; modeEntry += ` - edit\n`;