Skip to content

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

Description

@developer-kanghyun

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:permissionsbugSomething isn't workinghas reproHas detailed reproduction stepsplatform:macosIssue specifically occurs on macOSstaleIssue is inactive

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions