Commit Graph

216 Commits

Author SHA1 Message Date
Variet Worker
6dbbb57fa7 feat(gateway): Docker Gateway 봇 + HTTP API 구현 #task-311
- gateway.py: Collector↔Gateway HTTP API (pending, response, chat, register, commands)
- Dockerfile + docker-compose.yml: BOT_MODE=gateway, port 8585
- main.py: gateway 모드 (watcher 비활성, GatewayAPI 시작)
- config.py: gateway 모드 BRAIN_PATH 검증 스킵
- requirements.txt: aiohttp 추가
- docs/usage-guide.md: Docker 배포 섹션 추가
- Extension VSIX v0.3.9 빌드 (auto-approve 포함)
2026-03-11 19:38:26 +09:00
Variet Worker
c1303999cf feat(bot,bridge): P1 !auto 토글 자동승인 + P2 BridgeTransport 추상화 #task-304 #task-305
P1: !auto 토글 (bot.py + extension.ts)
- auto_approve_projects set으로 프로젝트별 상태 관리
- !auto → on/off 토글, pending 자동 승인 + 🤖 자동 승인됨 embed
- Extension step_probe에서 autoApproveEnabled 시 직접 tryApprovalStrategies

P2: BridgeTransport 추상화 (bridge.py)
- BridgeTransport ABC + LocalTransport (기존 동작 100% 호환)
- RemoteTransport 스켈레톤 (multi-PC 대비)
- config.py BOT_MODE/REMOTE_BRIDGE_URL, main.py transport 주입

docs: usage-guide.md + tech-stack.md Python 경로 기록
2026-03-11 19:25:40 +09:00
Variet Worker
1696a2976b fix(config,extension): BRAIN_PATH 빈문자열 버그 + 크로스프로젝트 DEDUP MERGE 수정
- config.py: os.getenv BRAIN_PATH 빈값 시 CWD 해석 → or 패턴으로 수정
- extension.ts: writePendingApproval DEDUP에 project_name 가드 3곳 추가
- extension.ts: HTTP /pending file_permission dedup에도 project_name 가드
- known-issues: 2건 추가 (BRAIN_PATH, DEDUP MERGE)
- devlog: 2026-03-11 생성
2026-03-11 09:36:55 +09:00
Variet Worker
71aa80d144 fix(extension): v0.3.9 — SDK JS 파일 VSIX 포함 수정 + start_bot.bat conda Python 우선 2026-03-11 00:01:26 +09:00
CD
a0d46f1ff3 fix(extension): SDK LS 대소문자 매칭 버그 수정 — fixLSConnection() 추가 (멀티프로젝트 신호 누락 해결) 2026-03-10 22:51:02 +09:00
CD
4d780ec5e7 docs: devlog 013 + known-issues (Reload Window stale session, RUNNING 우선 선택, IDLE 채널) 2026-03-10 22:21:32 +09:00
CD
6179c4d242 fix(bridge): RUNNING 세션 우선 선택 + IDLE 채널 자동 생성 제거
- extension: bestSession 선택에 2단계 비교 (RUNNING > IDLE, then modTime)
- extension: [SESSION-FILTER] 진단 로그 + [projectName] 로그 접두사
- bot: pending_approval_scanner의 IDLE 프로젝트 자동 채널 생성 제거
- known-issues: 2개 항목 추가 (IDLE 고착, 채널 증식)
2026-03-10 21:56:46 +09:00
CD
5a3217d31a fix(extension): 크로스 프로젝트 response watcher 우회 수정 + file_permission write 도구 3-button 매핑
- response watcher: pending 삭제 후 response data의 project_name으로 fallback 필터
- processResponseFile: sessionId를 pending에서 우선 사용 (activeSessionId 대신)
- logToFile: [projectName] 접두사 추가 (공유 로그 구분)
- file_permission 리스트에 replace_file_content, write_to_file, multi_replace_file_content 추가
- UserResponse에 project_name 필드 추가 + bot.py 4곳 전파
- known-issues: 2건 추가, devlog 012
2026-03-10 21:02:06 +09:00
CD
08c5cb461b docs: devlog 011 + known-issues (workspace URI 세션 격리) 2026-03-10 19:33:39 +09:00
CD
ae91134ff2 fix(extension): v0.3.8 — workspace URI 기반 세션 필터링 (멀티프로젝트 격리) 2026-03-10 19:28:32 +09:00
CD
c9524fc8a8 fix(extension): v0.3.7 — file_permission 3-button 주입 + active_project.lock 제거
- writePendingApproval()에서 step_type=file_permission일 때 자동 3-button 주입
- active_project.lock 메커니즘 제거 (멀티 프로젝트 동시 사용 지원)
- step_probe auto-resolve에 project_name 필터 추가
- known-issues 2건 추가
2026-03-10 18:48:51 +09:00
CD
bd46beabb1 release: v0.3.6 — deployment package (VSIX + bot launcher + stale response filter + project lock) 2026-03-10 17:44:24 +09:00
CD
95d4f854f5 fix: skip stale timeout responses (>2min old reject) to prevent phantom REJECT duplicates 2026-03-10 17:23:47 +09:00
CD
186875ad0b feat: single active project lock — warns if another project already connected to Discord 2026-03-10 17:13:20 +09:00
CD
d1586c5e97 fix: auto-detect file_permission for file-related tools in step_probe + always check cmd for allow 2026-03-10 15:50:01 +09:00
CD
4dcb78c1ce fix: focus dirty files before executing agentAcceptAllInFile command 2026-03-10 15:34:37 +09:00
CD
0470c03ab3 fix: add step_type to default approve/reject/timeout callbacks (not just multi-choice) 2026-03-10 15:29:55 +09:00
CD
7982263fcd fix: pass step_type through response file for diff_review routing 2026-03-10 15:02:24 +09:00
CD
8fbf6bf6b7 fix: diff review uses cumulative file tracking instead of IDLE-time step scan 2026-03-10 14:44:16 +09:00
CD
f8f9ce8f5f fix: init lastUserInputStepIdx + lastResponseCaptureStep on session change (prevents stale replay) 2026-03-10 14:35:56 +09:00
CD
82b727a1e6 fix: skip echo relay for Discord-origin user messages 2026-03-10 14:31:47 +09:00
CD
c15b0f676f feat: diff review Discord relay — Accept/Reject all via VS Code commands 2026-03-10 14:28:01 +09:00
CD
b50012075e feat: full conversation relay #253 — user messages + error notifications to Discord 2026-03-10 14:08:14 +09:00
CD
514c0f2738 fix: extract user message from userInput.userResponse field (discovered via step dump) 2026-03-10 14:05:22 +09:00
CD
17dd6654f1 feat: relay AG-side user messages to Discord via chat_snapshots 2026-03-10 13:58:19 +09:00
CD
048ffd90a3 feat: auto_resolved sync + expired card update + DOM step_index 2026-03-10 13:52:27 +09:00
CD
47dbd38c7c fix: show actual arg values (paths, queries) instead of parameter names in approval 2026-03-10 13:30:01 +09:00
CD
e107b70510 fix: dedup file_permission pendings (10s window) + clean description text 2026-03-10 13:21:18 +09:00
CD
bec38f9a6a fix: filter DOM Observer Run-only pendings when step_probe already has pending 2026-03-10 13:08:50 +09:00
CD
14d2acf6c4 feat: 3-button file permission UX (Allow Once / Allow This Conversation / Deny) 2026-03-10 12:45:12 +09:00
CD
c9b4fd4722 fix: route file_permission scope by cmd (once=1, conversation=2) 2026-03-10 11:20:55 +09:00
CD
c612c37105 fix: module-scope stallProbed + reset after approval for consecutive detection 2026-03-10 11:16:23 +09:00
CD
857e10126d fix: add verbosity=DEBUG to all step_probe calls for full command text 2026-03-10 11:11:10 +09:00
CD
75a3482a9c fix: command length 150->1500, filter EPHEMERAL_MESSAGE, widen approval gate 2026-03-10 11:01:45 +09:00
CD
df592723b7 feat: file_permission interaction + DOM Observer RPC passthrough 2026-03-10 10:54:28 +09:00
CD
2958bdc950 feat: real-time PLANNER_RESPONSE capture on every delta>0 during RUNNING 2026-03-10 09:54:30 +09:00
CD
9b047c0c7d fix: extract text from plannerResponse.modifiedResponse field 2026-03-10 09:38:24 +09:00
CD
7ed2db90df fix: add verbosity=DEBUG to GetCascadeTrajectorySteps for response text 2026-03-10 09:13:13 +09:00
CD
1089c6ce61 fix: extract text from plannerResponse field for Discord relay 2026-03-10 09:02:16 +09:00
CD
e586bb6d41 feat: capture AI text responses on RUNNING->IDLE for Discord relay 2026-03-10 08:43:57 +09:00
CD
8c6d25c6d4 fix: add snapshot diagnostics + lower content filter for Discord messages 2026-03-10 08:18:36 +09:00
CD
628b5ae2fa fix: use stepOffset to bypass 775-step API limit with full details 2026-03-10 08:08:36 +09:00
CD
2361aa7558 fix: disable ResolveOutstandingSteps + add 775-limit stall fallback 2026-03-10 08:03:57 +09:00
CD
0e3a896c86 feat: step_type routing for all approval interaction types 2026-03-10 07:56:36 +09:00
CD
1f63f60280 feat: proto-based RPC approval for Run commands via Discord
Decoded HandleCascadeUserInteractionRequest protobuf schema from AG's
extension.js (message #162, base64 FileDescriptor 78KB).

Working payload (variant PROTO-0):
  cascadeId + interaction.{trajectoryId, stepIndex, runCommand.confirm}

Changes:
- extension.ts: Added Strategy 0-PROTO with decoded proto RPC call
- extension.ts: Fixed processResponseFile to call tryApprovalStrategies()
  instead of direct clickTrigger (was bypassing all strategies)
- extension.ts: Fixed false positive Run detection (sessionStalled reset
  when step_probe confirms no WAITING)
- extension.ts: Moved lastPendingStepIndex to module scope
- extension.ts: Added activeTrajectoryId tracking from session init
- bot.py: Added MERGE detection + Discord message edit for command updates
- bot.py: Added _sent_commands tracking for merge detection

Proto RE methodology:
1. Found schema exports in AG extension.js
2. Located fileDesc() with base64 protobuf descriptor
3. Decoded 58KB raw proto, found message names
4. Extracted CascadeRunCommandInteraction.confirm field
5. Tested camelCase JSON via ConnectRPC = SUCCESS
2026-03-10 07:45:10 +09:00
CD
aab1cfba27 fix(bridge): approval ENOENT race condition + multi-choice button grouping #task-276 #task-277 2026-03-10 06:32:20 +09:00
CD
373c0f7ddc fix(bridge): approval flow robustness — pending cleanup, MERGE dedup, false positive filter, auto_resolve, 30min timeout 2026-03-10 00:41:39 +09:00
CD
4ba65f9fc7 feat(bridge): Retry/Dismiss/Reject-all button detection + agent_guide workflow integration #task-274 2026-03-09 23:26:04 +09:00
CD
18b3734c02 fix(bridge): approval flow tuning — dedup + text cleanup + stall fallback removal + safe reject #task-256 2026-03-09 22:31:44 +09:00
CD
08077e8afa fix(bridge): CSP script-src 'unsafe-inline' patch for renderer v3 execution #task-264 2026-03-09 20:35:38 +09:00