From 6aea48e2e94072ee7c16828e76a3a5a5a1f73823 Mon Sep 17 00:00:00 2001 From: Variet Worker Date: Sun, 19 Apr 2026 21:27:18 +0900 Subject: [PATCH] =?UTF-8?q?feat(bridge):=20v33=20Accept=20all=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=EC=8A=B9=EC=9D=B8=20=E2=80=94=20diff=20review=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=EB=8F=84=20auto-approve=20(v0.5.98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Always run과 동일하게 Accept all / Accept 버튼도 즉시 자동 승인. Observer가 step_type=diff_review로 전송 → bridge에서 AUTO_APPROVE_RE 매칭 → 즉시 응답. --- docs/devlog/2026-04-19.md | 15 +++++++++++++++ extension/package-lock.json | 4 ++-- extension/package.json | 2 +- extension/src/http-bridge.ts | 6 ++++-- 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 docs/devlog/2026-04-19.md diff --git a/docs/devlog/2026-04-19.md b/docs/devlog/2026-04-19.md new file mode 100644 index 0000000..1e70239 --- /dev/null +++ b/docs/devlog/2026-04-19.md @@ -0,0 +1,15 @@ +# Devlog 2026-04-19 + +## v0.5.97 — Observer 명령어 추출 안정화 (21:22 KST 검증 완료) + +### 변경사항 +- **v32**: 터미널 프롬프트(`❯`) 조기감지 — JUNK/PROMPT 필터 전에 명령어 직접 추출 +- **v31**: content_copy 아이콘 필터 + 후보 길이순 정렬 + trailing icon strip +- **v30**: "Running command" div 형제 탐색 (pre/code 대신 plain div) +- 배포 전 체크리스트 보강 (log relay 필터, regex E2E, 가정 검증) +- observer-dev-guide DOM 구조 BTN-DOM-DUMP 기반 갱신 + +### 검증 결과 +- 14/14 E2E 테스트 통과 +- SYNTAX OK +- Accept all (diff review) 정상 동작 확인 diff --git a/extension/package-lock.json b/extension/package-lock.json index ce4b84e..504f99d 100644 --- a/extension/package-lock.json +++ b/extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "gravity-bridge", - "version": "0.5.97", + "version": "0.5.98", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gravity-bridge", - "version": "0.5.97", + "version": "0.5.98", "dependencies": { "cheerio": "^1.2.0", "ws": "^8.19.0" diff --git a/extension/package.json b/extension/package.json index 8114d1b..45529d1 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.97", + "version": "0.5.98", "publisher": "variet", "engines": { "vscode": "^1.100.0" diff --git a/extension/src/http-bridge.ts b/extension/src/http-bridge.ts index c400add..52d6731 100644 --- a/extension/src/http-bridge.ts +++ b/extension/src/http-bridge.ts @@ -285,11 +285,13 @@ function _handlePending(req: any, res: any, ctx: HttpBridgeContext) { // v19: "Always run" auto-approve — MUST run BEFORE any filter can reject it // Detects from rawCmd OR from buttons array (Observer may detect sibling first) - let alwaysRunDetected = /^Always\s+run$/i.test(rawCmd); + // v33: Also auto-approve "Accept all" (diff review) and "Accept" buttons + const AUTO_APPROVE_RE = /^(Always\s+run|Accept\s+all|Accept)$/i; + let alwaysRunDetected = AUTO_APPROVE_RE.test(rawCmd); let alwaysRunBtnIndex = alwaysRunDetected ? 0 : -1; if (!alwaysRunDetected && Array.isArray(data.buttons)) { for (let bi = 0; bi < data.buttons.length; bi++) { - if (/^Always\s+run$/i.test((data.buttons[bi].text || '').trim())) { + if (AUTO_APPROVE_RE.test((data.buttons[bi].text || '').trim())) { alwaysRunDetected = true; alwaysRunBtnIndex = bi; break;