From 759dab55b699bffdd858aecf582e42ac8c8394e7 Mon Sep 17 00:00:00 2001 From: Variet Worker Date: Wed, 18 Mar 2026 06:49:17 +0900 Subject: [PATCH] =?UTF-8?q?fix(ext):=20!stop=20=ED=95=B8=EB=93=A4=EB=9F=AC?= =?UTF-8?q?=20SDK=20cancelCurrentTask()=20=EA=B5=90=EC=B2=B4=20=E2=80=94?= =?UTF-8?q?=20rejectAgentStep=20=EB=AF=B8=EB=93=B1=EB=A1=9D=20=EC=9D=B4?= =?UTF-8?q?=EC=8A=88=20=ED=95=B4=EA=B2=B0=20#task-411?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/references/known-issues.md | 17 ++++++----------- extension/src/command-handler.ts | 13 +++++++++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.agents/references/known-issues.md b/.agents/references/known-issues.md index 7b0315d..50d4a3e 100644 --- a/.agents/references/known-issues.md +++ b/.agents/references/known-issues.md @@ -43,17 +43,12 @@ ### [2026-03-11] rejectAgentStep — AG 미등록 VS Code 커맨드 - **증상**: `/stop` 및 거부 시 `antigravity.agent.rejectAgentStep` → `command not found` - **원인**: AG IDE가 이 커맨드를 런타임에 등록하지 않음 (상수 정의만 존재) -- **조사 결과** (2026-03-18): - - AG 소스에 `CASCADE_CHAT_CLIENT_REJECT_CASCADE_STEP: {id: "antigravity.agent.rejectAgentStep"}` 상수 정의는 존재 - - 하지만 VS Code `registerCommand`로 등록되지 않아 런타임에 호출 불가 - - **대안 후보**: AG LS에 gRPC 메서드 발견: - - `CancelCascadeInvocation` — requires `cascade_id` (= session ID) - - `CancelCascadeSteps` — step 단위 취소 - - `ResolveOutstandingSteps` — 이미 테스트됨, **CANCEL 동작** (승인 아님) - - `CancelCascadeInvocation`은 cascade_id만 필요하므로 가장 유력한 대안 -- **해결**: **미해결** — `CancelCascadeInvocation` RPC 테스트 필요 (세션 중단 동작 확인) -- **주의**: `ResolveOutstandingSteps` = cancel 확정. `CancelCascadeInvocation`도 동일한 cancel 계열일 가능성. - AG 런타임 커맨드 119개 중 reject 관련 등록 커맨드 없음 (archive 참조) +- **해결** (2026-03-18): `command-handler.ts`의 `!stop` 핸들러를 `sdk.cascade.cancelCurrentTask()`로 교체. + WS 경로는 이미 SDK 사용 중이었으므로 file-based 경로만 수정. + - `CancelCascadeInvocation` gRPC 메서드도 사용 가능 (cascade_id 필요) + - **E2E 검증 필요** — AG 가동 중 `!stop` 명령 테스트 +- **주의**: `sdk.cascade.rejectStep()`은 여전히 내부적으로 `rejectAgentStep` 커맨드를 호출할 수 있음. + 단일 step 거부보다 `cancelCurrentTask()`(전체 중단)가 더 안정적. - **Vikunja**: #411 --- diff --git a/extension/src/command-handler.ts b/extension/src/command-handler.ts index 1c77139..8348c38 100644 --- a/extension/src/command-handler.ts +++ b/extension/src/command-handler.ts @@ -158,10 +158,15 @@ function _processCommandFile(filePath: string, ctx: CommandHandlerContext) { console.log(`Gravity Bridge: approve_terminal error: ${e.message}`) ); } else if (text === '!stop') { - // Cancel current operation - vscode.commands.executeCommand('antigravity.agent.rejectAgentStep') - .then(() => console.log('Gravity Bridge: ✅ stop sent'), - () => { }); + // Cancel current operation — use SDK (rejectAgentStep is NOT a registered VS Code command) + if (ctx.sdk) { + try { + ctx.sdk.cascade.cancelCurrentTask(); + console.log('Gravity Bridge: ✅ stop sent via SDK'); + } catch (e: any) { + console.log(`Gravity Bridge: stop error: ${e.message}`); + } + } } else if (text.startsWith('!auto')) { // Auto-approve mode toggle let enabled: boolean;