# Reported issues for sem

Pod holds 18 of 20 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [sem](/mcp/sem).

## Most discussed

### Output configurable terminal hyperlinks (OSC8) to symbol defintions etc.

Most editors have a URI scheme which allow linking to a specific line number. This would make the tool output more pleasant to interact with.

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/381) · 2026-06-22 · closed · external user · 1 comment

### MCP `sem_impact` / `sem_context` / `sem_log` never resolve an entity on Windows (path-separator mismatch)

## Summary

On Windows, the MCP tools `sem_impact`, `sem_context`, and `sem_log` fail to resolve any entity, always returning `Entity '<name>' not found in '<file>' (existing candidates: <file>)` — including for an entity that `sem_entities` lists in that file and that the CLI resolves.

`resolve_file_path` (crates/sem-mcp/src/server.rs) returns the relative path with OS-native separators (`to_string_lossy()` on a `PathBuf` yields backslashes on Windows). Graph entities store `file_path` with fo

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/366) · 2026-06-16 · closed · outside contributor · 1 comment

### mcp error codes misuse internal error

## Summary

The `sem mcp` server returns JSON-RPC error code `-32603` ("Internal error") for user-recoverable mistakes — unknown entity name, path-not-found, missing file. Per JSON-RPC 2.0 §5.1, `-32603` indicates a server-side bug. User-input errors should be `-32602` ("Invalid params") or surfaced as MCP-style `result.isError = true` content blocks.

Today's behavior leads MCP clients (and the LLM agents driving them) to believe the server is broken when the user just typed a wrong name.

## S

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/182) · 2026-05-26 · closed · 1 comment

### CLI impact/context silently choose one entity when names are ambiguous

## Summary

`sem impact` and `sem context` silently pick the first matching entity when multiple entities have the same name. MCP `sem_log` already treats this as ambiguous and asks for a file path; the CLI should do the same.

## Reproduction

```sh
sem impact extract_entities --json | jq '.entity'
```

On `sem 0.6.0` / `0701e93`, this succeeds and chooses one `extract_entities` implementation even though there are many methods/functions with that name.

Code path:

- `crates/sem-cli/src/comman

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/121) · 2026-05-21 · closed · 1 comment

### MCP installation

Hey there, it looks like there's no way to directly install the mcp server.  It would be great to have an easy way to use it, either via a dedicated crate, or running `sem mcp` or similar, etc.

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/56) · 2026-04-06 · closed · external user · 1 comment

### Make incremental cache updates granular for import metadata and edges

**Severity:** High
**Component:** cache / incremental graph build
**Affected commands:** `sem impact`, `sem graph`, `sem context`, `sem verify`, MCP graph/impact tools
**Reproduced on:** source inspection plus generated large-repo fixtures

## Summary

The incremental cache path still does too much whole-graph work after a small edit. Recent PR work reduces several in-memory scans when choosing files/entities to revisit, but the cache layer still has coarse operations that are expensive on large

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/318) · 2026-06-04 · closed · 0 comments

### Add a topology-only cache load path for impact deps and dependents

**Severity:** Medium
**Component:** CLI impact / cache / MCP graph tools
**Affected commands:** `sem impact --deps`, `sem impact --dependents`, MCP impact calls in dependency/dependent modes
**Reproduced on:** source inspection plus warm-cache large-entity fixtures

## Summary

`sem impact --deps` and `sem impact --dependents` only need graph topology: entity IDs/names/types/files/line ranges and edges. Today the shared graph loader always returns `(EntityGraph, Vec<SemanticEntity>)`, and the ca

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/317) · 2026-06-04 · closed · 0 comments

### Add public graph-build phase timings and large generated fixtures

**Severity:** Medium
**Component:** benchmarks / observability / performance regression testing
**Affected commands:** `sem impact`, `sem graph`, `sem context`, `sem verify`, MCP graph/impact tools
**Reproduced on:** repeated performance investigations that required ad hoc timing

## Summary

Recent performance work has found several real graph-build bottlenecks, but the project still lacks a public, repeatable way to measure large-repo behavior by phase. That makes performance regressions hard 

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/316) · 2026-06-04 · closed · 0 comments

## Most recent

### Compact fallback reference indexes used by graph resolution

**Severity:** Medium
**Component:** parser / graph fallback resolution
**Affected commands:** cold or partial-cache `sem impact`, `sem graph`, `sem verify`, MCP graph/impact tools
**Reproduced on:** source inspection of the graph-scope consolidation branch plus generated fixtures

## Summary

The graph-scope consolidation work bounds fallback reference scanning to direct entity ranges and introduces per-file reference indexes. That is a correctness and asymptotic improvement over repeated full-c

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/314) · 2026-06-04 · closed · 0 comments

### Bag-of-words fallback invents call edges the scope resolver already declined

**Severity:** High
**Component:** graph / dependency-edge resolution (Phase-2 bag-of-words fallback)
**Affected commands:** `sem graph`, `sem impact`, `sem context`, `sem verify`
**Reproduced on:** `sem 0.7.0` (commit `54df10c`)

## Summary

After the precise scope resolver runs, a cruder Phase-2 "bag-of-words" pass tokenizes each entity's content and links any token that name-matches a symbol in the table. This pass re-resolves names the scope resolver had already (correctly) declined to link, 

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/248) · 2026-06-01 · closed · 0 comments

### mcp sem diff json does not mirror cli

## Summary

The README states MCP tools "mirror the CLI commands exactly." `sem_diff` does not — it returns a different JSON shape with snake_case fields (`base_ref`, `target_ref`, `files_analyzed`, `total_changes`, snake_case change fields) instead of the CLI's `{summary, changes[]}` with camelCase fields (`entityId`, `entityType`, `filePath`, `beforeContent`, `afterContent`, `structuralChange`).

This is a specific instance of the broader JSON-schema-fragmentation issue, but worth its own tick

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/206) · 2026-05-26 · closed · 0 comments

### mcp tools accept unknown fields

## Summary

Most MCP tools silently accept unknown argument fields, falling back to defaults instead of rejecting the request. A typo like `tokenBudget` (camelCase) instead of `token_budget` (snake_case, the actual schema) is accepted, and the agent gets the default budget of 8000 with no signal that its requested budget was discarded.

`sem_entities` appears to reject unknown fields correctly. The behavior is inconsistent across tools.

## Severity

P2 — silent data loss for agent typos. The MC

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/202) · 2026-05-26 · closed · 0 comments

### mcp file path ignored for disambiguation

## Summary

The MCP `sem_context` and `sem_impact` tools accept a `file_path` argument intended to disambiguate same-named entities across files, but the underlying entity lookup falls back to "any entity with this name" when no `(name, file_path)` match is found. The caller-supplied `file_path` is echoed in the response but not actually enforced — so the wrong entity (in a wrong file) can be returned silently.

## Severity

P1 — silent wrong-entity selection in a documented MCP API. Agents that

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/198) · 2026-05-26 · closed · 0 comments

### mcp instructions text references wrong tool names

## Summary

The MCP `initialize` response's `instructions` field tells LLM clients there are six tools called `entities, diff, blame, impact, log, context`. The actual registered tool names are `sem_entities, sem_diff, sem_blame, sem_impact, sem_log, sem_context` (prefixed). A model that reads `instructions` to discover what to call will guess `entities` and get a `Method not found` error.

## Severity

P2 — affects every model interaction. The fix is one string edit.

## Environment

- sem `0.6

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/183) · 2026-05-26 · closed · 0 comments

### sem setup no path warning

## Summary

`sem setup` reports `Done! Running git diff in any repo will now use sem.` without checking whether the wrapper directory (`~/.local/bin/`) is actually on the user's `$PATH`. If it is not, every subsequent `git diff` fails with `error: cannot run sem-diff-wrapper: No such file or directory; fatal: external diff died, stopping at <file>` — across every repo on the machine.

## Severity

P1 — the post-install state is silently broken on a common configuration. Many distros and shell se

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/172) · 2026-05-26 · closed · 0 comments

### mcp server terminates on malformed json

## Summary

The `sem mcp` server terminates with exit code 0 when it receives a single line of malformed JSON over stdin, instead of replying with a JSON-RPC `-32700` (Parse error) and continuing to serve. This means any flaky or buggy MCP client can kill the session with one bad frame — line buffering hiccup, stray newline, partial write — with no recovery path.

## Severity

P1 — MCP availability / protocol correctness. A correctly-behaving JSON-RPC server should not exit on a single malformed

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/168) · 2026-05-26 · closed · 0 comments

### MCP API accepts invalid impact modes and reports rmcp server metadata

> *This was generated by AI during triage.*

Severity: Low

Suggested labels: `bug`, `mcp`, `validation`, `metadata`, `impact`

Validated against: `sem 0.6.0`, local main commit `962a93b`.

## Summary

Two small MCP API polish issues make client diagnostics less reliable:

- `sem_impact.mode` accepts invalid strings and silently runs `all`.
- The MCP `initialize` response identifies the server as `rmcp` instead of sem.

They are low-risk individually, but both affect machine clients trying to v

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/156) · 2026-05-23 · closed · 0 comments

### MCP graph tools include `.gitignore`d files that CLI graph excludes

> *This was generated by AI during triage.*

Severity: Medium

Suggested labels: `bug`, `mcp`, `graph`, `ignore-rules`

Validated against: `sem 0.6.0`, local main commit `962a93b`.

## Reproduction

```sh
tmp=$(mktemp -d /tmp/sem-mcp-ignore.XXXXXX)
cd "$tmp"
git init -q
git config user.email test@example.com
git config user.name Test
printf 'ignored.py\n' > .gitignore
printf 'def target():\n    return 1\n' > src.py
printf 'from src import target\n\ndef ignored_caller():\n    return target()\n' 

[Read the thread](https://github.com/Ataraxy-Labs/sem/issues/155) · 2026-05-23 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/Ataraxy-Labs/sem/issues).
