[Bug] Symlink support for slash commands broken in version 2.0.28

Resolved 💬 3 comments Opened Oct 29, 2025 by nfrgosselin Closed Oct 29, 2025

Bug Description

Bug Report: Version 2.0.28 broke symlink support for slash commands

Summary

Claude Code version 2.0.28 no longer discovers slash commands that use symlinks (both symlinked directories and individual symlinked files) in the .claude/commands/ directory. This is a breaking change that affects workflows using shared commands across multiple projects.

Version Information

  • Claude Code version: 2.0.28
  • Operating System: macOS (Darwin 24.6.0)
  • Filesystem: APFS (case-insensitive)

Steps to Reproduce

Test 1: Symlinked directory

  1. Create a shared commands directory: /workspace/_shared/commands/
  2. Add command files (e.g., planning-session.md) to shared directory
  3. Create symlink in project: ln -s /workspace/_shared/commands /workspace/project/.claude/commands/shared
  4. Restart Claude Code
  5. Try to execute command: /planning-session

Result: Command not discovered, shows "Unknown slash command: planning-session"

Test 2: Individual symlinked file

  1. Create symlink directly in commands directory: ln -s /workspace/_shared/commands/planning-session.md /workspace/project/.claude/commands/planning-session.md
  2. Restart Claude Code
  3. Try to execute command: /planning-session

Result: Command not discovered, shows "Unknown slash command: planning-session"

Expected Behavior

  • Symlinked directories in .claude/commands/ should be traversed and commands should be discovered
  • Individual symlinked command files should be discovered
  • This worked correctly in versions prior to 2.0.28

Actual Behavior

  • Commands behind symlinks (both directory and file symlinks) are not discovered
  • Only actual files directly in .claude/commands/ are discovered
  • The /help command does not show symlinked commands

Impact

Severity: High - Breaking change for existing workflows

This breaks a common pattern for sharing commands across multiple projects:

  • Teams with monorepos that use shared commands across subprojects
  • Personal workflows with shared commands across multiple repositories
  • Any setup using ~/.claude/commands/ shared via symlink

Possible Root Cause

The CHANGELOG for 2.0.28 mentions:

"Discovery of custom slash commands, subagents, and output styles no longer respects .gitignore"

This change to file discovery logic may have inadvertently broken symlink traversal.

Workaround

Copy commands instead of symlinking them:

cp /workspace/_shared/commands/*.md /workspace/project/.claude/commands/

This requires manual syncing when shared commands are updated.

Reproduction Repository

Can provide a minimal reproduction repository if helpful.

Request

Please restore symlink support in .claude/commands/ directory, as this is critical for maintaining shared command libraries across multiple projects.

Environment Info

  • Platform: darwin
  • Terminal: cursor
  • Version: 2.0.28
  • Feedback ID: 604172be-4ee5-4885-82f8-d6eeb34ca6ae

Errors

[{"error":"Error: 1: 1 \n    at W71 (/$bunfs/root/claude:510:3997)\n    at async G71 (/$bunfs/root/claude:510:1612)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-10-29T14:44:01.856Z"}]

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗