github / github/copilot-sdk

The copilot CLI flashes the permission prompt UI, even though extension has approved.

オープン
#956 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
10.5k
フォーク
1.5k
平均マージ
1日 11時間
マージ済み PR(30日)
127

説明

I'm working on an extension that would auto approve based on some rules.

```
// Deferred fire-and-forget logger — session isn't available until joinSession resolves
let _session = null;
const log = (msg) => { if (_session) _session.log(msg).catch(() => {}); };
...

onPermissionRequest: (request) => {
const toolName = request.toolName ?? "";
const toolArgs = {};
if (request.fullCommandText) toolArgs.command = request.fullCommandText;
if (request.fileName) toolArgs.path = request.fileName;

// 1. deny rules first
for (const rule of parsedDeny) {
if (matchRule(rule, toolName, toolArgs)) {
log(`DENY (permission) tool=${toolName} kind=${request.kind} rule="${rule.raw}"`);
return { kind: "denied-by-rules", rules: [rule.raw] };
}
}

// 2. allow rules — auto-approve
for (const rule of parsedAllow) {
if (matchRule(rule, toolName, toolArgs)) {
log(`APPROVE (permission) tool=${toolName} kind=${request.kind} rule="${rule.raw}"`);
return { kind: "approved" };
}
}

// 3. no match — let CLI handle (prompt user)
log(`NO MATCH (permission) tool=${toolName} kind=${request.kind}`);
return { kind: "no-result" };
},
```

In the cli i see the UI prompt none the less, if i do nothing, i see the tool call get approved and complete in the background.
If i'm fast enough or am on autopilot with limited permissions then the ui prompt rejects the tool call and fails it.

I do not think the CLI is correctly sequencing and waiting on extensions for permissions flow.

CLI Version : v1.0.13-1

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。