Skip to content

原文(日本語に翻訳)

Bazel や EDR 保護された Go ワークフローで Bash コマンドが失敗する問題を修正: $TMPDIR がサンドボックス化されたコマンドのみではなくすべてのコマンドに対して /tmp/claude-{uid} に上書きされていた問題(2.1.154 でのリグレッション)。

原文(英語)

Fixed bash commands failing under bazel and EDR-protected Go workflows: $TMPDIR was overridden to /tmp/claude-{uid} for all commands instead of only sandboxed ones (regression in 2.1.154)

概要

2.1.154 で導入されたリグレッションにより、$TMPDIR 環境変数がサンドボックス化されたコマンドだけでなくすべての Bash コマンドに対して /tmp/claude-{uid} に上書きされていました。Bazel や EDR(Endpoint Detection and Response)保護された Go ワークフローは $TMPDIR の値に依存しており、これにより Bash コマンドが失敗していました。この問題が修正され、$TMPDIR のオーバーライドはサンドボックス化されたコマンドのみに適用されるようになりました。

基本的な使い方

修正後は特別な操作は不要です。Bazel や EDR 保護環境での Bash コマンドが正常に動作するようになります:

bash
# Bazel ビルド(以前は $TMPDIR の問題で失敗することがあった)
bazel build //...

# Go のテスト(EDR 保護環境)
go test ./...

実践例

Bazel を使用するプロジェクトでの Claude Code の使用

bash
# Bazel プロジェクトで Claude Code を起動
claude

# Bazel コマンドが正常に実行できるようになった
# User: ビルドを実行して
# → Claude が bazel build //... を実行($TMPDIR の問題なし)

EDR 保護された環境での Go 開発

bash
# EDR ソフトウェアが $TMPDIR のアクセスを監視している環境でも正常動作
# User: ユニットテストを実行して
# → Claude が go test ./... を実行($TMPDIR の正しい値を使用)

注意点

  • この問題は 2.1.154 で導入されたリグレッション(以前は正常だった動作が壊れた)です。
  • $TMPDIR のオーバーライドが問題の原因でした。サンドボックス化されたコマンド以外では元の $TMPDIR が使用されるようになりました。
  • Bazel や特定の Go ツールは $TMPDIR の正確なパスに依存することがあるため、この修正が重要でした。

関連情報