fix(ext): !stop 핸들러 SDK cancelCurrentTask() 교체 — rejectAgentStep 미등록 이슈 해결 #task-411

This commit is contained in:
Variet Worker
2026-03-18 06:49:17 +09:00
parent bbfafdc5e4
commit 759dab55b6
2 changed files with 15 additions and 15 deletions

View File

@@ -43,17 +43,12 @@
### [2026-03-11] rejectAgentStep — AG 미등록 VS Code 커맨드 ### [2026-03-11] rejectAgentStep — AG 미등록 VS Code 커맨드
- **증상**: `/stop` 및 거부 시 `antigravity.agent.rejectAgentStep``command not found` - **증상**: `/stop` 및 거부 시 `antigravity.agent.rejectAgentStep``command not found`
- **원인**: AG IDE가 이 커맨드를 런타임에 등록하지 않음 (상수 정의만 존재) - **원인**: AG IDE가 이 커맨드를 런타임에 등록하지 않음 (상수 정의만 존재)
- **조사 결과** (2026-03-18): - **해결** (2026-03-18): `command-handler.ts``!stop` 핸들러를 `sdk.cascade.cancelCurrentTask()`로 교체.
- AG 소스에 `CASCADE_CHAT_CLIENT_REJECT_CASCADE_STEP: {id: "antigravity.agent.rejectAgentStep"}` 상수 정의는 존재 WS 경로는 이미 SDK 사용 중이었으므로 file-based 경로만 수정.
- 하지만 VS Code `registerCommand`로 등록되지 않아 런타임에 호출 불가 - `CancelCascadeInvocation` gRPC 메서드도 사용 가능 (cascade_id 필요)
- **대안 후보**: AG LS에 gRPC 메서드 발견: - **E2E 검증 필요** — AG 가동 중 `!stop` 명령 테스트
- `CancelCascadeInvocation` — requires `cascade_id` (= session ID) - **주의**: `sdk.cascade.rejectStep()`은 여전히 내부적으로 `rejectAgentStep` 커맨드를 호출할 수 있음.
- `CancelCascadeSteps` — step 단위 취소 단일 step 거부보다 `cancelCurrentTask()`(전체 중단)가 더 안정적.
- `ResolveOutstandingSteps` — 이미 테스트됨, **CANCEL 동작** (승인 아님)
- `CancelCascadeInvocation`은 cascade_id만 필요하므로 가장 유력한 대안
- **해결**: **미해결**`CancelCascadeInvocation` RPC 테스트 필요 (세션 중단 동작 확인)
- **주의**: `ResolveOutstandingSteps` = cancel 확정. `CancelCascadeInvocation`도 동일한 cancel 계열일 가능성.
AG 런타임 커맨드 119개 중 reject 관련 등록 커맨드 없음 (archive 참조)
- **Vikunja**: #411 - **Vikunja**: #411
--- ---

View File

@@ -158,10 +158,15 @@ function _processCommandFile(filePath: string, ctx: CommandHandlerContext) {
console.log(`Gravity Bridge: approve_terminal error: ${e.message}`) console.log(`Gravity Bridge: approve_terminal error: ${e.message}`)
); );
} else if (text === '!stop') { } else if (text === '!stop') {
// Cancel current operation // Cancel current operation — use SDK (rejectAgentStep is NOT a registered VS Code command)
vscode.commands.executeCommand('antigravity.agent.rejectAgentStep') if (ctx.sdk) {
.then(() => console.log('Gravity Bridge: ✅ stop sent'), 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')) { } else if (text.startsWith('!auto')) {
// Auto-approve mode toggle // Auto-approve mode toggle
let enabled: boolean; let enabled: boolean;