[BUG] Settings not applied: alwaysThinkingEnabled ignored and inconsistent permission behavior

Resolved 💬 14 comments Opened Oct 30, 2025 by scruffymongrel Closed Jan 16, 2026

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:

  1. alwaysThinkingEnabled: true is completely ignored - no thinking blocks appear in the

UI despite being enabled

  1. 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

  1. 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

  1. Create .claude/settings.json with the configuration below
  2. Restart Claude Code session
  3. Request: "please lint"
  4. Observe: First attempt is blocked/rejected
  5. Request again: "please lint"
  6. Observe: Second attempt succeeds
  7. 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"
}
]
}
]
}
}

View original on GitHub ↗

This issue has 14 comments on GitHub. Read the full discussion on GitHub ↗