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_impact和sem_context等工具進行確定性的代碼導航。 - Broad Language Support:通過 tree-sitter 支持 32 種語言,包括 TypeScript, Python, Rust, Go, 和 Java。
- Git Integration:可以通過
sem setup配置為預設的git diff輸出。 - Cloud Acceleration:針對大型 monorepos,提供可選的雲端支持的圖數據,以避免在本地重建依賴關係圖。",
相關
- Dispatch
- 專案
- 專案
- Dispatch
- 專案