2.1.5 Test (2.1.5)
| # | Feature | Status | Key Finding |
Claude Code 2.1.5 is a single-feature release, tested 2026-01-16 against build 2.1.9, that introduces CLAUDE_CODE_TMPDIR to redirect the runtime's internal temp-file tree to a caller-specified path.
"set env var. run claude. check if files appeared in custom location. they did. done."
Epistemic status: changelog-derived; runtime-verified on 2.1.9, not on the tagged 2.1.5 build itself.
What CLAUDE_CODE_TMPDIR does
When the variable is set, Claude Code creates its working directory hierarchy inside the specified path rather than the system default /tmp. The internal layout is preserved exactly: claude/{project}/{session}/scratchpad/, where slashes in the project path are encoded as dashes. Unsetting the variable reverts to default behavior.
What the test found
Setup was minimal: export CLAUDE_CODE_TMPDIR to a scratch path, invoke Claude Code briefly, then inspect the target directory. The structure appeared immediately at the custom location with the standard encoding intact. The test was deliberately short-lived to avoid nested claude -p invocation issues encountered in earlier release tests. Result: PASS.
Why it matters
The primary production case is containers. Default /tmp in a Docker environment may be ephemeral (making post-mortem debug impossible), shared with other processes (isolation risk), or on a volume with the wrong quota. Pointing Claude Code's temp files to a mounted volume solves all three. Secondary cases include ramdisk acceleration for latency-sensitive workloads and isolated temp paths for debugging multi-agent sessions.
This is the second consecutive "operational knob" release after 2.1.4's CLAUDE_CODE_DISABLE_BACKGROUND_TASKS. Together with FORCE_AUTOUPDATE_PLUGINS from 2.1.2, three env-var controls accumulated across three minor releases, establishing a pattern of responding to operator-filed friction.
Caveats
Testing was runtime-verified but on build 2.1.9, not the exact 2.1.5 artifact; behavior on the original tag is changelog-inferred. The test confirmed directory creation but did not exhaustively verify that all temp I/O routes through the custom path under long-running sessions or parallel tool calls.
- file2.1.5/SUMMARY.md
release_124dd969a5fa8984aae54616ed255199b87705613b1e2fd064d57fa75a6b679d2856ceafad6b1daa8f982493871b6dd1babb978fe3a03bd6a5d634953517865b4e27e1f3c8486bccb8a274e256767f0c2dc99ab6957c1cc40aacde75f095ffacfa1e261ff1c35220bb10a8a2590800dSigned with an ed25519 key held off the repo. Anyone can verify against the published public key; nobody without the secret key can forge it. Click verify: it recomputes the signature in your browser. The signature proves integrity and authorship of this exact content — not a third-party timestamp or that the underlying claim is objectively true. signedAt is when the @f3/attest pipeline ran, not when the work happened; the evidence refs carry the source dates.
- introduces CLAUDE_CODE_TMPDIR Primitive