CLAUDE_CODE_MAX_CONTEXT_TOKENSがDISABLE_COMPACTを尊重するよう修正
原文(日本語に翻訳)
CLAUDE_CODE_MAX_CONTEXT_TOKENS が設定されている場合に DISABLE_COMPACT を正しく尊重するよう修正しました。
原文(英語)
Fixed CLAUDE_CODE_MAX_CONTEXT_TOKENS to honor DISABLE_COMPACT when it is set.
概要
DISABLE_COMPACT 環境変数を設定してコンテキストの自動圧縮を無効にしていても、CLAUDE_CODE_MAX_CONTEXT_TOKENS が設定されている場合にはコンテキスト圧縮が実行されてしまうバグが修正されました。修正後は両方の変数を設定した場合でも、DISABLE_COMPACT が正しく機能し、コンテキストの圧縮が行われなくなります。
基本的な使い方
DISABLE_COMPACT を設定することでコンテキスト圧縮を無効にできます。今回の修正により、CLAUDE_CODE_MAX_CONTEXT_TOKENS を同時に設定した場合も意図通りに動作します。
bash
# コンテキスト圧縮を無効化 + カスタムの最大トークン数を設定
export DISABLE_COMPACT=1
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=50000
claude
# 修正後: DISABLE_COMPACT が正しく機能し、圧縮は行われない
# 修正前: CLAUDE_CODE_MAX_CONTEXT_TOKENS が設定されていると圧縮が発生する場合があった実践例
コンテキストを保持したまま長い作業を行う
コードの大規模リファクタリングなど、長いセッションでコンテキストを完全に保持したい場合に有効です。
bash
# コンテキスト圧縮を無効にして起動
export DISABLE_COMPACT=1
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=100000
claude
# セッション中に「コンテキストが大きくなっています」という警告が出ても
# 自動圧縮は行われず、全ての会話履歴が保持されるCI/CD パイプラインでの一貫した動作
自動化パイプラインで予測可能な動作を確保したい場合に、両方の変数を確実に設定できます。
bash
#!/bin/bash
# ci-script.sh
export DISABLE_COMPACT=1
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=200000
# 大きなコードベースの解析タスク
claude --print "プロジェクト全体のアーキテクチャを分析してください" \
--input ./src/
# 修正後: DISABLE_COMPACT が確実に適用される特定のプロジェクト設定での活用
プロジェクト固有の .env ファイルで両方の変数を設定することも可能です。
bash
# .env ファイル
DISABLE_COMPACT=1
CLAUDE_CODE_MAX_CONTEXT_TOKENS=150000
# 起動時に読み込む
source .env
claude
# または claude の設定として
# ~/.claude/settings.json での設定も参照問題が起きていたシナリオと修正後の動作
修正前に問題が発生していた具体的なシナリオを確認します。
bash
# 問題が発生していたシナリオ(修正前)
export DISABLE_COMPACT=1 # 圧縮を無効にしたい
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=50000 # トークン上限も設定
claude
# 上限に近づくと...
# 修正前: DISABLE_COMPACT=1 にも関わらず圧縮が実行される場合があった
# 修正後: DISABLE_COMPACT が正しく機能し、圧縮されない
# コンテキスト上限に達したときの動作(修正後):
# → 圧縮されずに警告メッセージが表示される
# → ユーザーが手動でコンテキストを管理する必要がある注意点
DISABLE_COMPACTを設定すると、コンテキストが最大サイズに達したときに自動圧縮が行われなくなります。その場合、手動でコンテキストをクリアするか、新しいセッションを開始する必要があります。CLAUDE_CODE_MAX_CONTEXT_TOKENSの値は API の実際の上限を超えることはできません。- 非常に大きなコンテキストはレスポンス速度の低下やコストの増加につながる可能性があります。
DISABLE_COMPACTは圧縮の完全な無効化のみを行います。コンテキスト上限に達した場合の動作はモデルや設定によって異なります。