Skip to content

Releases: wjddusrb03/commitmind

CommitMind v0.1.0 - Semantic Git Commit Search

28 Mar 04:36

Choose a tag to compare

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 path

Installation

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 stats

CLI 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 ⚠️ Upload needed
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)
  1. Extract: Git 히스토리에서 커밋 메시지 + 파일 변경 메타데이터 추출
  2. Embed: 각 커밋을 384차원 벡터로 변환 (로컬 모델, API 불필요)
  3. Compress: TurboQuant (Google, ICLR 2026)으로 벡터 압축
  4. 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


License

MIT License