This release adds 4 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+4 more
Summary
AI summaryZero-config language detection now identifies 19 languages from file content without extensions.
Full changelog
What's New
Zero-config language detection for extensionless files
sem now detects 19 languages from file content alone, no extension needed. It scans the first ~20 lines for high-confidence markers (imports, declarations, opening tags). Shebang lines and vim modelines also work.
.semrc custom extension mappings
Drop a .semrc in your project root to map any extension to a supported language:
.xyz = cpp
.j = json
.mypy = python
.gitattributes support
sem reads your existing diff= and linguist-language= patterns automatically. No extra config needed.
Intra-file move detection
When a method moves between classes or impl blocks within the same file, sem now reports it as a move instead of a delete + add.
Parent name context in output
Entity changes now show parent context: Calculator::add instead of just add. Thanks @nminev (#97)
Precise parent suppression
When a container's own declaration changes alongside its children, both are now reported correctly. Thanks @nminev (#98)
Path-based sem entities
sem entities now accepts file/directory paths, skipping invalid files gracefully. Thanks @Celsiusss (#102)
Other
- PHP
.inc/.phtml/.moduleextension support - Depth-limited impact analysis with fallback warning
#[non_exhaustive]onSemanticChangefor safer downstream use
Contributors
@nminev, @Celsiusss, @SebastianJL, @scottchiefbaker
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About sem
Semantic version control => entity-level diffs, blame, and impact analysis on top of git. 26 languages via tree-sitter. Built for coding agents.
Related context
Related tools
Beta — feedback welcome: [email protected]