Releases: Ataraxy-Labs/sem
v0.5.0
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
v0.4.0
Bump version to 0.4.0 Breaking changes since 0.3.23: - DiffResult adds reordered_count and orphan_count fields - ChangeType enum adds Reordered variant
v0.3.24
What's new
sem entitiesnow works on directories - scan an entire directory or repo withsem entities src/or justsem entities. Groups output by file. MCP tool updated to match. (Thanks @MattCozendey)--entity-idflag onsem contextandsem impact- pipe entityIds directly fromsem diff --format jsonoutput (Thanks @ende124)--format {terminal,json}unified across all commands - consistent formatting on context, impact, graph, blame, log, entities, verify.--jsonstill works as shorthand (Thanks @ende124)- Incremental graph rebuild - reuses pre-parsed trees, compares entity content_hash to skip unchanged entities
- Scope-resolve refactor - unified language config table, support for cpp, csharp, java, ruby scope resolution
--formaton diff uses OutputFormat enum directly (Thanks @Benjas333)- tree-sitter-scala bumped from 0.25 to 0.26 (Thanks @sideeffffect)
v0.3.23
What's New
- Cross-file entity tracking for
sem log: When an entity moves between files (refactored, renamed, or extracted),sem lognow follows it across files automatically. Uses name matching first, then structural hash fallback for renames. - New
MovedandReappearedchange types in log output - Log output now shows file path changes (e.g.
(was: old_file.ts))
Full Changelog: v0.3.22...v0.3.23
v0.3.22
Bump to v0.3.22
v0.3.21
Bump version to 0.3.21 - Fix parent/child diff deduplication (#81) - Fix --patch mode for unstaged working tree diffs
v0.3.20
Bump to v0.3.20: add Scala support, agent safe.directory handling Thanks @sideeffffect for Scala support and @MattCozendey for the safe.directory fix
v0.3.19
Bump to v0.3.19: fix missing verify-checksum.mjs in npm package
v0.3.18
Bump to v0.3.18 First release with npm wrapper package (@ataraxy-labs/sem) and SHA256 checksum verification for binary downloads.
v0.3.17
Bump to v0.3.17, add sem diff --patch mode Reads unified diff from stdin (e.g. git diff HEAD~3..HEAD | sem diff --patch) and produces entity-level output. Parses diff headers + blob SHAs, fetches full file contents via git show for entity extraction. For diff-so-fancy integration where piped diffs need correct sem info.