Pod

Available as Markdown and JSON. Pod is also available over MCP.

Reported issues for better-code-review-graph

Pod holds 16 of 17 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to better-code-review-graph.

Most discussed

Auto-truncate impact output to avoid token-limit overflow

Problem

impact output for shared hooks/utils routinely exceeds conversation token limits. Observed sizes: 7.6M chars, 12M chars. Large LLM clients drop the response; smaller ones fail to process it at all.

Current workaround (field-use)

Always wrap impact in a subagent with summarisation. Cap max_depth=1 by default.

Suggestion

Return a truncated payload by default when result size exceeds a threshold, with a structured hint:

{
  "results_truncated": true,…

[Read the thread](https://github.com/n24q02m/crg/issues/315) · 2026-04-19 · closed · external user · 4 comments

### `callers_of` response should auto-flag same-file `asyncio.to_thread` / `functools.partial` / decorator references (dynamic-dispatch blind spots)

## Problem

`mcp__code-review-graph__query action=callers_of` is structurally correct — it returns AST-edged callers. But in Python repos, several common dispatch patterns are invisible to the AST edge: `asyncio.to_thread(func, ...)`, `asyncio.ensure_future(func, ...)`, `map(func, ...)`, `functools.partial(func, ...)`, decorator-based routing, and dict-of-`Callable` registries. The response reads as authoritative ("these are all callers"), but the true call-site set is larger than what's…

[Read the thread](https://github.com/n24q02m/crg/issues/331) · 2026-04-20 · closed · external user · 2 comments

### Every `search` / `query` response should include `embeddings_count` and `keyword_only: true|false` in the response header (auto-compliance with RESULT-block discipline)

## Problem

Consumers of `mcp__code-review-graph__search` and `mcp__code-review-graph__query` currently have to call `config action=status` separately to know whether the response came from semantic-similarity search (`embeddings_count > 0`) or keyword-substring fallback (`embeddings_count == 0`). Result: agents that should record the mode in their audit trail (SST3 AP #19 MUST-record discipline) forget to do it because the mode isn't surfaced at the point of use.

## Reproduction (field…

[Read the thread](https://github.com/n24q02m/crg/issues/330) · 2026-04-20 · closed · external user · 2 comments

### `graph update` response should include reviewer-oriented summary (functions_impacted / nodes_changed) alongside raw edge counts

## Problem

`mcp__code-review-graph__graph action=update` currently returns raw edge-count metrics (e.g. "4 files / 629 edges"). For a reviewer deciding swarm scope at Stage 5/6, raw edge counts are a weak signal. The reviewer wants to know: which functions changed? Which modules are newly impacted?

## Reproduction (field evidence, round-4 SST3 `/Leader 4-6` agent 2, frontend-JS repo)

- `graph update` × 2 incremental calls (4 files, 629 edges).
- Agent's follow-up reaction: "A `nodes_changed`…

[Read the thread](https://github.com/n24q02m/crg/issues/329) · 2026-04-20 · closed · external user · 2 comments

### `graph update` misses local-only commits on solo branches (incremental-detection heuristic gap)

## Problem

`mcp__code-review-graph__graph action=update` appears to miss local-only commits that have not yet been pushed / fetched. On a solo branch with several local commits, `graph update` reported incremental-detection based on a `last_updated` timestamp that predated the first local commit.

## Reproduction (field evidence, round-4 SST3 `/Leader 4-6` agent 1, Python repo)

- Agent on a solo branch with 7 local-only commits touching `src/` files.
- `mcp__code-review-graph__graph…

[Read the thread](https://github.com/n24q02m/crg/issues/328) · 2026-04-20 · closed · external user · 2 comments

### Auto-resolve single-candidate File+Function ambiguity for caller/callee/impact queries

## Problem

When `callers_of <symbol>` matches both a File node AND a Function node with the same name (common when a module name equals a function name), the File target is meaningless for the caller/callee/impact question — the user almost always wanted the Function.

Currently the tool either asks for disambiguation or returns ambiguous mixed results. Either way, the user is forced to manually qualify the target.

## Current workaround (field-use)

Always use fully-qualified…

[Read the thread](https://github.com/n24q02m/crg/issues/316) · 2026-04-19 · closed · external user · 2 comments

### Not Working: Failed to persist capabilities cache

**Describe the bug**
In Claude Code: Failed to reconnect to plugin:better-code-review-graph:better-code-review-graph.  
I manually run `uvx --python 3.13 better-code-review-graph` in Powershell:

2026-04-29 02:51:58.798 | INFO | better_code_review_graph.credential_state:resolve_credential_state:113 - No credentials found -- server starting in awaiting_setup mode 2026-04-29 02:51:58.835 | INFO | mcp_core.transport.local_server:run_local_server:458 - Credentials already configured for…

Read the thread · 2026-04-28 · closed · external user · 1 comment

Orphan daemon + lock-format-version-skew causes 401 on stdio-proxy reconnect

Summary

better-code-review-graph --stdio proxy crashes with HTTP 401 when it picks up a lock file written by an older mcp_core (which lacks the bearer-token line on line 3) while a previously-spawned daemon from that older version is still alive. Repeats whenever uvx resolves a newer minor/patch while a daemon spawned by the previous version is still running. Surfaces in Claude Code as MCP error -32000: Connection closed.

Mechanism

  1. --stdio runs run_smart_stdio_proxy()

Read the thread · 2026-04-25 · closed · external user · 1 comment

Most recent

Promote callers_of/impact/search from pattern= parameter to first-class action= values

Summary: current MCP signature is query action=query pattern=callers_of target=<x>. The action=query + pattern= indirection is a recurring trip-hazard — multiple round-5 agents hit Unknown action 'callers_of' before realising callers_of is a pattern value, not an action value.

Field evidence — round-5 (hoiung/dotfiles#427 P1.18 / P2.8 / N50)

Read the thread · 2026-04-21 · closed · external user · 1 comment

review/tests_for untested-function list over-reports on cross-language + integration-test repos — add language filter or test-framework heuristic

Summary: review and tests_for produce untested-function false positives on two common repo shapes:

  1. Cross-language test coverage: Python implementation + JavaScript/TypeScript E2E tests (Jest / Vitest / Playwright). The Python tests_for view doesn't see JS test files → JSX/TSX implementations get flagged as "untested".
  2. Integration-test-style coverage: Python implementation + pytest integration tests using fixture-based dependency injection. The AST-call-graph heuristic…

Read the thread · 2026-04-21 · closed · external user · 1 comment

callers_of/callees_of not_found response is ambiguous — "symbol not indexed" vs "zero callers" look identical

Summary: callers_of and callees_of returning {"status": "not_found"} conflates three distinct failure modes:

  1. Target misspelled
  2. Target not indexed (instance method called without Class. qualifier, Pydantic validator, framework-decorator-registered route)
  3. Genuine zero callers

The same not_found response for all three forces the caller to guess which one they're looking at — often via spending hours on wrong-direction debugging before grep confirms.

Field evidence —…

Read the thread · 2026-04-21 · closed · external user · 0 comments

Add renamed_in_diff query (or similar) — track symbols whose callsite lines shifted vs base ref

Summary

Feature request for a query pattern that reports symbols whose callsite line numbers shifted between the current graph and a base ref (analogous to how review base=<ref> works today but for line-position drift rather than blast radius).

Use-case (Stage 6 Final Review, multi-file refactors)

When auditing a large refactor diff, it matters to know which callers physically moved — not just which symbols were added/removed. Today the graph reports current file:line…

Read the thread · 2026-04-20 · closed · external user · 1 comment

Add spot_check action — return source snippets for N random callsites from last callers_of result

Problem

Mechanical per-query spot-check discipline (read one source line per graph result to confirm it wasn't a false positive) is important for avoiding the "trust structured JSON without verifying" failure mode.

Currently an agent has to manually do N `Read` calls after each `callers_of` / `callees_of` / `impact` / `inheritors_of` to implement this discipline — N file fetches per graph query.

Current workaround (field-use)

Documented manual discipline: after each graph…

Read the thread · 2026-04-19 · closed · external user · 1 comment

Warn at search when embeddings_count=0 AND query is not a literal identifier

Problem

`search` silently degrades to keyword-substring matching when `embeddings_count=0`, but gives no warning at query time. A careful agent catches this by checking `config status` before each `search`; a less-careful one trusts what look like semantic results but are actually keyword-fallback — which can return garbage on verb-phrase or multi-word queries.

Current workaround (field-use)

Agent discipline: always check `config status` BEFORE `search`. Documented in an…

Read the thread · 2026-04-19 · closed · external user · 1 comment

Claude Code plugin stuck at v3.8.0 while PyPI is at v3.9.0 — MCP server fails

Description

The Claude Code plugin (installed via n24q02m/claude-plugins marketplace) is stuck at version 3.8.0 while the PyPI package is at 3.9.0. Running "Update now" in Claude Code says "already at the latest version (3.8.0)".

This causes the plugin's MCP server to fail because:

Read the thread · 2026-04-13 · closed · external user · 1 comment

Startup crash: fakeredis 2.35.0 breaks docket import (released 2026-04-09)

Description

Since 2026-04-09, any fresh install of better-code-review-graph via uvx crashes on startup. The root cause is fakeredis 2.35.0 (released 2026-04-09) which removed FakeConnection from fakeredis.aioredis. The docket library (pulled in via FastMCP → pydocket) still imports the old name.

Root cause: chrisguidry/docket#380 — fix in progress via PR #382

Error


[Read the thread](https://github.com/n24q02m/crg/issues/259) · 2026-04-10 · closed · external user · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/n24q02m/crg.git/issues).