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:提供跨文件依赖图,以显示如果特定实体被变更,会造成什么破坏。
- CI/CD Pipelines:想要自动化影响分析或生成实体层级的 PR 摘要。
- MCP Server:实现了 Model Context Protocol,允许 AI 代理使用
sem_impactandsem_context等工具进行确定性的代码导航。 - Broad Language Support:通过 tree-sitter 支持 $ ext{32}$ 种语言,包括 TypeScript, Python, Rust, Go, 和 Java。
- Git Integration:可以通过
sem setup配置为默认的git diff輸出 - Cloud Acceleration version: 针对大型 monorepos,提供可选的云端支持的图数据,以避免在本地重建依赖关系图。
相关
- Dispatch
- 项目
- 项目
- Dispatch
- 项目