[GH-ISSUE #7089] [Bug] compare_artifacts reports a wrong summary at a nonexistent input path #4270

Closed
opened 2026-10-31 00:48:21 +00:00 by bsakaguchi · 5 comments
Owner

Originally created by @Adolanium on GitHub (Oct 25, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/7089

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Evidence, artifacts, or reconstruction

Observed behavior

compare_artifacts given an inspect_analysis_view Evidence that is not an artifact inventory summary returns an input issue at the path ["evidence"]. The tool's inputs are left and right, so the path names no input and does not say which side was wrong.

Reproduction

Ran on Linux (WSL Ubuntu, Node 24.22.1) at upstream/main 80673b22a, through the comparison Evidence resolver in a test, with a summary whose result is not an inventory supplied as the right side: the issue path is ["evidence"].

Expected behavior

The issue path names the supplied side, ["left"] or ["right"].

Impact and scope

Agents correct requests from the issue path; this one points to a field that does not exist.

REA version

6.7.0, revision 80673b22a

Runtime and platform

Linux (WSL Ubuntu), Node 24.22.1

Target and artifact context

A fixture artifact inventory summary.

Interface

MCP

Earliest failure stage

Request parsing or validation

Relevant output or evidence

Root cause and fix are in #7088, with the regression test.

Typed outcome or recovery expected

AnalysisInputError with the issue on the supplied side.

Analysis or suspected cause

Root cause and fix are in #7088.

Additional context

Fixed by #7088.

Originally created by @Adolanium on GitHub (Oct 25, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/7089 ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area Evidence, artifacts, or reconstruction ### Observed behavior `compare_artifacts` given an `inspect_analysis_view` Evidence that is not an artifact inventory summary returns an input issue at the path `["evidence"]`. The tool's inputs are `left` and `right`, so the path names no input and does not say which side was wrong. ### Reproduction Ran on Linux (WSL Ubuntu, Node 24.22.1) at upstream/main 80673b22a, through the comparison Evidence resolver in a test, with a summary whose result is not an inventory supplied as the right side: the issue path is `["evidence"]`. ### Expected behavior The issue path names the supplied side, `["left"]` or `["right"]`. ### Impact and scope Agents correct requests from the issue path; this one points to a field that does not exist. ### REA version 6.7.0, revision `80673b22a` ### Runtime and platform Linux (WSL Ubuntu), Node 24.22.1 ### Target and artifact context A fixture artifact inventory summary. ### Interface MCP ### Earliest failure stage Request parsing or validation ### Relevant output or evidence Root cause and fix are in #7088, with the regression test. ### Typed outcome or recovery expected `AnalysisInputError` with the issue on the supplied side. ### Analysis or suspected cause Root cause and fix are in #7088. ### Additional context Fixed by #7088.
Author
Owner

@XinwangTao commented on GitHub (Oct 25, 2026):

同意这是值得修的 bug:issue path 指向 ["evidence"] 时,agent 无法判断是哪一侧输入出错——left 还是 right 未知,而且这个字段在输入 schema 里根本不存在,自动纠错基本无从下手。改为 ["left"] / ["right"] 后,下游 agent 可以直接定位到出错的输入侧并修正,日志排查也更直观。感谢 #7088 的修复和回归测试。

<!-- gh-comment-id:6395728176 --> @XinwangTao commented on GitHub (Oct 25, 2026): 同意这是值得修的 bug:issue path 指向 ["evidence"] 时,agent 无法判断是哪一侧输入出错——left 还是 right 未知,而且这个字段在输入 schema 里根本不存在,自动纠错基本无从下手。改为 ["left"] / ["right"] 后,下游 agent 可以直接定位到出错的输入侧并修正,日志排查也更直观。感谢 #7088 的修复和回归测试。
Author
Owner

@XinwangTao commented on GitHub (Oct 25, 2026):

Confirmed — the error path references ["evidence"] which is an internal resolver concept, not the tool's actual input (left/right), so a caller cannot tell which side failed. Suggest naming the side in the error (e.g. which of left/right carried the non-inventory Evidence) and either mapping the path to the public input name or omitting the path entirely in favor of a clear message. A test feeding an inspect_analysis_view Evidence to one side and asserting the side is identified would lock this down.

<!-- gh-comment-id:6399762446 --> @XinwangTao commented on GitHub (Oct 25, 2026): Confirmed — the error path references ["evidence"] which is an internal resolver concept, not the tool's actual input (left/right), so a caller cannot tell which side failed. Suggest naming the side in the error (e.g. which of left/right carried the non-inventory Evidence) and either mapping the path to the public input name or omitting the path entirely in favor of a clear message. A test feeding an inspect_analysis_view Evidence to one side and asserting the side is identified would lock this down.
Author
Owner

@Adolanium commented on GitHub (Oct 25, 2026):

Thanks. #7088 does both: the issue path is now the supplied side, ["left"] or ["right"], and the new test passes a non-inventory inspect_analysis_view summary as right and asserts path: ["right"].

<!-- gh-comment-id:6399768243 --> @Adolanium commented on GitHub (Oct 25, 2026): Thanks. #7088 does both: the issue path is now the supplied side, `["left"]` or `["right"]`, and the new test passes a non-inventory `inspect_analysis_view` summary as `right` and asserts `path: ["right"]`.
Author
Owner

@Adolanium commented on GitHub (Oct 30, 2026):

Fixed on main by #7869 (37827af59): resolveArtifactComparisonSources now passes the side to resolveArtifactComparisonEvidence, so a non-inventory inspect_analysis_view summary is reported at ["left"] or ["right"]. Closing as resolved.

<!-- gh-comment-id:6518618327 --> @Adolanium commented on GitHub (Oct 30, 2026): Fixed on main by #7869 (37827af59): `resolveArtifactComparisonSources` now passes the side to `resolveArtifactComparisonEvidence`, so a non-inventory `inspect_analysis_view` summary is reported at `["left"]` or `["right"]`. Closing as resolved.
Author
Owner

@XinwangTao commented on GitHub (Oct 31, 2026):

Confirmed — the fix matches what was asked for: resolveArtifactComparisonSources passing the side through means the error now names ["left"] or ["right"], which is exactly the public input name a caller can act on. The regression test covering a non-inventory summary on the right side locks the behavior in. Thanks for the quick fix and close.

<!-- gh-comment-id:6536923527 --> @XinwangTao commented on GitHub (Oct 31, 2026): Confirmed — the fix matches what was asked for: resolveArtifactComparisonSources passing the side through means the error now names ["left"] or ["right"], which is exactly the public input name a caller can act on. The regression test covering a non-inventory summary on the right side locks the behavior in. Thanks for the quick fix and close.
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#4270
No description provided.