@ataraxy-labs/sem 0.13.0 → 0.14.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.
- package/CHANGELOG.md +44 -0
- package/README.md +3 -3
- package/package.json +1 -1
- package/scripts/package-meta.mjs +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,50 @@ All notable changes to sem are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.14.1] - 2026-06-23
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Release pipeline: the Intel macOS cross-build failed on `openssl-sys` (no target-arch OpenSSL when cross-compiling on Apple Silicon). It now builds OpenSSL from source via `--features vendored-openssl`, the same approach the Linux arm64 cross-build uses. 0.14.0's binaries never published because of this; 0.14.1 is the first release to ship binaries for every platform, including Intel macOS (#374).
|
|
12
|
+
|
|
13
|
+
## [0.14.0] - 2026-06-23
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- `sem orient <query>` finds the entities most relevant to a query, structural code search for when you're dropped into an unfamiliar codebase and don't know the symbol name yet (e.g. `sem orient "where is the retry logic"`). Two-pass ranking: lexical score over entity name (subtoken + prefix/stem + substring), file path, and signature line, then a graph-centrality re-rank so a central, widely-used entity outranks a trivially-named helper. Results show the entity, its `file:line`, signature, and dependent count. `--json` and `--limit` supported. This is the structural counterpart to grep: grep finds text, orient finds the entity and how connected it is.
|
|
18
|
+
- The `sem_entities` MCP tool accepts a `query` parameter for the same intent search, so agents can find code by what it does (not just by name) without falling back to grep. The ranking is shared with the CLI (`sem_core::parser::orient`).
|
|
19
|
+
- `sem orient` down-weights entities in test files so implementation outranks an equivalently-named test. Test functions often match a query strongly by name, but the implementation is almost always what you want; tests stay findable, just below the real code.
|
|
20
|
+
- `sem entities` accepts `--only <kind>` and `--except <kind>` (both repeatable) to filter the listing by entity kind, e.g. `sem entities --only function --only struct` or `sem entities --except import`. The two flags are mutually exclusive. Because entity kinds are language-dependent, an unknown kind reports the kinds actually found in the scanned files rather than guessing a static list. Thanks @aleclarson for the request (#378).
|
|
21
|
+
- `SEM_WIDTH` sets the terminal-diff box width. sem's per-file box was a fixed 55 columns with no TTY attached, so it didn't match the surrounding pane when used as a pager (e.g. `lazygit`). Set `SEM_WIDTH=<columns>` to control it. Thanks @franky47 for the request (#380).
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- The Intel macOS binary now builds reliably. The release built `x86_64-apple-darwin` on a native Intel `macos-13` runner, which GitHub is retiring, so the job could queue indefinitely and stall the whole release (0.13.1's binaries never published for this reason). It now cross-compiles on Apple Silicon `macos-14`, where runners are plentiful. 0.14.0 is the first release to ship Intel macOS binaries.
|
|
26
|
+
|
|
27
|
+
## [0.13.1] - 2026-06-23
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- `sem impact` can answer direct dependency queries from a fresh SQL topology cache without rebuilding the entity graph.
|
|
32
|
+
- `sem entities` reports phase timings and listing counters when `SEM_TIMINGS` is enabled.
|
|
33
|
+
- Optional OSC8 terminal hyperlinks on entity names in `sem diff`, so a supporting terminal (kitty, WezTerm, iTerm2, Ghostty, ...) renders them clickable and can open the definition at `file:line`. Off by default; enable with `SEM_HYPERLINK` set to an editor preset (`vscode`, `cursor`, `windsurf`, `zed`, `idea`, `file`) or a raw URI template using `{file}` and `{line}` (e.g. `SEM_HYPERLINK="vscode://file/{file}:{line}"`). Strictly TTY-only, so pipes, JSON output, and MCP/agent sessions never see escape codes. Force off with `SEM_NO_HYPERLINKS=1`. Thanks @olejorgenb for the request (#381).
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- The `sem mcp` server now sends usage guidance to the agent instead of a bare tool list. The instructions tell the agent to prefer `sem_impact`/`sem_context`/`sem_entities` over grep/find for structural questions (what calls X, understand X, where is X) and to keep grep for text search and non-code files. Availability alone wasn't changing agent behavior; this biases agents toward the entity graph the moment the server connects, with no extra setup.
|
|
38
|
+
- `sem impact --deps` can reuse fresh caches when unrelated files change by validating the cached source set, hashes, and import metadata before falling back to a graph rebuild.
|
|
39
|
+
- `sem impact --deps` narrows cache freshness checks to the queried entity, direct dependencies, and relevant JavaScript/TypeScript imports when the query scope is explicit.
|
|
40
|
+
- Source scans skip default-excluded high-volume paths such as generated source directories, fixture/vendor/benchmark trees, generated file suffixes, CSS module declarations, and asset declarations; pass `--no-default-excludes` to include them.
|
|
41
|
+
- `sem entities` accepts `--file-exts` for large directory scans and avoids duplicate directory-listing post-processing.
|
|
42
|
+
- `sem entities` can list entities from a fresh SQLite topology cache instead of reparsing matching directory scans.
|
|
43
|
+
- `sem entities --json` streams rows to stdout instead of materializing an intermediate JSON value array.
|
|
44
|
+
- `sem entities` uses listing-only extraction so local listings do not retain source text or entity hashes.
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Intel macOS (`x86_64-apple-darwin`) is now built and published. The release matrix only produced Apple Silicon (`arm64`) macOS binaries, so Intel Mac users got a 404 from `install.sh` and "Unsupported platform darwin:x64" from npm. Added the `x86_64-apple-darwin` target to the release build and the `darwin:x64` mapping to the npm wrapper. Thanks @stark-bit for the report (#374).
|
|
49
|
+
- TOML array-of-tables entries no longer collapse to a single entity in `sem diff`. Repeated `[[array]]` headers all reduced to the same id (`...::property::array`), so appending an entry showed up as a modification of the previous one instead of an addition. Each `[[key]]` entry now gets an index-based identity (`key/0`, `key/1`, ...) and is hashed independently, mirroring the JSON array-index handling. This also stops a `[key]` table and a `[[key]]` array-of-tables with the same name from colliding. Thanks @Arpafaucon for the report and analysis (#362).
|
|
50
|
+
|
|
7
51
|
## [0.13.0] - 2026-06-16
|
|
8
52
|
|
|
9
53
|
### Fixed
|
package/README.md
CHANGED
|
@@ -173,7 +173,7 @@ sem impact authenticateUser --json
|
|
|
173
173
|
# Disambiguate by file
|
|
174
174
|
sem impact authenticateUser --file src/auth.ts
|
|
175
175
|
|
|
176
|
-
# Include generated
|
|
176
|
+
# Include default-excluded paths such as generated, fixture, vendor, benchmark, and build trees
|
|
177
177
|
sem impact authenticateUser --no-default-excludes
|
|
178
178
|
```
|
|
179
179
|
|
|
@@ -220,7 +220,7 @@ sem entities src/auth.ts
|
|
|
220
220
|
sem entities --json
|
|
221
221
|
sem entities src/auth.ts --json
|
|
222
222
|
|
|
223
|
-
# Include generated
|
|
223
|
+
# Include default-excluded paths such as generated, fixture, vendor, benchmark, and build trees
|
|
224
224
|
sem entities --no-default-excludes
|
|
225
225
|
```
|
|
226
226
|
|
|
@@ -238,7 +238,7 @@ sem context authenticateUser --budget 4000
|
|
|
238
238
|
# JSON output
|
|
239
239
|
sem context authenticateUser --json
|
|
240
240
|
|
|
241
|
-
# Include generated
|
|
241
|
+
# Include default-excluded paths such as generated, fixture, vendor, benchmark, and build trees
|
|
242
242
|
sem context authenticateUser --no-default-excludes
|
|
243
243
|
```
|
|
244
244
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ataraxy-labs/sem",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.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",
|
package/scripts/package-meta.mjs
CHANGED
|
@@ -34,11 +34,13 @@ export function resolveReleaseArtifact({
|
|
|
34
34
|
return 'sem-linux-arm64.tar.gz';
|
|
35
35
|
case 'darwin:arm64':
|
|
36
36
|
return 'sem-darwin-arm64.tar.gz';
|
|
37
|
+
case 'darwin:x64':
|
|
38
|
+
return 'sem-darwin-x86_64.tar.gz';
|
|
37
39
|
case 'win32:x64':
|
|
38
40
|
return 'sem-windows-x86_64.tar.gz';
|
|
39
41
|
default:
|
|
40
42
|
throw new Error(
|
|
41
|
-
`Unsupported platform ${key}. Supported targets: linux/x64, linux/arm64, darwin/arm64, win32/x64.`,
|
|
43
|
+
`Unsupported platform ${key}. Supported targets: linux/x64, linux/arm64, darwin/x64, darwin/arm64, win32/x64.`,
|
|
42
44
|
);
|
|
43
45
|
}
|
|
44
46
|
}
|