Skip to content

入力中の権限ダイアログフォーカス奪取問題の修正

原文(日本語に翻訳)

入力中に権限ダイアログがフォーカスを奪っていた問題を修正しました。

原文(英語)

Fixed permission dialogs stealing focus while actively typing

概要

Claude Codeで文字を入力している最中に、バックグラウンドで権限確認ダイアログが表示され、フォーカスが強制的に移動してしまう問題が修正されました。この修正により、入力作業が中断されることなくスムーズに作業を続けられるようになりました。

基本的な使い方

修正後のスムーズな入力体験

bash
claude

# 長いプロンプトを入力中
> "このプロジェクトで、認証機能を実装して、データベース接続を設定して、テストも..."
# ← 入力を続けている

# バックグラウンドでツールが実行され、権限確認が必要に
# (例: Bash ツールがファイル作成を試みる)

# 以前の問題:
# - 突然フォーカスが権限ダイアログに移動
# - 入力中の文字が権限ダイアログに入力される
# - タイプミスや意図しない権限承認が発生

# 修正後:
# - 権限ダイアログは表示されるが、フォーカスは奪わない
# - 入力を完了してからEnterを押すまで待機
# - 入力完了後、ダイアログが前面に表示される

実践例

長いプロンプト入力時の中断防止

bash
claude

# 複雑な指示を入力中(Shift+Enterで改行)
> "次の機能を実装してください:
1. ユーザー認証システム
2. JWT トークン管理
3. パスワードハッシュ化
4. セッション管理
# ← まだ入力中...

# バックグラウンドで前のタスクが完了し、権限確認が発生
# Bash: npm install を実行しますか?

# 以前:
# - フォーカスが奪われ、入力が中断
# - "5. " の代わりに "y" が入力され、意図せず承認される

# 現在:
# - 入力は中断されない
# - Enterを押すとダイアログが表示される

複数タスク並行時の操作性向上

bash
# バックグラウンドでTask実行中
claude

> "全ファイルを分析して"

# Taskが実行中...新しいプロンプトを準備
> "次にこのリファクタリングを..."
# ← 入力開始

# Taskが完了し、次の権限確認が発生
# Edit: src/utils.ts を編集しますか?

# 修正前: 入力中に突然ダイアログが割り込む
# 修正後: 入力を邪魔せず、完了を待つ

高速タイピング時のエラー防止

bash
claude

# 高速で連続入力
> "fix bug in auth"  # Enter
> "run tests"  # Enter
> "commit changes"  # ← 入力中

# "fix bug" が権限要求
# Permission: Edit src/auth.ts?

# 以前の問題:
# - "commit changes" の入力中にダイアログが表示
# - "ges" の部分が権限ダイアログに入力される
# - 意図しない動作

# 修正後:
# - 各入力が完了してから権限確認
# - タイピングが中断されない

VSCode拡張での改善

bash
# VSCode拡張でClaude Codeを使用

# コード編集中にClaudeに指示を入力
Claude Chat Panel:
> "この関数をリファクタリングして、エラーハンドリングを追加して..."
# ← エディタで参照しながら入力中

# 権限ダイアログが表示されるタイミング
# 以前: 入力中に突然ダイアログが表示され、フォーカス移動
# 現在: 入力完了まで待機、ユーザー体験が向上

日本語IME入力時の改善

bash
claude

# 日本語で入力中
> "このプロジェクトに新しい機能を追加してください。具体的には..."
# ← IME変換中

# 権限確認が発生
# 以前: IME入力が中断され、未確定文字が消える
# 現在: IME入力が保護され、完了後にダイアログ表示

注意点

  • フォーカス管理の改善: 権限ダイアログは表示されますが、フォーカスを強制的に奪わなくなりました。ユーザーが現在の入力を完了してから対応できます。

  • 権限確認のタイミング:

    • 入力中: ダイアログは表示されるが、バックグラウンドで待機
    • Enter押下後: ダイアログが前面に表示され、応答を待つ
  • 複数の権限確認: 複数のツールが同時に権限を要求する場合、キューに入り順番に表示されます。

  • 自動承認の設定: 頻繁な権限確認を避けたい場合、設定で自動承認を有効化できます:

    json
    {
      "permissions": {
        "allow": ["Bash(**)", "Edit(**)"]
      }
    }
  • VSCode拡張での動作: この修正はCLI版とVSCode拡張の両方に適用されます。

  • アクセシビリティ: スクリーンリーダー使用時も、入力完了後に権限ダイアログが読み上げられます。

  • キーボードショートカット: 権限ダイアログが表示された後、キーボードで操作可能:

    • y / Enter: 承認
    • n / Esc: 拒否
    • a: すべて承認(セッション中)

関連情報