Commit Graph

13 Commits

Author SHA1 Message Date
Variet Worker
d4a2016d06 perf(collector/watcher): 로컬 데이터 전송 성능 최적화 — mtime 프리체크, 프로젝트 캐시, re-forward 수정, 폴링 간격 조정 2026-03-13 23:13:18 +09:00
Variet Worker
e5a05e3ac4 feat(bot/extension/watcher): Discord 아티팩트 알림 개선 — 파일 첨부 전송, truncation 확대, 동적 .md 감시 2026-03-13 09:46:56 +09:00
Variet Worker
56de71470d fix(collector/bridge/gateway): rate limit 구조적 수정 — 점진적 백오프 + adaptive 폴링 + burst-friendly 윈도우 2026-03-12 22:33:49 +09:00
Variet Worker
bcc29f9331 fix(collector): add 0.3s throttle between multi-project command polls to prevent rate limit bursts 2026-03-12 21:11:05 +09:00
Variet Worker
ae51d28857 fix(collector): multi-project command polling via bridge/register/ discovery 2026-03-12 20:37:23 +09:00
Variet Worker
52c9526fdb fix(bridge): 429 Rate Limit 무한 루프 방지 — 지수 백오프 + Collector 폴링 보호 + rate limit 완화 2026-03-12 00:50:29 +09:00
Variet Worker
d7ed454332 fix: 나노 검증 — health URL/response polling/startup 상태변경 3건 수정
1. health_check: /../health → /health (URL 해석 오류)
2. response polling: startup pending 제외 (불필요한 HTTP 요청 방지)
3. startup pending 상태변경: pending→skip, auto_resolved/expired→forward
2026-03-11 23:01:24 +09:00
Variet Worker
1bf41ceee3 refactor: 아키텍처 수정 — 동기HTTP→aiohttp + 연결 모니터링 + 재시도큐
#1 동기 HTTP → async aiohttp (Critical)
  - RemoteTransport: urllib.request → aiohttp.ClientSession
  - 모든 HTTP 요청이 non-blocking으로 전환
  - 이벤트 루프 블로킹 문제 해결

#2 연결 상태 모니터링
  - RemoteTransport: connected 플래그 + 연속 실패 카운터
  - Collector: 30초마다 health check → 실패 시 경고 로그
  - 연결 복구 시 ' Gateway connected' 메시지

#3 실패 재시도 큐
  - RemoteTransport: _retry_queue (최대 100건)
  - POST 실패 시 큐에 저장, 연결 복구 후 자동 재전송
  - Collector: 10초마다 retry flush
2026-03-11 22:55:54 +09:00
Variet Worker
d2a477e12e fix(collector): MERGE + auto_resolved/expired 상태 변경 감지
- pending 파일 콘텐츠 해시 추적 (_pending_hashes)
- 내용 변경 시 Gateway에 재전달 (MERGE: command 업데이트, status 변경)
- _startup_pending으로 시작 시 기존 파일과 신규 파일 분리
2026-03-11 22:48:47 +09:00
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
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