Reported issues for ivygrep
Pod holds 8 of 8 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 ivygrep.
Most discussed
[Bug]: regex search ignores type and context options
What happened?
CLI, MCP, and Web accept type/context options for regex search, but DaemonRequest::RegexSearch and local regex implementation carry neither field.
Minimal reproduction
ig --regex --type markdown --context 10 --json --limit 1 \
'pub fn regex_search' .
Observed Rust file src/regex_search.rs with start_line == end_line. Both Markdown filter and context 10 were ignored.
Expected behavior
Regex mode honors same documented type filter and context cont
Read the thread · 2026-08-04 · closed · 0 comments
MCP: keep coding-agent indexes fresh and simplify setup
Problem
An MCP-only coding-agent session can auto-index a workspace but does not keep a watcher alive. Edits made after the first query can therefore remain absent until another CLI operation reconciles the index. On Windows, daemon auto-spawn also rejects the packaged ig.exe filename.
The agent setup documentation has drifted across clients, and release installation requires too many manual steps.
Reproduction
- Start
ig --mcpwith an isolatedIVYGREP_HOME. - Call
ig_search
Read the thread · 2026-06-17 · closed · 0 comments
P1: MCP server reloads the neural embedding model on every request
Performance (P1)
src/mcp.rs::execute_ivygrep_search calls create_model(false) on every ig_search request. serve_stdio is a long-lived process, so this reconstructs the Candle/ONNX model (load tokenizer + weights) per call — hundreds of ms of avoidable latency on every search, plus memory churn.
The daemon already loads the model once into an Arc<OnceLock<..>> (DaemonState.lazy_model) and cached_hash_model() uses the same pattern. The MCP server should cache its query model
Read the thread · 2026-05-25 · closed · 0 comments
P0: MCP auto-index embeds inline with the neural model → first query hangs on large repos; parallel MCP melts the host
Stability / Performance (P0)
The MCP auto-index path embeds every chunk with the neural ONNX model inline, on the first query. src/mcp.rs::execute_ivygrep_search does:
let model = create_model(false); // neural (384-dim), loaded per request
...
if !workspace_is_indexed(¤t_workspace) {
let _summary = index_workspace(¤t_workspace, model.as_ref())?; // <-- neural model passed to the indexer
}
index_workspace then calls `embedding_model.embed_ba
Read the thread · 2026-05-25 · closed · 0 comments
A search panic crashes the entire MCP server (no panic isolation)
Robustness (P1)
The MCP server runs single-threaded with no panic isolation (src/mcp.rs): a panic anywhere in dispatch→execute_ivygrep_search→search unwinds through serve_stdio and crashes the whole MCP session. (The daemon isolates each connection in a tokio task; MCP does not.) Wrap tool-call handling in catch_unwind and return a JSON-RPC error.
Read the thread · 2026-05-23 · closed · 0 comments
Unbounded request/Content-Length sizes on MCP and daemon transports (OOM DoS)
Robustness / DoS (P1)
- MCP
Content-Lengthframing allocatesvec![0u8; len]withlenstraight from the client header and no upper bound (src/mcp.rs) → trivial OOM. - Both the daemon (
src/daemon.rs) and MCP use unboundedread_line, so a client streaming a huge line without a newline grows memory without bound.
Cap request/frame size and reject oversized input with an error instead of allocating.
Read the thread · 2026-05-23 · closed · 0 comments
MCP --all search returns no results for indexed workspaces (CLI --all works)
Finding (unfixed — needs investigation)
The MCP server's --all (all-indices) search returns zero results even when the target workspaces are indexed and registered (verified: ig --status lists them with last_indexed_at_unix set), whereas the CLI ig --all finds the same content correctly with absolute paths.
Reproduction:
ig --add repoA --hash --no-watch;ig --add repoB --hash --no-watch(sameIVYGREP_HOME).- CLI: from repoA, `ig --all --literal "<content only in re
Read the thread · 2026-05-23 · closed · 0 comments
MCP --all returns workspace-relative paths under a single workspace_root
Bug
The MCP server runs --all (all-indices) search in-process, merging hits from multiple workspaces but reporting a single workspace_root while leaving each hit.file_path workspace-relative (src/mcp.rs). A consumer joining workspace_root + file_path resolves hits from other workspaces against the wrong root. The daemon path already rewrites these to absolute.
Fix
Rewrite each hit to an absolute path per source workspace in the MCP all-indices branch, mirroring the daemon.
Read the thread · 2026-05-23 · closed · 0 comments
Most recent
The remaining reports are on the project's issue tracker.