Before submitting
Area
apps/server
Steps to reproduce
- Settings -> Providers -> Claude. Set Launch args to
--dangerously-skip-permissions.
- Open a thread whose runtime mode is Auto-accept edits.
- Send a prompt that makes the agent run a shell command.
- Inspect the spawned CLI process:
ps -axo command | grep '[c]laude --output-format stream-json'
Expected behavior
A user-supplied launch arg should not be silently inert.
Either the explicit launch arg wins, or T3 declines to emit a conflicting --permission-mode and surfaces a warning in provider settings that the arg conflicts with the thread runtime mode.
Today there is no feedback anywhere in the UI that the configured arg has no effect.
Actual behavior
T3 emits both flags. --permission-mode <derived from thread runtime mode> appears mid-argv, and the user's launch args are appended last:
--permission-mode acceptEdits ... --session-id=<...> --dangerously-skip-permissions
Claude Code resolves the explicit --permission-mode ahead of --dangerously-skip-permissions regardless of argv order, so the effective mode is acceptEdits. The CLI's own system:init message in T3's provider event log confirms it:
"model":"claude-opus-5[1m]","permissionMode":"acceptEdits"
Because --permission-prompt-tool stdio is also set, every non-edit tool call (Bash, MCP, web fetch) round-trips to a T3 approval card. Over roughly two days my projection_pending_approvals table recorded 351 approval requests, all from auto-accept-edits threads and none from full-access threads.
The provider setting reads as a global "stop asking me" switch, but it can never override the per-thread runtime mode.
Related
Impact
Minor bug or occasional failure
Version or commit
0.0.33
Environment
macOS 26.5.2 (arm64), T3 Code (Alpha) 0.0.33, Claude Code CLI 2.1.235, model claude-opus-5[1m]
Logs or stack traces
$ ps -axo command | grep '[c]laude --output-format stream-json'
claude --output-format stream-json --verbose --input-format stream-json \
--effort high --model claude-opus-5[1m] --permission-prompt-tool stdio \
--mcp-config {"mcpServers":{"t3-code":{"type":"http","url":"http://127.0.0.1:3773/mcp","headers":{"Authorization":"Bearer <REDACTED>"}}}} \
--setting-sources=user,project,local --permission-mode acceptEdits \
--include-partial-messages --add-dir $HOME/master/scratch/claude-setup \
--add-dir $HOME/.t3/userdata/attachments --session-id=<REDACTED> \
--dangerously-skip-permissions
$ cd ~/.t3/userdata/logs/provider && grep -rho '"model":"[^"]*","permissionMode":"[^"]*"' . | tail -3
"model":"claude-opus-5[1m]","permissionMode":"acceptEdits"
"model":"claude-opus-5[1m]","permissionMode":"acceptEdits"
"model":"claude-opus-5[1m]","permissionMode":"acceptEdits"
Screenshots, recordings, or supporting files
No response
Workaround
Set the thread runtime mode to Full access, which maps to bypassPermissions. The launch arg is redundant there and cannot help in any other mode.
Switch modes between turns rather than mid-turn, to avoid #6517.
Before submitting
Area
apps/server
Steps to reproduce
--dangerously-skip-permissions.Expected behavior
A user-supplied launch arg should not be silently inert.
Either the explicit launch arg wins, or T3 declines to emit a conflicting
--permission-modeand surfaces a warning in provider settings that the arg conflicts with the thread runtime mode.Today there is no feedback anywhere in the UI that the configured arg has no effect.
Actual behavior
T3 emits both flags.
--permission-mode <derived from thread runtime mode>appears mid-argv, and the user's launch args are appended last:Claude Code resolves the explicit
--permission-modeahead of--dangerously-skip-permissionsregardless of argv order, so the effective mode isacceptEdits. The CLI's ownsystem:initmessage in T3's provider event log confirms it:Because
--permission-prompt-tool stdiois also set, every non-edit tool call (Bash, MCP, web fetch) round-trips to a T3 approval card. Over roughly two days myprojection_pending_approvalstable recorded 351 approval requests, all fromauto-accept-editsthreads and none fromfull-accessthreads.The provider setting reads as a global "stop asking me" switch, but it can never override the per-thread runtime mode.
Related
auto-accept-editsClaudeAdapter.startSessionmaps full access straight tobypassPermissionswithout checking whether it is permitted; same code path that builds this argvImpact
Minor bug or occasional failure
Version or commit
0.0.33
Environment
macOS 26.5.2 (arm64), T3 Code (Alpha) 0.0.33, Claude Code CLI 2.1.235, model claude-opus-5[1m]
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
Set the thread runtime mode to Full access, which maps to
bypassPermissions. The launch arg is redundant there and cannot help in any other mode.Switch modes between turns rather than mid-turn, to avoid #6517.