Ataraxy-Labs/sem

Semantic version control => entity-level diffs, blame, and impact analysis on top of git. 28 languages via tree-sitter. Built for coding agents.

What it solves

sem 是一款語義版本控制工具,它將基於行的差異對比(diffs)替換為實體層級的變更。與其查看哪些代碼行變更了,它會識別特定函數、方法和類別的變更,並過濾掉空格或格式化等外觀上的變更,從而專注於實際的邏輯修改。

How it works

它使用 tree-sitter 來解析 32 種程式語言和結構化數據格式。它會提取實體(函數、類別等)並通過一個三階段過程來匹配不同版本之間的實體:精確 ID 匹配、結構化哈希(用於檢測無論空格如何變化的重新命名/移動)以及模糊相似度。

Who it’s for

  • Developers:想要在代碼審查或 Git 歷史記錄審查時,更清晰地理解代碼庫中發生了什麼變更。
  • AI Coding Agents:需要精確、節省 token 的上下文(例如,識別依賴關係或特定函數的源代碼)而無需閱讀整個文件。
  • CI/CD Pipelines:想要自動化影響分析或生成實體層級的 PR 摘要。

Highlights

  • Entity-Level Diffing:識別究竟是哪些函數或類別被修改、重新命名或移動了。
  • Impact Analysis:提供跨文件依賴圖,顯示如果特定實體被變更,會導致什麼破壞。
  • MCP Server:實現了 Model Context Protocol,允許 AI 代理使用 sem_impactsem_context 等工具進行確定性的代碼導航。
  • Broad Language Support:通過 tree-sitter 支持 32 種語言,包括 TypeScript, Python, Rust, Go, 和 Java。
  • Git Integration:可以通過 sem setup 配置為預設的 git diff 輸出。
  • Cloud Acceleration:針對大型 monorepos,提供可選的雲端支持的圖數據,以避免在本地重建依賴關係圖。",

相關

  • Dispatch
  • 專案
  • 專案
  • Dispatch
  • 專案