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_impact and sem_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
  • 项目