- Fix hardcoded max turns in prompt
- Merge overlapping findings on same line range before posting
- Pin
GetFile/ListFilesto iteration commit SHA instead of branch tip CodeGraphIndexerwas registered as singleton with non-keyedIGitConnector— broke DI validation locally after keyed services were introduced. Temp-fixed by resolving viaIServiceProviderat runtime. Should align withIndexFunction's provider fromIndexRequest.- Split
IGitConnector— interface is too broad (pipeline + tools + chat). Consider splitting into focused interfaces (e.g. core pipeline, code browsing, chat) while keeping shared implementations. (done)QueryCodeGraphtool is registered unconditionally inCoreStrategy(reviewer + explorer) andReviewer(chat) — LLM can call it even whenEnableCodeGraphis false. Should only add the tool whencodeGraph != null.- Code graph indexing only runs on repo registration. If a repo was registered before the feature existed, or
EnableCodeGraphwas false at the time, the graph is never built. Trigger indexing from the review pipeline — if a review runs and the code graph is empty, enqueue anIndexRequesttoindex-queueso the next review benefits. Don't block the current review.
-
Verification pass — after the reviewer produces findings, run a second pass that tries to disprove each finding before posting. Goal: reduce false positives. The verifier should attempt to refute each finding by checking context, reading referenced code, and confirming the issue is real. Discard findings it can disprove.
-
Build repo map (AST structural index) for compact codebase awareness(done: code graph) -
LSP integration for type-resolved call graphs (fixes cross-file type resolution limitations in tree-sitter; requires local repo cloning)
-
Externalize prompts (load from blob/config instead of compiled
Prompts.cs) -
Switch auth from PAT-only to
DefaultAzureCredentialwith PAT fallback -
Semantic search — vector embeddings for similar-pattern detection, consistency checks, related tests
-
Learnings from feedback — inject past review learnings into reviewer instructions
-
Work item integration — fetch linked work items as additional review context(done) -
Cross-provider work item enrichment — parse
AB#references from GitHub PR descriptions/commits and fetch ADO work items (requires dual auth: GitHub + ADO credentials for the same review) -
Local repo cloning support for tool-based reviews
-
Auto-detect per-repo metadata (language version, framework) to reduce false positives
-
Feature-level config system — per-repo feature toggles on
Repositoryentity (app-owner controls) and.aporia.jsonProjectConfigoverrides (project-owner controls). Three-tier precedence: globalAporiaOptions> per-repoRepository>.aporia.json. Applies to incremental reviews, code graph, chat, and future flags. -
GitHub webhook: subscribe to(done)pull_request.ready_for_review(draft→ready transition) to trigger reviews when PRs leave draft state -
GitHub chat: subscribe to
pull_request_review_comment.editedfor cache invalidation when users edit comments in review threads -
GitHub issue context — scan PR body/title for
#Nreferences, fetch issue details (title, body, comments) via GitHub API, inject into reviewer context for better understanding of why the change was made -
CodeFix fuzzy anchoring — instead of trusting LLM line numbers for suggestions, match the original code snippet against actual file content (exact → whitespace-trimmed → anchor-based) and reposition the suggestion to the real location. Reduces misplaced suggestions when line numbers drift.
-
"Review skipped" feedback — when a PR is skipped (no matching files, too large, etc.), post a comment explaining why with actionable metrics so the author knows what to fix
-
Claude Code C# LSP agent — create a dedicated agent with
cclspMCP server bridging Roslyn LSP (csharp-ls) for type-aware navigation (go-to-definition, find-references, diagnostics). Blocked on Claude Code LSP stability (tracking: anthropics/claude-code#15619, #15168)