原文(日本語に翻訳)
settings.json の cleanupPeriodDays: 0 がバリデーションエラーで拒否されるよう変更 — これまでトランスクリプトの永続化を無言で無効化していました
原文(英語)
Changed cleanupPeriodDays: 0 in settings.json to be rejected with a validation error — it previously silently disabled transcript persistence
概要
settings.json で cleanupPeriodDays: 0 を設定すると、以前はトランスクリプト(会話履歴)の永続化が無言で無効化されていました。v2.1.89からは 0 が無効な値として明示的にバリデーションエラーで拒否されます。意図せずトランスクリプトが保存されなくなる問題を防ぐための変更です。
基本的な使い方
json
// settings.json の例
// ✗ エラー(v2.1.89以降)
{
"cleanupPeriodDays": 0
}
// ✓ 正しい設定例(7日間保持)
{
"cleanupPeriodDays": 7
}
// ✓ 30日間保持(デフォルト値)
{
"cleanupPeriodDays": 30
}
// ✓ 1日(最小値)
{
"cleanupPeriodDays": 1
}実践例
設定ファイルの確認と修正
bash
# 現在の設定を確認
cat ~/.claude/settings.json | grep cleanupPeriodDays
# または
cat .claude/settings.json | grep cleanupPeriodDaysjson
// 修正前(問題のある設定)
{
"model": "claude-opus-4-6",
"cleanupPeriodDays": 0, // ← これがバリデーションエラーになります
"theme": "dark"
}
// 修正後
{
"model": "claude-opus-4-6",
"cleanupPeriodDays": 7, // ← 7日間保持
"theme": "dark"
}トランスクリプトを保持したくない場合の対応
json
// トランスクリプトを極力短期間で削除したい場合
// 最小値の1日を設定する
{
"cleanupPeriodDays": 1
}bash
# または、cleanupPeriodDays を settings.json から削除してデフォルト値を使用
# (デフォルトは30日)
cat ~/.claude/settings.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
data.pop('cleanupPeriodDays', None)
print(json.dumps(data, indent=2))
" > /tmp/settings-fixed.json && mv /tmp/settings-fixed.json ~/.claude/settings.jsonバリデーションエラーのトラブルシューティング
bash
# Claude起動時にバリデーションエラーが出る場合
claude
# エラー例: "settings.json: cleanupPeriodDays は1以上の値を設定してください"
# 設定ファイルの場所を確認
ls -la ~/.claude/settings.json
ls -la .claude/settings.json # プロジェクト固有の設定
# 設定を修正
vim ~/.claude/settings.json注意点
cleanupPeriodDays: 0は無声でトランスクリプト保存を無効化していたため、気づかずに会話履歴が失われていたケースがありました。この変更はそのような意図しない設定ミスを防ぐためのものです- トランスクリプトを保存したくない明確な理由がある場合は、
1(1日)を設定するか、cleanupPeriodDaysを省略してデフォルト値(30日)を使用することを推奨します - この変更はプロジェクト設定(
.claude/settings.json)とグローバル設定(~/.claude/settings.json)の両方に適用されます - 既存の
cleanupPeriodDays: 0設定は、Claude起動時にエラーとして報告されるようになります。早めに修正することをお勧めします