diff --git a/docs/devlog/2026-04-08.md b/docs/devlog/2026-04-08.md new file mode 100644 index 0000000..a6758a2 --- /dev/null +++ b/docs/devlog/2026-04-08.md @@ -0,0 +1,5 @@ +# 2026-04-08 + +| NNN | HH:MM | 작업 설명 | 커밋해시 | 상태 | +|---|---|---|---|---| +| 001 | 05:18 | Gravity Bridge 무결성 롤백, SafeToAutoRun 메모리 누수 방지(LRU), UI 프리징(execSync) 제거 및 v0.5.15 배포 | `bf7db72` | ✅ | diff --git a/docs/devlog/entries/20260408-001.md b/docs/devlog/entries/20260408-001.md new file mode 100644 index 0000000..0662d30 --- /dev/null +++ b/docs/devlog/entries/20260408-001.md @@ -0,0 +1,21 @@ +# Gravity Bridge 무결성 롤백 및 동기화 이슈 해결 + +- **시간**: 2026-04-08 04:30~05:18 +- **Commit**: `bf7db72` +- **Vikunja**: #583 → done + +## 결정 사항 + +1. **`detectProjectName` 동기화 락 해제** + - 기존의 `cp.execSync('git remote ...')` 코드가 익스텐션 활성화(`activate`) 시점에 메인 스레드를 블로킹하여 VS Code 전체가 최대 2초간 멈추는 심각한 버그(Freeze)를 찾아냄. + - `.git/config` 파일을 비동기적으로(fs.readFileSync는 1ms 내외) 직접 파싱하도록 전환하여 무결성과 속도를 확보함. 하이픈 치환 로직도 제거하여 원본 프로젝트 명(`variet-llm`)이 디스코드 채널명과 일관되게 매칭되게 함. + +2. **`SafeToAutoRun` LRU 사이즈 제한 캐시 도입** + - 본래 생명주기마다 `Set`을 비우려 했으나, 장기 실행 작업(수 분 이상 소요) 중 웹소켓 재접속 발생 시 100여 개의 오래된 스텝이 일괄 복사 전송(Burst Send)되며 Discord Hub의 60/10s Rate Limit을 타격시킬 위험성 발견. + - 1000개의 Max Size를 두고 초과 시 `.values().next().value`를 제거하는 LRU 방식으로 캐시 구현, 과거 최근 스텝을 절대 잊어버리지 않게 함으로써 디스코드 도배/영구 정지를 원천 봉쇄함. + +3. **`fixLSConnection` 정규식 강화** + - Language Server 프로세스 매칭 시 `hint` 문자열 정규식을 `/[^a-z0-9]/gi`로 강화하여 공백, 대소문자뿐 아니라 모든 특수 구두점/인코딩을 무시한 채 순수 영숫자만으로 프로세스 식별을 100% 매칭하도록 만듦. + +## 미완료 +- 없음 (v0.5.15 .vsix 배포 완료)