Root cause: daemon E2E tests read user's real ~/.claude/settings.json
which has Bash(rm:*) in allow list, causing rm commands to auto-execute
without permission prompts. Direct claude-agent.test.ts works because
it uses useTempClaudeConfigDir() to create isolated settings with
ask: ["Bash(rm:*)"] and sets CLAUDE_CONFIG_DIR env var.
Fix: Add temp config setup to daemon tests (same pattern as direct
tests) or use settingSources: [] for SDK isolation mode.
See REPORT-claude-permission-tests.md for full analysis.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>