[BUG] Desktop (macOS): Claude Projects threads on a local folder create hidden phantom sessions, and approvals and notifications send you there

Status Open
Reported on v2.1.282
Maintainer reply None cached
Activity 3 comments · opened Sep 25, 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?

What's wrong

When a new claude.ai Project thread runs on my Mac (Remote Control, local folder), the desktop app backs it with a Code session. From the user's side this reads as a broken, half-hidden duplicate of the thread:

  • Notifications and approvals send me to the hidden session. I get a notification to approve something; clicking it opens that backing session, not the Project thread. So I have to interact in two places for one conversation.
  • The session is a ghost. It does not appear in the Code tab session list or in my past sessions, and pinning it does nothing. The only way to reach it is through a notification.
  • It shows raw internals. The system envelope around each Project message (<wake>, <project>, <message trigger="true" ...> tags), tool calls and the agent's internal notes, in English, while the thread is in Portuguese. Nothing says it belongs to a Project thread, and there is no link back.
  • Bypass never applies. Every thread shows "Bypass permissions isn't available for this session. Asking for permissions instead." even with defaultMode: bypassPermissions and bypass allowed in Settings. Broad permissions.allow rules cover Bash/Edit/Write, but Run In Terminal always asks ("Claude is working on a message sent from another device"), with no setting to turn that off.
  • No panes in the thread. The browser pane, terminal and the Run button on suggested commands are not reachable from the Project, even though the agent can use them.

Expected

  • The Project thread is the only surface. Approval prompts and notifications land in the thread.
  • The backing session is either fully hidden, or listed, pinnable and clearly labeled as belonging to the thread, with a link back, and rendered like a normal session (no raw envelope markup).
  • Opt-in bypass permissions applies to Project threads running on my own machine, including Run In Terminal.
  • The Project thread can show (or link to) the browser and terminal panes.

Related

#96818, #96115, #96490, #97058

Environment

Claude Code 2.1.282, Claude desktop app on macOS (Apple Silicon), Project threads in Remote Control mode on a local folder.

What Should Happen?

We shouldnt have to see or deal with the hidden session, only the thread session from projects. We also should have the built-in terminal, browser, etc in these new threads.

Error Messages/Logs

Steps to Reproduce

  1. In ~/.claude/settings.json, set "permissions": { "defaultMode": "bypassPermissions" } and turn on "Allow bypass permissions mode" in the desktop app's Settings → Claude Code.
  2. In claude.ai, open a Project, add a local folder on this Mac (Remote Control), and start a thread there with any task that needs a shell command.
  3. Observe the toast on the Mac: "Bypass permissions isn't available for this session. Asking for permissions instead."
  4. Have the agent in the thread call Run In Terminal (e.g. echo test; exit). A macOS notification asks for approval.
  5. Click the notification. It opens a Code tab session showing the raw <wake>/<project>/<message> envelope of the Project messages, tool calls and internal notes, not the Project thread.
  6. Look for that session in the Code tab sidebar and past sessions: it is not listed. Try to pin it: nothing happens.
  7. Approve the prompt there with "Allow once". The thread continues, but the approval never appeared in the Project thread itself.
  8. Add "Bash", "Edit", "Write" and "mcp__terminal" to permissions.allow and repeat step 4: Bash no longer prompts, but Run In Terminal still does.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.9939.2 desktop

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

3 Comments

DUCKJAIII · 10 days ago

Same on Windows (Claude desktop app, Code tab), and it's worse there: the session can end up completely unreachable.

Steps

  1. In a Claude Project, a thread starts a Remote Control session on a local folder on my Windows PC.
  2. That session pings and a Windows desktop notification appears.
  3. Click the notification. At first this opened the backing Code session.
  4. Look for that session in the Code tab sidebar.
  5. Later, click another notification from the same session.

Expected: the session is listed in the sidebar (ideally linked to its Project thread), or the notification opens the Project thread itself.

Actual:

  • The session is never listed in the sidebar or past sessions.
  • Clicking the notification used to be the only way in. Now it no longer opens the session either.
  • So there is no route at all into a live session that is running on my own machine and pinging me. I have to relay everything through the Project thread.

Environment: Windows 11 Home 26H2 (build 26300), Claude desktop app 2.19675.0.0, Project thread on a local folder via Remote Control.

Possibly related: #90156 (Windows notification click leaves the window frozen).

---
_Generated by Claude Code_

arm3n · 7 days ago

Additional Windows findings from October 7, 2026: the pin persists in local metadata, but the Code sidebar does not display the session.

Environment

  • Windows 11 Pro, build 26200, x64.
  • Claude desktop app 2.26454.2.0.
  • Projects beta, with a thread on a local folder through Remote Control.

Observed behavior

  1. A Project thread creates a local Code session that runs its work.
  2. That Code session opens and accepts further work.
  3. Claude reports that it pinned the session.
  4. The session remains absent from the Code sidebar. Claude's sidebar inspection reports zero sessions in its Pinned section.

A read-only inspection of the exact session record under %APPDATA%\Claude\claude-code-sessions\<account>\<org>\local_<id>.json confirms:

{
  "isStarred": true,
  "isArchived": false,
  "remoteControlSpawn": {
    "projectThreadChild": true,
    "rcChild": true
  }
}

The direct claude://claude.ai/epitaxy/local_<id> link identifies the same saved local session. Its record and the task's output files remain on disk. This points to a sidebar visibility or session-index problem, rather than failure to persist the pin.

One diagnostic caveat: the normal list_sessions tool deliberately excludes its own caller. A result with only one other session does not establish that the current session disappeared. The relevant evidence here is the saved pin state plus the missing sidebar entry. Anthropic documents this limit.

The record retains cached Remote Control identifiers. Those identifiers do not establish a live connection. I did not verify the reported connection loss or the cause of the sidebar exclusion.

Expected: a pin accepted by a local Code session appears in the sidebar. If the sidebar cannot display Project workers, the app explains that restriction and provides a reliable route back to the Project thread.

No session metadata or application files changed during this inspection. Account identifiers, session identifiers, and private paths are omitted from this comment.

slope2sky · 5 days ago

Same on Linux (Ubuntu 26.04.1 LTS, LXQt, Claude Desktop 2.31226.0, Project thread on a local folder via Remote Control).

Everything described above matches: the backing Code session is not in the sidebar, it shows the raw <wake> / <project> / <message> envelopes, and the terminal that the agent opens with Run In Terminal is not visible anywhere in the Project thread (also not when the thread is popped out into its own window). The only way I found to reach it was xdg-open "claude://claude.ai/epitaxy/<session_id>".

One more inconsistency on top of that: the ⋮ menus differ between the two views.

  • Backing Code session (the one with the terminal): the ⋮ menu only has "Keep computer awake".
  • Project thread: the ⋮ menu has Copy link, Copy ID, Rename, Pin, Resolve, Report a problem, Delete.

So from the view where the terminal actually lives, there is no way to report a problem.

_Written with Claude Code, verified on my machine._