Repository navigation
D-CODEGRAPH-RECON-2: coverage-aware impact report, report-rs #33 from compiler facts - #2002
AdaWorldAPI wants to merge 11 commits into
Conversation
Codegraph::impact is unchanged. impact_report returns the same masks plus typed gaps from store facts and a declared scope: unobserved external consumers of a PUBLIC symbol, targets not extracted or undeclared, a dynamic call that may reach the symbol, an incomplete harvest, stale or unrecorded source files, unchecked freshness. A missing symbol is Missing, never an empty answer. Unobserved callers never become positions in Graded.unknown. closed_in_scope is local to the declared scope; no-known-gap is not global completeness. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
A symbol defined only in an opaque module or a disabled feature has no position, so impact_report now reports declared excluded regions as RegionsExcluded, and a missing symbol in a stored crate carries that crate's target and region gaps instead of reading as absent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
impact_report now lists .rs files below a directory the extraction read from that its files table does not record (feature-gated modules, binary roots), as SourceFilesUnread. cg_query gains a report subcommand that prints impact_report for a declared scope. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
…ntry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Pre-merge checks:
|
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b0364e4ecd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…bol harvest External callers of a public caller of the symbol are unobserved too, so the external-consumer gap fires when anything graded is public, not only the symbol. With the consumer set declared closed, every stored crate is checked for coverage, including one whose call sits in code it did not extract. A missing symbol now carries its crate's HarvestIncomplete. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS
Codegraph::impactreturns an empty set for a public symbol whose callers live in crates the store does not hold (#2000). This addsCodegraph::impact_report, which keepsimpact's masks exactly and adds a typed list of what the answer could not see. It then answers three questions about report-rs PR #33 from a Charon store, graded blind against the manual EXO-185 findings. Board: EXO-229, EXO-230.Changes
crates/lance-graph-codegraph/src/impact_report.rs(new, additive):Scope,Targets,SymbolState,Gap,ImpactReport,Codegraph::impact_report.impactis unchanged..rsfiles under a read directory thatfiles.tsvdoes not list.Graded.unknown.closed_in_scope()is local;Coverage::no_known_gap()alone is never treated as closure.examples/cg_query.rs: areportsubcommand with--targets,--exclude,--consumers-closed.tests/impact_coverage.rs: 14 tests..claude/probes/2026-11-11-codegraph-recon-2/: report, questions, held-out answer key, both arms' answers, grades, raw store output..codegraph/regenerated; board entry.Findings (details in REPORT.md)
81705d9, lib, default features,crate::appopaque because the full crate ran out of memory): the CRATE row saysCOMPLETE, yet 14 of 59src/files were never read (iam.rs,main.rs,project_plan/*, …).SourceFilesUnreadreports them fromfiles.tsv.workbook_delta::WorkbookSource::pollhas no library caller and no path toLedger::ingest;Ledger::pull → source_fake::pullis dynamic and reported UNKNOWN, not as an edge. Each absence carries its scope.iamcall), targets (test callers) and manifest facts (Cargo.toml). n = 1 per arm.machine-recovered.mmdbyte-identical, Charon recall column identical. The rust-analyzer column was not re-run.Checks
crates/lance-graph-codegraph:cargo fmt -- --check,cargo clippy --all-targets -- -D warnings,cargo test.python3 .claude/tools/codegraph_index.py --check: current.Open
🤖 Generated with Claude Code
https://claude.ai/code/session_01XAqKMLLhjfT6wad5BaeNBS