[BUG] server auto-posts "connect to your device" card at the start of every new thread
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
New cloud threads in a Claude Projects project that has a served Remote Control device folder post the card "Allow Claude to connect to your device in this thread" (Deny / Allow once), even when the task only needs the cloud repo and nothing on the user's device.
Steps to reproduce
- Create a project with a GitHub repo.
- Serve a device folder through Remote Control and let one thread (e.g. a "bot manager") use it.
- Start new cloud threads for repo-only work.
Expected
The connect-device card appears only when the task needs the user's device or files.
Actual
Every new thread posts the card, including threads that never touch the device.
Observations
list_devicesreports the same served folder aspreapproved: truein one view andapproved: falsein another.- Parked Remote Control sessions from older threads stay "active" on the same folder.
- Every thread's tool list includes the connect-device and start-Remote-Control tools, and its instructions say to call connect-device when the task needs the user's files.
Suspected cause (unconfirmed)
The instruction to call connect-device is too loose, and the served folder is always listed, so threads request a connection for cloud-only work. A project setting to withhold device tools from cloud-only threads would also fix it.
What Should Happen?
What should happen
- Cloud-only threads never ask for the device. A thread whose task needs only the cloud repo, the project files or GitHub does not call connect-device or start-Remote-Control, and no "Allow Claude to connect to your device in this thread" card appears.
- The card appears only on real need. A thread asks once, and only when the task needs something that exists on the user's device (their files, a local build or test, a signed-in tool). The card names the folder and the reason.
- A decision sticks. If the user taps Deny, the thread does not ask again. If the user already approved the folder for the project, new threads that need it connect without a prompt.
- Approval flags agree. A served folder shown as
preapproved: trueis alsoapproved: truein every view, so the prompt can't reappear for a folder the user already allowed. - Dedicated device threads keep working. A thread started specifically for the device (e.g. a "bot manager" on the user's PC) still connects as before, and its parked session resumes on the next message.
Error Messages/Logs
Steps to Reproduce
- Create a project with a GitHub repo.
- Serve a device folder through Remote Control and let one thread (e.g. a "bot manager") use it.
- Start new cloud threads for repo-only work.
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.294 (Claude Code)
Platform
Other
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
<img width="536" height="283" alt="Image" src="https://github.com/user-attachments/assets/d6f258a1-865f-41b0-99f4-469ea12d2a86" />