Skip to content

パーミッションUI改善: SDK v2対応 + コンパクトなキュー表示 #92

@ktmage

Description

@ktmage

概要

パーミッションリクエストが Webview UI に表示されず、セッション全体がハングするバグの修正と、UI の改善。

問題

  1. イベント型不一致: opencode サーバー (v1.2.20) は v2 SDK イベント (permission.asked) を送信するが、コードは v1 イベント (permission.updated) のみ処理していたため、パーミッションリクエストがすべてドロップされていた
  2. UI アーキテクチャ: PermissionViewMessageItem 内に埋め込まれており、子セッション(サブエージェント)からのパーミッションが表示されなかった
  3. UI デザイン: 黄色い警告ボックスが縦に積み上がるだけで、場所を取りすぎ、VS Code の他の UI との一貫性がなかった

対応内容

Phase 1: UI アーキテクチャ変更

  • PermissionQueue コンポーネントを作成し、InputArea の直上にキュー形式で表示
  • MessageItem からパーミッション表示を分離
  • permission.sessionID を使って子セッションのパーミッションも正しく応答

Phase 2: SDK v2 マイグレーション

  • @opencode-ai/sdk@opencode-ai/sdk/v2 に全面移行
  • イベント名、型、API メソッドシグネチャをすべて v2 に更新

Phase 3: UI デザイン改善

  • TodoHeader / FileChangesHeader と統一されたバースタイルに刷新
  • ShieldIcon + アクセントカラーのヘッダーバー
  • 先頭1件を常に表示、複数件ある場合はクリックで展開
  • ボタンを sm サイズでコンパクトに
  • 全8ロケール対応

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions