Filesystem Sandboxing for macOS #
What: Fine-grained filesystem access controls using macOS sandbox-exec, allowing you to restrict which files and directories bash commands can read or write.
How to use: Configure in .claude/settings.json:
{
"sandbox": {
"filesystem": {
"read": {
"allow": ["~/projects/*", "~/data"],
"deny": ["/etc/passwd"]
},
"write": {
"allow": ["~/projects/output/*"],
"deny": ["~/projects/output/protected"]
}
}
}
}
Details:
- Complements existing network sandboxing (v1.0.113 only had network restrictions)
- Read allow-list mode denies all reads except specified paths
- Write deny-list blocks specific paths while allowing essential system paths
- Automatically allows stdout/stderr, temp directories, and Claude config paths
- Supports path expansion (
~, ./, ../) and wildcards (/* suffix only) - Path validation prevents shell metacharacters (
&&, ||, ;, backticks, $) - Evidence:
QBB() at line 374281, y41() at line 353864
Interactive Thinking Mode with Visual Highlighting #
What: Real-time detection and visual highlighting of thinking trigger words in 7 languages (English, Japanese, Chinese, Spanish, French, German, Korean) with three intensity levels.
How to use: Type trigger words in your prompt to activate extended thinking:
# Basic (4,000 tokens): "think", "考えて", "想"
claude "think about the best algorithm for this"
# Medium (10,000 tokens): "think deeply", "megathink", "もっと考えて"
claude "think deeply about the edge cases"
# High (31,999 tokens): "think harder", "ultrathink", "熟考"
claude "think harder about the security implications"
Details:
- Trigger words are highlighted with shimmer effects as you type
- Status bar shows: "Thinking on • [level] • /t to disable"
- Use
/t command to toggle thinking mode on/off - Intelligently ignores conversational phrases like "I think" and "we think"
- Color-coded by intensity: basic (low), medium (medium), high (max)
- Evidence:
TTA() at line 366061, PTA() at line 366112, fA0() at line 366083, o1Q() at line 436378
Windows Terminal Enhanced Support #
What: Improved clear screen handling for Windows Terminal and VSCode integrated terminal on Windows.
Details:
- Detects Windows Terminal via
WT_SESSION environment variable - Detects VSCode terminal via
TERM_PROGRAM environment variable - Modern Windows terminals now use full clear sequence (
\x1B[2J\x1B[3J\x1B[H) that clears scrollback buffer - Legacy Windows consoles continue using compatible sequence (
\x1B[2J\x1B[0f) - Provides cleaner screen clearing experience in modern Windows environments
- Evidence:
JN9() at line 362129, XN9() at line 362132, FN9() at line 362142
Output Truncation Protection #
What: Automatic truncation of bash command output exceeding 64MB to prevent memory issues.
Details:
- Default limit: 64MB (67,108,736 bytes)
- Truncated output shows:
... [output truncated - ${KB}KB removed] - Tracks total bytes received even when truncated
- Prevents crashes from commands generating massive output
- Evidence:
class ga at line 362733
Bulk File History Restore #
What: Restore multiple files from file history backups in a single operation.
Details:
- Restores files to their pre-session state from backups
- Handles three scenarios: restore from backup, delete new files, skip missing files
- Supports dry-run mode to preview changes
- Returns count of files affected
- Continues on errors with detailed logging
- Evidence:
_3B() at line 393833, k3B() at line 393866
What: Intelligent editor selection that verifies editors are actually installed before attempting to use them.
How it works:
# Priority order: $VISUAL → $EDITOR → code → vi → nano
# Only selects editors that exist on the system
claude /memory
Details:
- Uses
which (Unix) or where (Windows) to check editor availability - Tries VS Code (
code), then vi, then nano in order - Trims whitespace from environment variables to prevent issues
- Throws clear error if no editor is available
- Improves reliability when opening memory files
- Evidence:
If1() at line 404558, V95() at line 404550
Enhanced PostToolUse Hook Messages #
What: Specialized system message types for hook execution outcomes instead of generic informational messages.
Details:
- New message type:
post_tool_hook_success for successful hook completion - New message type:
post_tool_hook_cancelled for user-cancelled hooks - Clearer semantic representation in message history
- Better structured for UI rendering and debugging
- Note: PostToolUse hooks existed in v1.0.113, only the message types are new
- Evidence:
PIB() at line 398052, jq0() at line 398064
Improved Interrupt Messaging #
What: More informative interrupt messages that guide users on what to do next.
Details:
- Changed from "Interrupted by user" to "Interrupted · What should Claude do instead?"
- Clearer call-to-action for users after interrupting
- Better UX for mid-task cancellations
- Evidence:
lM() at line 373333, t8() at line 373341
Environment Variable Support for Default Haiku Model #
What: Configure default Haiku model via ANTHROPIC_DEFAULT_HAIKU_MODEL environment variable.
Details:
- Allows overriding the default Haiku model for specific use cases
- Falls back to standard Haiku 3.5 if not set
- Useful for testing or using alternative Haiku versions
- Evidence:
FX2() at line 371423
Empty Directory Cleanup #
What: Automatically removes empty directories after file operations.
Details:
- Cleans up empty directories left after file deletions
- Prevents directory clutter in file history operations
- Silently handles cases where directory removal fails
- Evidence:
U65() at line 411458
What: Proper reset of session cost and usage metrics.
Details:
- Resets total cost, API duration, tool duration, line counts
- Ensures clean state for new sessions
- Prevents metric accumulation across sessions
- Evidence:
Fo1() at line 340029
- Added
hOA() at line 364421 for processing and optimizing base64-encoded images
String Truncation Utility #
- Added
u00() at line 362718 for joining and truncating string arrays with size limits
Path Processing Helpers #
- Added
EG1() at line 374270 for expanding filesystem paths (~, ./, relative to absolute) - Added
NG1() at line 374278 for escaping paths in sandbox profiles
Thinking Detection Utilities #
- Added
$j9() at line 366080 for checking if text contains thinking triggers - Added
Nw1() at line 366092 for extracting trigger word positions - Added
Ew1() at line 365889 for splitting text into highlighted/normal segments