@ataraxy-labs/sem 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +25 -10
- package/package.json +2 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to sem are documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.11.0] - 2026-06-14
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Progress spinner for slow graph builds. `sem graph` and `sem context` now show a uv-style spinner and a summary line (e.g. `135,298 entities, 7,743 files in 6.6s`) while building the entity graph. Strictly stderr and TTY-only, so pipes, JSON, and agent/MCP sessions are unaffected. Disable with SEM_NO_PROGRESS=1.
|
|
12
|
+
|
|
13
|
+
- SQL support (`.sql`, `.psql`, `.pgsql`, `.ddl`) via the official DerekStride/tree-sitter-sql grammar. Extracts tables, views, materialized views, functions, indexes, types, schemas, triggers, sequences, and databases. Thanks @robahtou for the request (#339).
|
|
14
|
+
- Start tracking project changes in `CHANGELOG.md`.
|
|
15
|
+
- Add a pull request check that asks contributors to include a changelog entry.
|
|
16
|
+
- `sem entities` accepts multiple file or directory path arguments.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Sparse checkouts now work. libgit2 cannot read a sparse index (`unsupported mandatory extension: 'sdir'`) and its workdir diff reported sparse-excluded files as deleted; sem now routes working and staged diffs through the git CLI when a sparse checkout is detected. Thanks for the report (#330).
|
|
21
|
+
|
|
22
|
+
- README now documents adding the MCP server to coding agents (`claude mcp add sem -- sem mcp`) and explains why `sem mcp` exists. The old section pointed at a separate `sem-mcp` binary; `sem mcp` ships in the main binary.
|
|
23
|
+
|
|
24
|
+
- `sem stats` now counts every diff, including runs that find no changes (previously those returned early and were never recorded, so `diffs performed` undercounted).
|
|
25
|
+
|
|
26
|
+
- Telemetry no longer records development builds (debug builds, or binaries run from a Cargo `target/` directory), so contributor and CI-of-our-own usage stays out of the numbers.
|
|
27
|
+
|
|
28
|
+
- Cloud sync only auto-registers repos that GitHub confirms are public. Private repos run locally unless you opt in with `SEM_SYNC_PRIVATE=1`.
|
|
29
|
+
- `install.sh` verifies the release archive against `checksums.txt` before installing.
|
|
30
|
+
- Switched the Perl grammar to the official `ts-parser-perl` crate (was the unattributed `tree-sitter-perl-next` copy). Properly attributed, correctly MIT-licensed, and includes upstream fixes: an infinite-loop hang on malformed input, better error recovery, and faster parsing. Thanks @rabbiveesh for the report (#355).
|
|
31
|
+
|
|
32
|
+
### Removed
|
|
33
|
+
|
|
34
|
+
- `sem verify` (function call-arity checker). It saw negligible use and overlapped with compilers/LSPs; removing it keeps the surface area focused.
|
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<a href="https://ataraxy-labs.com/blogs/code-is-not-text">Why sem?</a> ·
|
|
20
20
|
<a href="#install">Install</a> ·
|
|
21
21
|
<a href="#commands">Commands</a> ·
|
|
22
|
-
<a href="#mcp
|
|
22
|
+
<a href="#use-with-ai-agents-mcp">Agents (MCP)</a> ·
|
|
23
23
|
<a href="https://github.com/Ataraxy-Labs/sem/releases/latest">Releases</a>
|
|
24
24
|
</p>
|
|
25
25
|
|
|
@@ -64,6 +64,12 @@ bun add -d @ataraxy-labs/sem
|
|
|
64
64
|
bun pm trust @ataraxy-labs/sem
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
Once installed, update to the latest release any time:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
sem update
|
|
71
|
+
```
|
|
72
|
+
|
|
67
73
|
Or build from source (requires Rust):
|
|
68
74
|
|
|
69
75
|
```bash
|
|
@@ -289,6 +295,7 @@ sem unsetup
|
|
|
289
295
|
| Clojure | `.clj` `.cljs` `.cljc` | vars, functions, macros, multimethods, protocols, records, types |
|
|
290
296
|
| D | `.d` `.di` | modules, functions, classes, structs, interfaces, unions, enums, templates, aliases, unittests |
|
|
291
297
|
| Zig | `.zig` | functions, tests, variables |
|
|
298
|
+
| SQL | `.sql` `.psql` `.pgsql` `.ddl` | tables, views, functions, indexes, types, schemas, triggers, sequences |
|
|
292
299
|
|
|
293
300
|
Plus structured data formats:
|
|
294
301
|
|
|
@@ -327,26 +334,34 @@ Three-phase entity matching:
|
|
|
327
334
|
|
|
328
335
|
This means sem detects renames and moves, not just additions and deletions. Structural hashing also distinguishes cosmetic changes (whitespace, formatting) from real logic changes.
|
|
329
336
|
|
|
330
|
-
## MCP
|
|
337
|
+
## Use with AI agents (MCP)
|
|
338
|
+
|
|
339
|
+
`sem mcp` starts a [Model Context Protocol](https://modelcontextprotocol.io) server over stdin/stdout. It's not a command you run and read yourself: it's a server your coding agent launches in the background so it can ask sem questions while it works. That's the reason `mcp` lives alongside the normal commands. The agent gets 6 tools, all entity-level: `sem_impact`, `sem_context`, `sem_diff`, `sem_entities`, `sem_blame`, `sem_log`.
|
|
340
|
+
|
|
341
|
+
Why an agent wants these: instead of reading whole files and burning tokens, it can ask "what breaks if I change `submitOrder`" (`sem_impact`) or "give me just the context to refactor this function" (`sem_context`) and get a precise answer from the dependency graph.
|
|
342
|
+
|
|
343
|
+
Add it once, then talk to your agent normally. It calls the tools on its own.
|
|
331
344
|
|
|
332
|
-
|
|
345
|
+
**Claude Code:**
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
claude mcp add sem -- sem mcp
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Cursor, Claude Desktop, or any client with an `mcpServers` config:**
|
|
333
352
|
|
|
334
353
|
```json
|
|
335
354
|
{
|
|
336
355
|
"mcpServers": {
|
|
337
356
|
"sem": {
|
|
338
|
-
"command": "sem
|
|
357
|
+
"command": "sem",
|
|
358
|
+
"args": ["mcp"]
|
|
339
359
|
}
|
|
340
360
|
}
|
|
341
361
|
}
|
|
342
362
|
```
|
|
343
363
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
```bash
|
|
347
|
-
cd sem/crates
|
|
348
|
-
cargo install --path sem-mcp
|
|
349
|
-
```
|
|
364
|
+
If `sem` isn't on the agent's PATH, use the absolute path to the binary. No separate install is needed: `sem mcp` ships in the same binary as every other command.
|
|
350
365
|
|
|
351
366
|
## JSON output
|
|
352
367
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ataraxy-labs/sem",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "npm wrapper for the sem CLI. Downloads the matching release binary and exposes the sem command in node_modules/.bin.",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"scripts/verify-checksum.mjs",
|
|
15
15
|
"scripts/sync-package-version.mjs",
|
|
16
16
|
"README.md",
|
|
17
|
+
"CHANGELOG.md",
|
|
17
18
|
"LICENSE-APACHE",
|
|
18
19
|
"LICENSE-MIT"
|
|
19
20
|
],
|