[Bug] Auto-added Read/Edit permissions generate double-slash paths (//Users/... instead of /Users/...)

Resolved 💬 4 comments Opened Apr 6, 2026 by developer-kanghyun Closed Jun 12, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

When Claude Code auto-adds a Read permission to ~/.claude/settings.json (after user approval during a session), the path is saved with a double-slash prefix.

Actual: Read(//Users/kanghyun/Desktop/project/open-claw-repo/**)
Expected: Read(/Users/kanghyun/Desktop/project/open-claw-repo/**)

This occurs on macOS with standard absolute paths — no symlinks or drive letters involved.

What Should Happen?

Auto-added Read/Edit permission rules should use a single-slash absolute path: Read(/Users/kanghyun/Desktop/project/**).

Error Messages/Logs

No error — the permission is silently saved with // prefix. The // rule still functions due to the v2.1.89 checker fix, but accumulates malformed entries over time.

// settings.json after auto-add
"allow": [
  "Read(//Users/kanghyun/Desktop/project/open-claw-repo/**)"
]

Steps to Reproduce

  1. Start a new Claude Code session in a project directory
  2. Ask Claude to read a file outside the current project (e.g., ~/.claude/settings.json)
  3. Approve the Read permission when prompted
  4. Check ~/.claude/settings.json — the auto-added entry has // prefix

This was reproduced multiple times during a single session. Each time a new Read permission was approved, the // prefix appeared.

Claude Model

claude-opus-4-6 (1M context)

Is this a regression?

Partially. CHANGELOG v2.1.89 mentions:

"Fixed Edit(//path/**) and Read(//path/**) allow rules to check the resolved symlink target"

This fix addressed checking existing // rules, but the generation of // paths during auto-add still occurs. Two separate issues:

  1. ✅ Checking // rules against symlink targets (fixed in v2.1.89)
  2. ❌ Generating // rules when auto-adding permissions (this issue — still occurs in v2.1.90)

Last Working Version

Unknown — the // generation may have existed before v2.1.89.

Claude Code Version

2.1.90

Platform

Anthropic Direct (claude.ai/code)

Operating System

macOS (Darwin 25.2.0)

Terminal/Shell

zsh (VSCode integrated terminal)

Additional Information

Note on suggested duplicates: The bot flagged #12175 and #5401 as duplicates, but those are Windows-specific path issues (WSL //c/mnt/c/ and Git Bash /c/c/ prefix). This issue is macOS-specific with a different root cause — an extra / is prepended to an already-absolute macOS path.

| | Windows issues (#12175, #5401) | This issue |
|---|---|---|
| Platform | Windows (WSL/Git Bash) | macOS |
| Pattern | //c/mnt/c/Users/... or /c/c/... | //Users/kanghyun/... |
| Root cause | Drive letter path conversion | Absolute path gets extra / prefix |
| Status | Both CLOSED | Still occurs in v2.1.90 |

View original on GitHub ↗

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