Skip to content

原文(日本語に翻訳)

アプリ内設定の書き込み(例: /add-dir --remember/config)がメモリ内スナップショットを更新しない問題を修正しました。これにより、削除されたディレクトリがセッション中に取り消されない問題が発生していました。

原文(英語)

Fixed in-app settings writes (e.g. /add-dir --remember, /config) not refreshing the in-memory snapshot, preventing removed directories from being revoked mid-session

概要

Claude Code内のコマンド(/add-dir --remember/config など)で設定を変更した際、ディスク上の設定ファイルは更新されていましたが、実行中のセッションが使用するメモリ内の設定スナップショットが更新されていませんでした。特にディレクトリを削除した場合、そのディレクトリへのアクセスがセッション中に取り消されないという問題が発生していました。

基本的な使い方

bash
# 作業ディレクトリを追加
/add-dir /path/to/project --remember

# ディレクトリを削除(修正前: セッション中はまだアクセス可能)
# 修正後: 即座にアクセスが取り消される
/config  # → 設定から削除

# または設定を直接変更
/add-dir --remember /new/project  # 追加

実践例

セッション中のディレクトリ管理

bash
# プロジェクトAの作業を開始
/add-dir /Users/user/projects/project-a --remember

# プロジェクトAのファイルを操作
"project-aのREADMEを更新して"

# 作業が完了してディレクトリを削除
/config
# → 「許可されたディレクトリ」からproject-aを削除

# 修正前: セッション中はまだproject-aにアクセス可能(セキュリティリスク)
# 修正後: 即座にアクセスが取り消される
# → "project-aのファイルを見て" → アクセス拒否

動的なディレクトリアクセス管理

bash
# 一時的なディレクトリを追加
/add-dir /tmp/work-session --remember

# 作業を実施
"このディレクトリのスクリプトを最適化して"

# 作業完了後にディレクトリを削除
# 修正後: 即座に有効化される
/config  # ディレクトリを削除
echo "アクセスが即座に取り消されました"

設定変更の即時適用を確認

bash
# /config コマンドで設定を確認
/config

# 許可ディレクトリの追加
/add-dir /new/project --remember

# 設定が即座に反映されていることを確認
/config  # 新しいディレクトリが一覧に表示されている

# ディレクトリを削除
/config  # → 削除ボタンをクリック

# 修正後: セッション内でも即座に設定が反映される
# 「/new/projectのファイルを見て」→ アクセス拒否(正しい動作)

セキュアなファイルアクセス管理

bash
#!/bin/bash
# 機密ディレクトリへの一時的なアクセスを管理するスクリプト

grant_temporary_access() {
  local directory="$1"
  local duration_seconds="$2"
  
  echo "一時的なアクセスを付与: $directory"
  
  # Claude Code に一時ディレクトリを追加
  # (実際にはClaude Codeセッション内のコマンドを使用)
  echo "/add-dir $directory --remember" | claude --stdin
  
  # 指定時間後にアクセスを削除
  sleep "$duration_seconds"
  
  echo "アクセス期間が終了しました。設定からディレクトリを削除してください。"
  echo "/config で設定を開いて、$directory を削除してください。"
}

# 30分間、機密ディレクトリへのアクセスを許可
grant_temporary_access "/path/to/sensitive/data" 1800

注意点

  • この修正により、/add-dir --remember/config での設定変更がセッション中に即座に有効になります
  • 以前は設定ファイルは更新されていましたが、メモリ内の状態が古いままになっていました
  • この修正はセキュリティの観点からも重要です(ディレクトリ削除が即座に有効になる)
  • 設定変更がリアルタイムで反映されるため、より直感的な操作が可能になります
  • セッションを再起動すると引き続き設定ファイルから設定が読み込まれます

関連情報