@ataraxy-labs/sem 0.10.1 → 0.11.1

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +19 -10
  3. package/package.json +2 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,40 @@
1
+ # Changelog
2
+
3
+ All notable changes to sem are documented in this file.
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.11.1] - 2026-06-14
8
+
9
+ ### Added
10
+
11
+ - `sem impact` now shows the uv-style progress spinner during the cold graph build (it's the most-used graph command). Same stderr/TTY gating as `graph` and `context`.
12
+
13
+ ## [0.11.0] - 2026-06-14
14
+
15
+ ### Added
16
+
17
+ - 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.
18
+
19
+ - 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).
20
+ - Start tracking project changes in `CHANGELOG.md`.
21
+ - Add a pull request check that asks contributors to include a changelog entry.
22
+ - `sem entities` accepts multiple file or directory path arguments.
23
+
24
+ ### Changed
25
+
26
+ - 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).
27
+
28
+ - 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.
29
+
30
+ - `sem stats` now counts every diff, including runs that find no changes (previously those returned early and were never recorded, so `diffs performed` undercounted).
31
+
32
+ - 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.
33
+
34
+ - Cloud sync only auto-registers repos that GitHub confirms are public. Private repos run locally unless you opt in with `SEM_SYNC_PRIVATE=1`.
35
+ - `install.sh` verifies the release archive against `checksums.txt` before installing.
36
+ - 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).
37
+
38
+ ### Removed
39
+
40
+ - `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-server">MCP Server</a> ·
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
 
@@ -295,6 +295,7 @@ sem unsetup
295
295
  | Clojure | `.clj` `.cljs` `.cljc` | vars, functions, macros, multimethods, protocols, records, types |
296
296
  | D | `.d` `.di` | modules, functions, classes, structs, interfaces, unions, enums, templates, aliases, unittests |
297
297
  | Zig | `.zig` | functions, tests, variables |
298
+ | SQL | `.sql` `.psql` `.pgsql` `.ddl` | tables, views, functions, indexes, types, schemas, triggers, sequences |
298
299
 
299
300
  Plus structured data formats:
300
301
 
@@ -333,26 +334,34 @@ Three-phase entity matching:
333
334
 
334
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.
335
336
 
336
- ## MCP Server
337
+ ## Use with AI agents (MCP)
337
338
 
338
- sem includes an MCP server with 6 tools for AI agents: `sem_entities`, `sem_diff`, `sem_blame`, `sem_impact`, `sem_log`, `sem_context`. These mirror the CLI commands exactly.
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.
344
+
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:**
339
352
 
340
353
  ```json
341
354
  {
342
355
  "mcpServers": {
343
356
  "sem": {
344
- "command": "sem-mcp"
357
+ "command": "sem",
358
+ "args": ["mcp"]
345
359
  }
346
360
  }
347
361
  }
348
362
  ```
349
363
 
350
- Install the MCP binary:
351
-
352
- ```bash
353
- cd sem/crates
354
- cargo install --path sem-mcp
355
- ```
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.
356
365
 
357
366
  ## JSON output
358
367
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ataraxy-labs/sem",
3
- "version": "0.10.1",
3
+ "version": "0.11.1",
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
  ],