Releases: wjddusrb03/commitmind
Releases · wjddusrb03/commitmind
CommitMind v0.1.0 - Semantic Git Commit Search
CommitMind v0.1.0
Git 커밋 히스토리를 의미로 검색하세요! TurboQuant 벡터 압축(ICLR 2026) 기반의 시맨틱 커밋 검색 CLI 도구입니다.
What is CommitMind?
기존 git log --grep이나 GitHub 검색은 키워드 매칭만 가능합니다.
CommitMind는 커밋 메시지의 **의미(meaning)**를 이해하여 관련 커밋을 찾아줍니다.
# 기존 방식: 정확한 단어가 없으면 못 찾음
git log --grep="memory leak" # "Fix kfree_skb double free" → 못 찾음
# CommitMind: 의미로 검색
commitmind search "memory leak"
# >> #1 [0.94] a3f2c1d Fix kfree_skb double free in netfilter
# >> #2 [0.91] b7e4a2f Plug use-after-free in device reset pathInstallation
pip install commitmind또는 소스에서:
git clone https://github.com/wjddusrb03/commitmind.git
cd commitmind
pip install -e ".[dev]"Quick Start
# 아무 Git 저장소에서 바로 검색 (자동 인덱싱!)
cd your-project
commitmind search "authentication bug fix"
# 또는 수동 인덱싱 후 검색
commitmind index
commitmind search "performance optimization"
commitmind statsCLI Commands
| Command | Description |
|---|---|
commitmind index |
커밋을 TurboQuant 압축으로 인덱싱 |
commitmind search "query" |
커밋 의미 검색 (인덱스 없으면 자동 생성) |
commitmind stats |
인덱스 통계 표시 |
commitmind update |
새 커밋만 추가 인덱싱 (증분) |
Options
commitmind index --max-commits 1000 # 최근 1000개만
commitmind index --branch main # 특정 브랜치
commitmind index --bits 2 # 2비트 양자화 (더 높은 압축)
commitmind search "query" -k 10 # 상위 10개 결과
commitmind search "query" -p /path # 특정 저장소 검색Real-World Test: Baritone Project (3,055 commits)
실제 마인크래프트 패스파인딩 프로젝트에서 테스트한 결과:
Search: "pathfinding navigation movement"
#1 [0.42] 441dceb canSprintFromDescendInto (이동 최적화)
#2 [0.41] 76c4ca9 fix path reliability after lateral movement
#3 [0.40] 64eabf7 traverse place against below
#4 [0.40] 732d806 allow cutting onto next path one movement earlier
#5 [0.37] a690e1e prepend feet to the path if start is adjacent
→ "pathfinding" 단어가 없는 커밋도 의미적으로 찾아냄!
Search: "performance optimization speed"
#1 [0.48] a98677d crucial performance optimization
#2 [0.48] 5382d26 crucial performance optimization
#3 [0.47] ee6796d crucial performance optimization (pt. 2)
#4 [0.46] a732e76 crucial performance optimization
#5 [0.46] 0c1fec5 crucial performance optimization
→ 성능 관련 커밋 5개 완벽 적중!
Comparison: CommitMind vs Existing Tools
| Feature | git log --grep |
GitHub Search | CommitMind |
|---|---|---|---|
| Semantic search | ❌ | ❌ | ✅ |
| Synonym recognition | ❌ | ❌ | ✅ |
| Similarity score | ❌ | ❌ | ✅ (0.0~1.0) |
| Offline | ✅ | ❌ | ✅ |
| Private repos | ✅ | ✅ | |
| Speed (exact match) | ⚡ Fastest | Fast | Slower |
| Fuzzy/vague queries | ❌ | ❌ | ✅ |
| Cross-language search | ❌ | ❌ | ✅ |
| No install needed | ✅ | ✅ | ❌ |
Best for:
git log --grep→ 정확한 키워드를 알 때- GitHub Search → 코드+이슈+PR 통합 검색
- CommitMind → "이런 느낌의 커밋 찾아줘" (모호한 검색)
How It Works
Git Commits → Sentence Embeddings → TurboQuant Compression → Semantic Search
(all-MiniLM-L6-v2) (2x memory savings) (asymmetric scoring)
- Extract: Git 히스토리에서 커밋 메시지 + 파일 변경 메타데이터 추출
- Embed: 각 커밋을 384차원 벡터로 변환 (로컬 모델, API 불필요)
- Compress: TurboQuant (Google, ICLR 2026)으로 벡터 압축
- Search: 비대칭 내적 추정으로 압축 해제 없이 검색
Memory Efficiency
| Commits | Uncompressed | CommitMind | Savings |
|---|---|---|---|
| 1,000 | 1.5 MB | 0.2 MB | 87% |
| 10,000 | 15 MB | 2.0 MB | 87% |
| 100,000 | 150 MB | 20 MB | 87% |
| 1,000,000 | 1.5 GB | 200 MB | 87% |
Test Results
331 tests, all passing across 15 semantic topics:
Auth, Database, Frontend, Performance, Network, Testing, Documentation, Memory, Logging, Config, DevOps, Error Handling, Refactoring, i18n, Caching
Requirements
- Python 3.9+
- Git repository
- CPU only (no GPU needed)
- ~500 MB disk for embedding model (first-time download)
Feedback & Issues
이 프로젝트는 활발히 개발 중입니다! 다음과 같은 피드백을 환영합니다:
- 🐛 Bug Report: 사용 중 문제가 발생하면 Issue를 열어주세요
- 💡 Feature Request: 새로운 기능 아이디어가 있으면 알려주세요
- 📊 Performance: 대규모 프로젝트에서의 테스트 결과를 공유해주세요
- 🌍 Multilingual: 다양한 언어의 커밋 메시지 검색 경험을 알려주세요
- ⭐ Star: 유용하다면 Star를 눌러주세요!
문제가 있거나 개선 사항이 있다면 언제든지 Issue나 PR을 보내주세요.
한국어/영어 모두 환영합니다!
Related Projects
- langchain-turboquant - TurboQuant compression for LangChain VectorStore
- TurboQuant Paper - Google Research, ICLR 2026
License
MIT License