docs: devlog #005 + known-issues !stop root cause update + Vikunja #411 done

This commit is contained in:
Variet Worker
2026-03-18 08:22:10 +09:00
parent d55b6b97ad
commit 07bbb626a6
4 changed files with 9 additions and 8 deletions

View File

@@ -40,13 +40,11 @@
## 미해결 이슈 ## 미해결 이슈
### [2026-03-11] rejectAgentStep — AG 미등록 VS Code 커맨드 ### [2026-03-11] rejectAgentStep / !stop — AG 미등록 커맨드 + 렌더러 전용 함수
- **증상**: `/stop` 및 거부 시 `antigravity.agent.rejectAgentStep``command not found` - **증상**: `!stop` 명령이 AI를 멈추지 못함. 로그: "No active cascade to cancel"
- **원인**: AG IDE가 이 커맨드를 런타임에 등록하지 않음 (상수 정의만 존재) - **원인**: (1) `antigravity.agent.rejectAgentStep`은 AG 미등록 커맨드. (2) 대체한 `getActiveCascadeId()`**렌더러(DOM) 전용 함수** (`document.querySelector` 사용) — Extension host에서 항상 `undefined` 반환
- **해결** (2026-03-18): `_cancelCurrentCascade()` 헬퍼 추가 — `sdk.titles.getActiveCascadeId()``ls.cancelCascade(cascadeId)` (CancelCascadeInvocation RPC). - **해결** (2026-03-18): `getActiveSessionId()` 콜백 추가 — step-probe가 `GetAllCascadeTrajectories` 폴링으로 추적하는 `activeSessionId` 사용. 이 ID는 이미 `GetCascadeTrajectorySteps` RPC의 `cascadeId` 파라미터로 사용되는 동일한 값 (`d55b6b9`)
AG의 빨간색 ■ 버튼과 동일한 메커니즘. rawRPC fallback 포함. - **주의**: **SDK의 renderer-side 코드와 extension-host-side 코드 구분 필수**. `window.__agSDKTitles`는 DOM 전용, `TitleManager` 클래스는 extension host 전용.
- ~~`sdk.cascade.cancelCurrentTask()` — SDK에 존재하지 않는 메서드, 무시됨~~
- **주의**: `getActiveCascadeId()`가 null이면 취소 불가 — 로그로 확인 필요
- **Vikunja**: #411 - **Vikunja**: #411
--- ---

View File

@@ -6,3 +6,4 @@
| 002 | 06:33~06:50 | Hub/WS 단위 테스트 45개 작성 (연결 관리, pending_owners, 라우팅, 인증) | `ac803d4` | ✅ | | 002 | 06:33~06:50 | Hub/WS 단위 테스트 45개 작성 (연결 관리, pending_owners, 라우팅, 인증) | `ac803d4` | ✅ |
| 003 | 06:50~07:05 | !stop 핸들러 SDK cancelCurrentTask() 교체 + VSIX 재빌드/설치 | `759dab5` | ✅ | | 003 | 06:50~07:05 | !stop 핸들러 SDK cancelCurrentTask() 교체 + VSIX 재빌드/설치 | `759dab5` | ✅ |
| 004 | 07:03~07:15 | !stop 재수정 — cancelCurrentTask→CancelCascadeInvocation RPC (AG 빨간■ 동일) + VSIX 설치 | `8d5940b` | ✅ | | 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` | ✅ |

View File

@@ -438,6 +438,7 @@ async function activate(context) {
bridgePath, projectName, sdk, ls: sdk?.ls, autoApproveEnabled, logToFile, bridgePath, projectName, sdk, ls: sdk?.ls, autoApproveEnabled, logToFile,
onAutoApproveChanged: (enabled) => { autoApproveEnabled = enabled; }, onAutoApproveChanged: (enabled) => { autoApproveEnabled = enabled; },
recentDiscordSentTexts, recentDiscordSentTexts,
getActiveSessionId: () => activeSessionId,
}, data); }, data);
}, },
onInstanceUpdate: (count, instances) => { onInstanceUpdate: (count, instances) => {
@@ -561,6 +562,7 @@ async function activate(context) {
bridgePath, projectName, sdk, ls: sdk?.ls, autoApproveEnabled, logToFile, bridgePath, projectName, sdk, ls: sdk?.ls, autoApproveEnabled, logToFile,
onAutoApproveChanged: (enabled) => { autoApproveEnabled = enabled; }, onAutoApproveChanged: (enabled) => { autoApproveEnabled = enabled; },
recentDiscordSentTexts, recentDiscordSentTexts,
getActiveSessionId: () => activeSessionId,
}); });
// Response watcher is now initialized by initStepProbe() above // Response watcher is now initialized by initStepProbe() above
// Register basic commands // Register basic commands

File diff suppressed because one or more lines are too long