From cf1352eefa47645d173b47cc13c2f37366c0a9a8 Mon Sep 17 00:00:00 2001 From: Variet Worker Date: Mon, 20 Apr 2026 00:11:07 +0900 Subject: [PATCH] =?UTF-8?q?fix(bridge):=20v34=20Accept=20all=20=EC=9D=B4?= =?UTF-8?q?=EC=A4=91=20=EB=B3=B4=EC=9E=A5=20=E2=80=94=20agentAcceptAllInFi?= =?UTF-8?q?le=20=EC=A7=81=EC=A0=91=20=ED=98=B8=EC=B6=9C=20+=20ACCEPT=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20relay=20(v0.5.99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v34: Accept all/diff_review 감지 시 Observer DOM 클릭 + extension host agentAcceptAllInFile 이중 실행. Observer relay 필터에 ACCEPT 키워드 추가로 ACCEPT-SCAN 진단 로그 활성화. --- docs/devlog/2026-04-19.md | 2 +- extension/package-lock.json | 4 ++-- extension/package.json | 2 +- extension/src/http-bridge.ts | 11 +++++++++++ extension/src/observer-script.ts | 2 +- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/devlog/2026-04-19.md b/docs/devlog/2026-04-19.md index 1e70239..d4c5228 100644 --- a/docs/devlog/2026-04-19.md +++ b/docs/devlog/2026-04-19.md @@ -12,4 +12,4 @@ ### 검증 결과 - 14/14 E2E 테스트 통과 - SYNTAX OK -- Accept all (diff review) 정상 동작 확인 +- Accept all (diff review) 자동 승인 테스트 — v0.5.98 21:48 KST diff --git a/extension/package-lock.json b/extension/package-lock.json index 504f99d..03f65ce 100644 --- a/extension/package-lock.json +++ b/extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "gravity-bridge", - "version": "0.5.98", + "version": "0.5.99", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gravity-bridge", - "version": "0.5.98", + "version": "0.5.99", "dependencies": { "cheerio": "^1.2.0", "ws": "^8.19.0" diff --git a/extension/package.json b/extension/package.json index 45529d1..b12d1ad 100644 --- a/extension/package.json +++ b/extension/package.json @@ -2,7 +2,7 @@ "name": "gravity-bridge", "displayName": "Gravity Bridge", "description": "Discord-based unified approval system for Antigravity AI interactions.", - "version": "0.5.98", + "version": "0.5.99", "publisher": "variet", "engines": { "vscode": "^1.100.0" diff --git a/extension/src/http-bridge.ts b/extension/src/http-bridge.ts index 52d6731..4d96198 100644 --- a/extension/src/http-bridge.ts +++ b/extension/src/http-bridge.ts @@ -299,6 +299,17 @@ function _handlePending(req: any, res: any, ctx: HttpBridgeContext) { } } if (alwaysRunDetected) { + // v34: If this is "Accept all" / "Accept", also call agentAcceptAllInFile directly + const isAcceptAll = /^Accept/i.test(rawCmd) || (data.step_type === 'diff_review'); + if (isAcceptAll) { + ctx.logToFile(`[HTTP] AUTO-APPROVE Accept all → calling agentAcceptAllInFile directly`); + try { + const vscode = require('vscode'); + vscode.commands.executeCommand('antigravity.prioritized.agentAcceptAllInFile') + .then(() => ctx.logToFile(`[HTTP] ✅ agentAcceptAllInFile SUCCESS`)) + .catch((e: any) => ctx.logToFile(`[HTTP] ❌ agentAcceptAllInFile failed: ${e.message?.substring(0, 100)}`)); + } catch (e: any) { ctx.logToFile(`[HTTP] ❌ vscode require failed: ${e.message}`); } + } // Try enrichment for better Discord display text let displayCmd = rawCmd; ctx.logToFile(`[HTTP] AUTO-APPROVE raw: cmd="${rawCmd}" desc="${rawDesc.substring(0, 120)}" buttons=${JSON.stringify((data.buttons || []).map((b: any) => b.text)).substring(0, 200)}`); diff --git a/extension/src/observer-script.ts b/extension/src/observer-script.ts index 42aee27..8b90a7f 100644 --- a/extension/src/observer-script.ts +++ b/extension/src/observer-script.ts @@ -12,7 +12,7 @@ export function generateApprovalObserverScript(_port: number): string { function log(m){ console.log('[GB Observer] '+m); // v19: Relay important logs to extension via HTTP so they appear in extension.log - if (BASE && (m.indexOf('CV-CLASSES')!==-1 || m.indexOf('CV-CHILDREN')!==-1 || m.indexOf('child[')!==-1 || m.indexOf('CV found')!==-1 || m.indexOf('Conversation view')!==-1 || m.indexOf('BEACON')!==-1 || m.indexOf('ERROR')!==-1 || m.indexOf('chat relay')!==-1 || m.indexOf('user-cls')!==-1 || m.indexOf('CONTEXT')!==-1 || m.indexOf('BTN-DOM')!==-1 || m.indexOf('DEFERRED')!==-1 || m.indexOf('DETECTED')!==-1)) { + if (BASE && (m.indexOf('CV-CLASSES')!==-1 || m.indexOf('CV-CHILDREN')!==-1 || m.indexOf('child[')!==-1 || m.indexOf('CV found')!==-1 || m.indexOf('Conversation view')!==-1 || m.indexOf('BEACON')!==-1 || m.indexOf('ERROR')!==-1 || m.indexOf('chat relay')!==-1 || m.indexOf('user-cls')!==-1 || m.indexOf('CONTEXT')!==-1 || m.indexOf('BTN-DOM')!==-1 || m.indexOf('DEFERRED')!==-1 || m.indexOf('DETECTED')!==-1 || m.indexOf('ACCEPT')!==-1)) { try { fetch(BASE+'/log', {method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({msg:m.substring(0,2000)})}); } catch(e){} } }