Commit Graph

174 Commits

Author SHA1 Message Date
Variet Worker
58a421f5a6 fix: 전체 시스템 감사 — 6건 수정 (보안 + 안정성)
Bug 1 (만료됨 스팸): Collector 시작 시 기존 pending skip
Bug 2 (pending 미삭제): Gateway에서 response 소비 시 pending도 삭제
Bug 3 (재시작 중복): Bug 1로 해결

Security 1: API 요청 1MB 크기 제한 (client_max_size)
Security 2: IP별 rate limiting (10 req/s)
Security 3: _commands 메모리 누수 방지 (TTL 30분)
2026-03-11 22:42:05 +09:00
Variet Worker
7eca0763c9 fix(collector): 기능 누락 3건 수정 — Discord 명령어/채팅/등록 중계
Gap 1: Discord→Extension 명령어 깨짐
  - bot.py: _write_command() 래퍼 — gateway.push_command()도 호출
  - main.py: bot.gateway 연결
  - 슬래시 명령어 + on_message 모두 _write_command 사용

Gap 2: Chat snapshot 미전달
  - collector.py: _forward_chat_snapshots_loop 추가

Gap 3: Session registration 미전달
  - collector.py: _forward_registrations_loop 추가
2026-03-11 22:31:08 +09:00
Variet Worker
3d75825bba feat(collector): brain event 중계 추가 — Watcher 이벤트를 Gateway로 전달
- collector.py: _forward_events_loop — BrainEvent를 JSON으로 serialize하여 /api/event POST
- gateway.py: /api/event 엔드포인트 — 수신한 이벤트를 bot event_queue에 주입
- main.py: event_queue를 CollectorBridge에 전달

이제 task.md, implementation_plan, walkthrough 변경사항이 Collector→Gateway→Discord 경로로 전달됨
2026-03-11 22:24:48 +09:00
Variet Worker
7e36db5191 fix(docker): Dockerfile에 parser.py 등 누락 — COPY *.py로 수정 2026-03-11 21:24:09 +09:00
Variet Worker
c60d14e408 docs: devlog 2026-03-11 항목 006~009 커밋 해시 및 추가 기록 2026-03-11 20:18:36 +09:00
Variet Worker
95c2905e14 feat(collector): RemoteTransport + CollectorBridge 구현 — Collector↔Gateway HTTP 통신 완성
- bridge.py RemoteTransport: HTTP 클라이언트, API Key auth, Gateway API 매핑
- collector.py CollectorBridge: 3개 async loop (pending 전달, response 폴링, commands 폴링)
- main.py: BOT_MODE=remote → CollectorBridge 실행 (Discord bot 없이)
- config.py: GATEWAY_API_KEY 설정
- .env.example: 모든 설정 항목 업데이트
2026-03-11 20:10:45 +09:00
Variet Worker
95da3e9307 feat(gateway): API Key 인증 + HTTPS (Caddy) 보안 강화
- gateway.py: auth middleware — /api/* 엔드포인트에 Bearer token 필수
- Caddyfile: Let's Encrypt 자동 HTTPS 리버스 프록시
- docker-compose.yml: Caddy 추가, Gateway 포트 내부 전용
- config.py: GATEWAY_API_KEY 설정 추가
- .env: 키 생성 명령어 가이드 포함
2026-03-11 19:49:24 +09:00
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
ff559bc6ee chore: .agents 워크플로우/레퍼런스/가이드 전체 추가 (.gitignore 규칙 제거) 2026-03-10 23:29:28 +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
11a4730873 docs: devlog 008-009 (project lock, stale reject, v0.3.6 release) 2026-03-10 17:50:00 +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
99f3f264ed docs: devlog entries 006-007 (diff review relay, step_type passthrough, file_permission auto-detect) 2026-03-10 15:56:14 +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
26c19fb6be fix: add step_type to ApprovalRequest (was being filtered out by known-fields logic) 2026-03-10 15:16:18 +09:00
CD
c4dfbcad67 fix: increase pending timeout to 30min, pass step_type through response 2026-03-10 15:07:36 +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
8a6428efa8 docs: devlog 004-005 entries (auto_resolved sync + #253 relay) 2026-03-10 14:10:23 +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
93439d2f1c docs: devlog index 002+003, known-issues update (verbosity + file_permission), Vikunja #276 #277 done 2026-03-10 13:46:43 +09:00
CD
a440868101 docs: devlog 20260310-003 — approval flow improvements summary 2026-03-10 13:42:52 +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