[BUG] Dispatch ignores bypassPermissionsModeEnabled — always spawns with --permission-mode default
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?
The "Allow all browser actions" toggle in Claude Desktop settings does not persist for Dispatch sessions. The toggle visually resets (does not stick) when clicked, and even when the underlying config file correctly contains "bypassPermissionsModeEnabled": true, Dispatch sessions are spawned with --permission-mode default instead of --permission-mode bypass.
Evidence from config file (~/Library/Application Support/Claude/claude_desktop_config.json):
"bypassPermissionsModeEnabled": true
Evidence from main.log (after Dispatch session connects):
[transport:ccr] reportMetadata {"permission_mode":"default","dispatch_agent_name":null}
The config file is written successfully (log shows Config file written after toggling), but:
- The UI toggle does not visually stick — it resets immediately after clicking
- The Dispatch session launcher ignores the
bypassPermissionsModeEnabledflag and hardcodes--permission-mode default
This was also confirmed in sdk_daemon.log, where the spawned process explicitly receives --permission-mode default as an argument regardless of the config setting.
Environment:
- macOS (Sonoma)
- Claude Desktop latest version
- Max plan ($200/mo)
- Dispatch feature enabled and otherwise functional (sessions connect, SSE streams, heartbeats work)
Steps to reproduce:
- Open Claude Desktop → Settings
- Navigate to Dispatch setup
- Toggle "Allow all browser actions" on
- Observe: toggle does not visually persist
- Start a Dispatch session from mobile
- Check
main.log→permission_modeis"default", not"bypass"
What Should Happen?
- The "Allow all browser actions" toggle should visually persist after being clicked
- When
bypassPermissionsModeEnabled: trueis set in the config, Dispatch sessions should be spawned with--permission-mode bypass(notdefault) - The
permission_modereported inmain.logmetadata should reflect the user's config setting
Error Messages/Logs
Steps to Reproduce
- Open Claude Desktop (latest version, macOS Sonoma, Max plan)
- Go to Settings → Dispatch setup
- Toggle "Allow all browser actions" on
- Observe: toggle does not visually persist (resets immediately)
- Verify config file at
~/Library/Application Support/Claude/claude_desktop_config.json— it shows"bypassPermissionsModeEnabled": true - Start a Dispatch session from mobile
- Check
~/Library/Logs/Claude/main.log— session metadata shows"permission_mode":"default"instead of"bypass" - Check
~/Library/Logs/Claude/sdk_daemon.log— spawned process receives--permission-mode defaultas argument
Claude Model
Not sure / Multiple models
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
N/A — Claude Desktop (Dispatch feature), not Claude Code CLI
Platform
Other
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗