Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/sem/issues.md or /mcp/sem/issues.json, or Pod over MCP.

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.

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 · 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 · 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 · 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

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:

Read the thread · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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

Read the thread · 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 · 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 · 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:

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

Read the thread · 2026-05-23 · closed · 0 comments

MCP graph tools include .gitignored 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

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).