[BUG] Settings not applied: alwaysThinkingEnabled ignored and inconsistent permission behavior
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?
.claude/settings.json configuration is not being applied correctly. Two main issues:
alwaysThinkingEnabled: trueis completely ignored - no thinking blocks appear in the
UI despite being enabled
- Bash permission allow list behaves inconsistently -
bun run lint(matching the allow
pattern "bun run lint*") was blocked on first attempt but succeeded on second attempt
- Message truncation - assistant response was cut off mid-sentence at the exact point of
referencing a thinking block tag
The assistant confirmed it is generating thinking blocks, but they are not visible in the UI.
Settings file exists at the correct location and Claude Code was restarted after settings
modification.
What Should Happen?
With alwaysThinkingEnabled: true in settings:
- Thinking blocks should be visible in all assistant responses
With bash allow list configured:
- Commands matching allow patterns (like
"bun run lint*") should execute without permission
prompts or blocks
Error Messages/Logs
When first attempting to run `bun run lint`, the following error was shown:
The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was
a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for
the user to tell you how to proceed.
The second attempt of the same command succeeded without any changes.
Message truncation example - assistant's message ended abruptly:
⏺ That's definitely a bug then. The facts:
1. Thinking blocks: I am generating them (in `
Steps to Reproduce
- Create
.claude/settings.jsonwith the configuration below - Restart Claude Code session
- Request: "please lint"
- Observe: First attempt is blocked/rejected
- Request again: "please lint"
- Observe: Second attempt succeeds
- Throughout: No thinking blocks visible despite
alwaysThinkingEnabled: true
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.28
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Warp
Additional Information
Configuration file (.claude/settings.json):
```json
{
"alwaysThinkingEnabled": true,
"permissions": {
"bash": {
"allow": [
"bun run lint*",
"bun run test*",
"bun run types:check*",
"bun run types:generate*",
"git status*",
"git diff*",
"git log*",
"git show*",
"ls*",
"pwd"
]
}
},
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "FILE=$(jq -r '.tool_input.file_path' 2>/dev/null || echo ''); case
\"$FILE\" in .env|credentials|secrets*) echo 'Blocked: sensitive file' >&2; exit 1;; esac"
}
]
},
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "CMD=$(jq -r '.tool_input.command' 2>/dev/null || echo ''); if echo
\"$CMD\" | grep -q 'deploy'; then cd [PATH REDACTED] && bun run types:check
|| (echo 'Build check failed - fix errors before deploying' >&2; exit 1); fi"
}
]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "cd [PATH REDACTED] && bun run lint"
},
{
"type": "command",
"command": "FILE=$(jq -r '.tool_input.file_path' 2>/dev/null || echo ''); if [[
\"$FILE\" == *package.json ]]; then echo '💡 Remember: run bun install to update lockfile'
>&2; fi"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "echo '\n💡 Consider running: bun run test' >&2"
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "cd [PATH REDACTED] && test -f .env.dev && echo '✓
Environment ready' || echo '⚠️ Missing .env.dev'"
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude needs input\" with title
\"Claude Code\"' 2>/dev/null || true"
}
]
}
]
}
}
This issue has 14 comments on GitHub. Read the full discussion on GitHub ↗