48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# Discord Bridge — Step 구조 파악 및 3대 기능 수정
|
|
|
|
- **시간**: 2026-03-08 01:45~02:25
|
|
- **Commit**: `0c3d6cd`
|
|
|
|
## 결정 사항
|
|
|
|
### plannerResponse 구조 (확정)
|
|
`GetCascadeTrajectorySteps` RPC가 반환하는 `PLANNER_RESPONSE` step의 실제 구조:
|
|
```
|
|
plannerResponse: {
|
|
response: "사용자 대면 텍스트", ← 핵심 필드
|
|
modifiedResponse: "수정된 버전",
|
|
thinking: "내부 사고 (SKIP)",
|
|
thinkingSignature: "암호화 해시 (SKIP)",
|
|
messageId: "bot-xxx",
|
|
toolCalls: [{name, argumentsJson}],
|
|
thinkingDuration: "0.9s",
|
|
stopReason: "STOP_REASON_STOP_PATTERN"
|
|
}
|
|
```
|
|
|
|
### RUN_COMMAND 구조 (확정)
|
|
```
|
|
step.runCommand: {
|
|
commandLine: "echo ...", ← 핵심 필드
|
|
proposedCommandLine: "echo ...",
|
|
cwd: "c:\\Users\\...",
|
|
waitMsBeforeAsync: "10000",
|
|
blocking: true,
|
|
autoRunDecision: "AUTO_RUN_DECISION_DEFAULT_DENY"
|
|
}
|
|
```
|
|
- `step.toolCall`은 존재하지 않음 — `step.runCommand`에 직접 필드
|
|
|
|
### startStepIndex 무시 문제
|
|
`GetCascadeTrajectorySteps({ startStepIndex })` — API가 파라미터를 무시하고 전체 step 반환.
|
|
워크어라운드: `allSteps.slice(-e.delta)`로 마지막 N개만 처리.
|
|
|
|
### 승인 RPC
|
|
- `HandleCascadeUserInteraction` → `socket hang up` (실패)
|
|
- `ResolveOutstandingSteps` → 성공 (폴백으로 사용)
|
|
|
|
## 미완료
|
|
- 승인 버튼 Discord→Extension→LS 경로: `HandleCascadeUserInteraction` 파라미터 정확히 확인 필요
|
|
- AI 텍스트: 긴 응답(4000자+)의 Discord 분할 표시 테스트 안됨
|
|
- 대화형 짧은 응답이 정상 전달되는지 최종 확인 필요
|