coder-config 0.44.3 → 0.44.5

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/lib/constants.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Constants and tool path configurations
3
3
  */
4
4
 
5
- const VERSION = '0.44.3';
5
+ const VERSION = '0.44.5';
6
6
 
7
7
  // Tool-specific path configurations
8
8
  const TOOL_PATHS = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coder-config",
3
- "version": "0.44.3",
3
+ "version": "0.44.5",
4
4
  "description": "Configuration manager for AI coding tools - Claude Code, Gemini CLI, Codex CLI, Antigravity. Manage MCPs, rules, permissions, memory, and workstreams.",
5
5
  "author": "regression.io",
6
6
  "main": "config-loader.js",
@@ -355,6 +355,7 @@ async function installRalphLoopPlugin() {
355
355
  /**
356
356
  * Fix the ralph-loop plugin structure by converting commands to skills format
357
357
  * Claude Code expects skills/<name>/SKILL.md, but the plugin has commands/<name>.md
358
+ * Also fixes frontmatter issues (hide-from-slash-command-tool -> name)
358
359
  */
359
360
  function fixRalphLoopPluginStructure() {
360
361
  const pluginCacheDir = path.join(os.homedir(), '.claude', 'plugins', 'cache', 'claude-plugins-official', 'ralph-loop');
@@ -378,6 +379,11 @@ function fixRalphLoopPluginStructure() {
378
379
  continue;
379
380
  }
380
381
 
382
+ // Remove old symlink if it exists
383
+ if (fs.existsSync(skillsDir) && fs.lstatSync(skillsDir).isSymbolicLink()) {
384
+ fs.unlinkSync(skillsDir);
385
+ }
386
+
381
387
  // Create skills directory if it doesn't exist
382
388
  if (!fs.existsSync(skillsDir)) {
383
389
  fs.mkdirSync(skillsDir, { recursive: true });
@@ -391,19 +397,23 @@ function fixRalphLoopPluginStructure() {
391
397
  const skillDir = path.join(skillsDir, skillName);
392
398
  const skillFile = path.join(skillDir, 'SKILL.md');
393
399
 
394
- // Skip if skill already exists
395
- if (fs.existsSync(skillFile)) {
396
- continue;
397
- }
398
-
399
400
  // Create skill directory
400
401
  if (!fs.existsSync(skillDir)) {
401
402
  fs.mkdirSync(skillDir, { recursive: true });
402
403
  }
403
404
 
404
- // Copy command file to SKILL.md
405
+ // Read command file content
405
406
  const cmdPath = path.join(commandsDir, cmdFile);
406
- fs.copyFileSync(cmdPath, skillFile);
407
+ let content = fs.readFileSync(cmdPath, 'utf8');
408
+
409
+ // Fix frontmatter: replace hide-from-slash-command-tool with name
410
+ content = content.replace(
411
+ /hide-from-slash-command-tool:\s*["']true["']/g,
412
+ `name: ${skillName}`
413
+ );
414
+
415
+ // Write skill file (always overwrite to ensure fix is applied)
416
+ fs.writeFileSync(skillFile, content, 'utf8');
407
417
  }
408
418
  }
409
419
  }