[PR #2371] [MERGED] fix(call-path): keep caller-only unknown coverage from blocking not_found #5194

Closed
opened 2026-10-31 01:04:42 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/2371
Author: @sx4im
Created: 10/12/2026
Status: ✅ Merged
Merged: 10/13/2026
Merged by: @morluto

Base: main ← Head: fix/build-call-path-headless-ida-not-found


📝 Commits (2)

  • 8485de5 fix(call-path): keep caller-only unknown coverage from blocking not_found
  • 9095ccf test(call-path): cover IDA-capped callees beside unknown callers

📊 Changes

4 files changed (+173 additions, -3 deletions)

View changed files

📝 src/domain/callPath.test.ts (+83 -0)
📝 src/domain/callPath.ts (+6 -1)
➕ src/domain/functionCallCoverage.test.ts (+64 -0)
📝 src/domain/functionCallCoverage.ts (+20 -2)

📄 Description

Fixes #2322.

In the modern headless IDA profile, analyze_function Evidence always carries relationship_coverage with status unknown, because the callers side is structurally unobservable ("Upstream xrefs do not establish direct caller relationships."). build_call_path treated any non-complete coverage as incomplete expansion, so it returned unknown instead of not_found for every forward search over IDA Evidence.

The search only expands callee edges, so caller-side unknowns cannot add a path. inspectSearch now keeps the search exhaustive when the combined coverage is unknown only on the caller side (detected through the direction prefixes that combineFunctionRelationshipCoverage already attaches). The caller caveat stays in the result limitations, and callee-side or both-side unknowns still produce unknown.

Tests: added call-path cases (caller-only unknown yields not_found with exhaustive true; callee-side unknown and both-side unknown still yield unknown) plus unit tests for the new isCallerOnlyUnknownCoverage helper. npm run check:fast is green; the affected domain, IDA boundary, and MCP investigation suites pass. Live IDA was not exercised; the fix is pure domain logic.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/2371 **Author:** [@sx4im](https://github.com/sx4im) **Created:** 10/12/2026 **Status:** ✅ Merged **Merged:** 10/13/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/build-call-path-headless-ida-not-found` --- ### 📝 Commits (2) - [`8485de5`](https://github.com/morluto/rea/commit/8485de5336f58d7f96a6bde812f3324f2f8438e6) fix(call-path): keep caller-only unknown coverage from blocking not_found - [`9095ccf`](https://github.com/morluto/rea/commit/9095ccf3b582d9cd2a8eaab58f83c50021dbcf02) test(call-path): cover IDA-capped callees beside unknown callers ### 📊 Changes **4 files changed** (+173 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `src/domain/callPath.test.ts` (+83 -0) 📝 `src/domain/callPath.ts` (+6 -1) ➕ `src/domain/functionCallCoverage.test.ts` (+64 -0) 📝 `src/domain/functionCallCoverage.ts` (+20 -2) </details> ### 📄 Description Fixes #2322. In the modern headless IDA profile, analyze_function Evidence always carries relationship_coverage with status unknown, because the callers side is structurally unobservable ("Upstream xrefs do not establish direct caller relationships."). build_call_path treated any non-complete coverage as incomplete expansion, so it returned unknown instead of not_found for every forward search over IDA Evidence. The search only expands callee edges, so caller-side unknowns cannot add a path. inspectSearch now keeps the search exhaustive when the combined coverage is unknown only on the caller side (detected through the direction prefixes that combineFunctionRelationshipCoverage already attaches). The caller caveat stays in the result limitations, and callee-side or both-side unknowns still produce unknown. Tests: added call-path cases (caller-only unknown yields not_found with exhaustive true; callee-side unknown and both-side unknown still yield unknown) plus unit tests for the new isCallerOnlyUnknownCoverage helper. npm run check:fast is green; the affected domain, IDA boundary, and MCP investigation suites pass. Live IDA was not exercised; the fix is pure domain logic. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:04:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#5194
No description provided.