From aa9be854b418c723b925e1c56857a2d57496bf7c Mon Sep 17 00:00:00 2001 From: CD Date: Sat, 7 Mar 2026 12:37:57 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=84=B8=EC=85=98=20=EC=A2=85=EB=A3=8C?= =?UTF-8?q?=20-=20devlog=20=EA=B8=B0=EB=A1=9D=20+=20Vikunja=20=EB=8F=99?= =?UTF-8?q?=EA=B8=B0=ED=99=94=20(#221=20done,=20#222=20done,=20#223=20crea?= =?UTF-8?q?ted)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/devlog/2026-03-07.md | 15 +++++++++------ docs/devlog/entries/20260307-001.md | 29 ++++++++++++++++++----------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/docs/devlog/2026-03-07.md b/docs/devlog/2026-03-07.md index 637c785..b66af2c 100644 --- a/docs/devlog/2026-03-07.md +++ b/docs/devlog/2026-03-07.md @@ -1,9 +1,12 @@ -# 2026-03-07 Devlog +# 2026-03-07 Devlog — Antigravity Discord Bridge | # | 시간 | 작업 | 커밋 | 상태 | |---|------|------|------|------| -| 001 | 10:15 | 프로젝트 초기 설정 (Git, workflows, helpers) | `063257b` | ✅ | -| 002 | 10:30 | 핵심 컴포넌트 구현 (watcher, parser, bot, main) | `ea5001f` | ✅ | -| 003 | 10:45 | 동적 채널 관리 (AG-프로젝트명) | `ba8454c` | ✅ | -| 004 | 10:55 | race condition 수정 + metadata 모니터링 | `02c757f` | ✅ | -| 005 | 10:58 | devlog 구조 + 세션 마무리 | | 🔧 | +| 1 | 00:50 | 프로젝트 초기 설정 + 핵심 컴포넌트 | `063257b`~`ea5001f` | ✅ | +| 2 | 01:15 | 동적 채널 관리 + race condition | `ba8454c`~`02c757f` | ✅ | +| 3 | 01:30 | devlog 구조 | `26dcb51` | ✅ | +| 4 | 01:45 | Phase 2 bridge 프로토콜 + 승인 버튼 | `5d95185` | ✅ | +| 5 | 02:00 | task embed 편집 + metadata 중복 | `a76208e` | ✅ | +| 6 | 02:25 | Extension 스캐폴드 + VSIX 빌드 | `52fed8c`~`1af5fb7` | ✅ | +| 7 | 11:40 | 전면 재설계 (채널 스팸/중복 해결) | `e32be6b`~`51ece61` | ✅ | +| 8 | 12:17 | 승인 중복 전송 수정 + E2E 테스트 통과 | `ce2336c` | ✅ | diff --git a/docs/devlog/entries/20260307-001.md b/docs/devlog/entries/20260307-001.md index 85d428d..c13f26e 100644 --- a/docs/devlog/entries/20260307-001.md +++ b/docs/devlog/entries/20260307-001.md @@ -1,16 +1,23 @@ -# Gravity Control 프로젝트 초기 구축 +# 전면 재설계: 채널 중복 + 이벤트 파이프라인 -- **시간**: 2026-03-07 10:15~11:00 -- **Commits**: `063257b`, `ea5001f`, `ba8454c`, `02c757f` -- **Vikunja**: #214~218 → done, #219 → 미착수 (Phase 2) +- **시간**: 2026-03-07 11:30~12:20 +- **Commits**: `e32be6b`, `b2622e9`, `51ece61`, `ce2336c` +- **Vikunja**: #221 → done ## 결정 사항 -- **로컬 파일 감시 방식 채택**: VS Code Extension 없이 brain/ 디렉토리 watchdog 감시 -- **채널명 AG-{프로젝트명}**: task.md 제목에서 추출, 언더스코어 형식 -- **metadata.json 모니터링**: 아티팩트 요약 변경도 Discord로 릴레이 -- **asyncio.Lock**: 동시 이벤트로 인한 채널 중복 생성 방지 + +### 채널 검색: Discord API vs 자체 dict +- `category.text_channels`는 Discord 내부 캐시 → 방금 만든 채널이 안 보임 +- `fetch_channel` API도 `text_channels` 프로퍼티는 캐시 반환 +- **결론**: `self.session_channels` dict에서 NAME 기반 검색으로 전환 (캐시 무관) + +### startup sync 제거 +- 69개 세션 전부 스캔 → 채널 대량 생성 문제 +- 시작 시 기존 Discord 채널만 재연결, 새 채널 생성 안 함 + +### content hash dedup +- watcher에 MD5 해시 비교 추가 → 내용 변경 없으면 이벤트 무시 +- `.metadata.json` 감시 제거 → primary artifacts만 감시 ## 미완료 -- Discord 대화 내용 중계 (conversation은 binary protobuf로 직접 파싱 불가) -- Phase 2 양방향 입력 릴레이 -- 서버 배포 (현재 로컬 실행) +- Extension의 `simulateApproval/Rejection`이 Antigravity 대화상자와 실제 연결되는지 테스트 필요