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;