Skip to content

Releases: Ataraxy-Labs/sem

v0.5.0

01 May 02:46

Choose a tag to compare

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/.module extension support
  • Depth-limited impact analysis with fallback warning
  • #[non_exhaustive] on SemanticChange for safer downstream use

Contributors

@nminev, @Celsiusss, @SebastianJL, @scottchiefbaker

v0.4.0

27 Apr 08:07

Choose a tag to compare

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

25 Apr 17:55

Choose a tag to compare

What's new

  • sem entities now works on directories - scan an entire directory or repo with sem entities src/ or just sem entities. Groups output by file. MCP tool updated to match. (Thanks @MattCozendey)
  • --entity-id flag on sem context and sem impact - pipe entityIds directly from sem diff --format json output (Thanks @ende124)
  • --format {terminal,json} unified across all commands - consistent formatting on context, impact, graph, blame, log, entities, verify. --json still 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
  • --format on diff uses OutputFormat enum directly (Thanks @Benjas333)
  • tree-sitter-scala bumped from 0.25 to 0.26 (Thanks @sideeffffect)

v0.3.23

20 Apr 07:18

Choose a tag to compare

What's New

  • Cross-file entity tracking for sem log: When an entity moves between files (refactored, renamed, or extracted), sem log now follows it across files automatically. Uses name matching first, then structural hash fallback for renames.
  • New Moved and Reappeared change 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

16 Apr 19:54

Choose a tag to compare

Bump to v0.3.22

v0.3.21

15 Apr 16:18

Choose a tag to compare

Bump version to 0.3.21

- Fix parent/child diff deduplication (#81)
- Fix --patch mode for unstaged working tree diffs

v0.3.20

14 Apr 22:50

Choose a tag to compare

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

13 Apr 01:09

Choose a tag to compare

Bump to v0.3.19: fix missing verify-checksum.mjs in npm package

v0.3.18

13 Apr 00:31

Choose a tag to compare

Bump to v0.3.18

First release with npm wrapper package (@ataraxy-labs/sem)
and SHA256 checksum verification for binary downloads.

v0.3.17

12 Apr 17:10

Choose a tag to compare

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.