[BUG] Documents-folder permission is lost on every embedded CLI auto-update, forcing a restart that drops session context

Status Open
Reported on v2.1.260
Maintainer reply None cached
Activity 1 comment · opened Sep 11, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

The Claude Desktop app embeds a Claude Code CLI helper at ~/Library/Application Support/Claude/claude-code/<version>/claude.app. Every time this helper auto-updates, it is installed into a new version-numbered folder instead of being updated in place. Because macOS's Files & Folders privacy protection (TCC) does not carry over a "Documents Folder" access grant to the new binary/path, the app has to re-prompt for access on every update. Re-granting access requires restarting the CLI process, which discards the in-progress session/context.

Environment

  • macOS 26.6.2 (build 25G83)
  • Claude Desktop 1.52386.0
  • Embedded CLI helper: com.anthropic.claude-code, signed by Developer ID Application: Anthropic PBC (Q6L2SF6YDW)

Evidence

Two helper versions were present on disk within a 2-day span, each a genuinely different signed binary:

| Version | Installed | CDHash |
|---|---|---|
| 2.1.260 | Sep 8, 13:04 | a78e1e621a1e1d4fa6894fcb1bdf3e8541a4510c |
| 2.1.266 | Sep 10, 19:03 | 54d586144cb0f053113617edcef29cb5ea1b201f |

Bundle ID and Team ID are identical across versions, but the on-disk path and code directory hash change with every release.

Captured live in log show --predicate 'process == "tccd"' at the moment the new version first touched my project folder:

21:48:34  tccd: AUTHREQ_PROMPTING service=kTCCServiceSystemPolicyDocumentsFolder subject=com.anthropic.claude-code
21:48:36  tccd: Publishing <TCCDEvent type=Create service=kTCCServiceSystemPolicyDocumentsFolder identifier=com.anthropic.claude-code>

This confirms macOS is treating each new versioned helper binary as a fresh app requiring fresh consent for kTCCServiceSystemPolicyDocumentsFolder, rather than recognizing it as an update to a previously-authorized app.

What Should Happen?

Expected behavior

Updating the embedded CLI helper should not require re-granting Documents-folder access, and should never force a session-destroying restart just to re-acquire a permission that was already granted to the same logical app.

Suggested fixes

  • Update the embedded helper in place at a fixed path (e.g. ~/Library/Application Support/Claude/claude-code/current/claude.app) instead of a new version-numbered directory per release, so the on-disk identity stays stable across updates.
  • Alternatively, have the OS-level permission check resolve via "responsible process" attribution to the stable outer /Applications/Claude.app (com.anthropic.claudefordesktop) identity instead of the inner versioned helper's own identity.
  • If a restart is unavoidable after a permission change, consider persisting/restoring in-progress session context across that restart.

Error Messages/Logs

Captured live in `log show --predicate 'process == "tccd"'` at the moment the new version first touched my project folder:


21:48:34  tccd: AUTHREQ_PROMPTING service=kTCCServiceSystemPolicyDocumentsFolder subject=com.anthropic.claude-code
21:48:36  tccd: Publishing <TCCDEvent type=Create service=kTCCServiceSystemPolicyDocumentsFolder identifier=com.anthropic.claude-code>

Steps to Reproduce

Repro steps

  1. Grant Claude Desktop access to a project folder under ~/Documents/....
  2. Use Claude Code normally until the embedded CLI helper auto-updates (installs a new ~/Library/Application Support/Claude/claude-code/<version>/claude.app).
  3. Observe that file access to the same project folder now fails.
  4. Go to System Settings → Privacy & Security → Files and Folders (or Documents Folder) and re-grant access to Claude.
  5. Observe that the CLI process restarts to pick up the new grant, and the active session's context is lost.

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.266

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗