This commit is contained in:
@@ -40,13 +40,11 @@
|
||||
|
||||
## 미해결 이슈
|
||||
|
||||
### [2026-03-11] rejectAgentStep — AG 미등록 VS Code 커맨드
|
||||
- **증상**: `/stop` 및 거부 시 `antigravity.agent.rejectAgentStep` → `command not found`
|
||||
- **원인**: AG IDE가 이 커맨드를 런타임에 등록하지 않음 (상수 정의만 존재)
|
||||
- **해결** (2026-03-18): `_cancelCurrentCascade()` 헬퍼 추가 — `sdk.titles.getActiveCascadeId()` → `ls.cancelCascade(cascadeId)` (CancelCascadeInvocation RPC).
|
||||
AG의 빨간색 ■ 버튼과 동일한 메커니즘. rawRPC fallback 포함.
|
||||
- ~~`sdk.cascade.cancelCurrentTask()` — SDK에 존재하지 않는 메서드, 무시됨~~
|
||||
- **주의**: `getActiveCascadeId()`가 null이면 취소 불가 — 로그로 확인 필요
|
||||
### [2026-03-11] rejectAgentStep / !stop — AG 미등록 커맨드 + 렌더러 전용 함수
|
||||
- **증상**: `!stop` 명령이 AI를 멈추지 못함. 로그: "No active cascade to cancel"
|
||||
- **원인**: (1) `antigravity.agent.rejectAgentStep`은 AG 미등록 커맨드. (2) 대체한 `getActiveCascadeId()`는 **렌더러(DOM) 전용 함수** (`document.querySelector` 사용) — Extension host에서 항상 `undefined` 반환
|
||||
- **해결** (2026-03-18): `getActiveSessionId()` 콜백 추가 — step-probe가 `GetAllCascadeTrajectories` 폴링으로 추적하는 `activeSessionId` 사용. 이 ID는 이미 `GetCascadeTrajectorySteps` RPC의 `cascadeId` 파라미터로 사용되는 동일한 값 (`d55b6b9`)
|
||||
- **주의**: **SDK의 renderer-side 코드와 extension-host-side 코드 구분 필수**. `window.__agSDKTitles`는 DOM 전용, `TitleManager` 클래스는 extension host 전용.
|
||||
- **Vikunja**: #411
|
||||
|
||||
---
|
||||
|
||||
@@ -6,3 +6,4 @@
|
||||
| 002 | 06:33~06:50 | Hub/WS 단위 테스트 45개 작성 (연결 관리, pending_owners, 라우팅, 인증) | `ac803d4` | ✅ |
|
||||
| 003 | 06:50~07:05 | !stop 핸들러 SDK cancelCurrentTask() 교체 + VSIX 재빌드/설치 | `759dab5` | ✅ |
|
||||
| 004 | 07:03~07:15 | !stop 재수정 — cancelCurrentTask→CancelCascadeInvocation RPC (AG 빨간■ 동일) + VSIX 설치 | `8d5940b` | ✅ |
|
||||
| 005 | 07:50~08:20 | !stop 최종 수정 — getActiveCascadeId (렌더러 전용 DOM) → activeSessionId (step-probe 폴링) + 데이터 흐름 5경로 검증 | `d55b6b9` | ✅ |
|
||||
|
||||
@@ -438,6 +438,7 @@ async function activate(context) {
|
||||
bridgePath, projectName, sdk, ls: sdk?.ls, autoApproveEnabled, logToFile,
|
||||
onAutoApproveChanged: (enabled) => { autoApproveEnabled = enabled; },
|
||||
recentDiscordSentTexts,
|
||||
getActiveSessionId: () => activeSessionId,
|
||||
}, data);
|
||||
},
|
||||
onInstanceUpdate: (count, instances) => {
|
||||
@@ -561,6 +562,7 @@ async function activate(context) {
|
||||
bridgePath, projectName, sdk, ls: sdk?.ls, autoApproveEnabled, logToFile,
|
||||
onAutoApproveChanged: (enabled) => { autoApproveEnabled = enabled; },
|
||||
recentDiscordSentTexts,
|
||||
getActiveSessionId: () => activeSessionId,
|
||||
});
|
||||
// Response watcher is now initialized by initStepProbe() above
|
||||
// Register basic commands
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user