mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #4687] [Bug] Session inventory reports a working trace_call_path as provider_missing #2444
Closed
opened 2026-10-17 21:04:45 +00:00 by bsakaguchi
·
4 comments
No Branch/Tag specified
main
codex/procedure-reference-stacked
release-please--branches--main--components--rea-agents
release-please--branches--main--components--rea-agents--release-notes
codex/kuna-independent-retry
codex/byte-search-overlay-coverage
codex/open-failure-target-receipt
codex/kuna-xref-evidence
codex/ghidra-ambiguous-procedure-recovery
codex/function-source-bundle
codex/trace-function-integration-prototype
codex/snapshot-source-closure
codex/recorded-evidence-array-pages
codex/evidence-recovery-redesign
codex/trace-feature-address-scope
codex/call-discovery-scope
codex/ghidra-literal-candidate-evidence
codex/decompile-directory-independent-retry
codex/retry-provenance-base
codex/value-flow-capability-experiment
codex/ghidra-containing-instruction
cursor/readme-discord-button-ef9f
dependabot/github_actions/actions/setup-node-7.1.0
dependabot/github_actions/actions/upload-artifact-7.0.2
dependabot/npm_and_yarn/npm-minor-and-patch-d8d97ce6df
codex/kuna-1989
fix/8559-native-ui-fixture-ownership
fix/8555-go-verifier-mcp-ownership
codex/provider-capability-recovery
fix/8642-rizin-target-stdin
codex/ghidra-memory-effect-scope
codex/ghidra-annotation-entry-selector
codex/ghidra-readonly-recovery
codex/ghidra-regex-verifier-recovery
codex/evidence-discovery-view-guidance
fix/8545-bulk-append-overflow
fix/8428-navigation-refusal-alternatives
codex/address-context-recovery
codex/matching-member-limitations
codex/unknown-scope-contract
codex/evidence-view-guidance
feat/8373-native-trace-views
codex/ghidra-snapshot-verifier-binding
codex/elf-export-visibility
codex/evidence-view-recovery
codex/native-reference-cli-help
codex/provider-candidate-observation-scope
codex/kuna-session-verification
codex/ghidra-switch-lifetime-guidance
codex/pseudocode-paging-discovery
codex/clarify-evidence-view-support
codex/kuna-xrefs-selector-recovery
codex/context-capacity-recovery
codex/evidence-closure-large-links
codex/same-function-evidence-identity
codex/ghidra-verifier-inspected-jdk
codex/audit-guided-workflows
codex/crash-prompt-retained-dossiers
codex/analysis-view-error-recovery
codex/kuna-verifier-target-selection
codex/ghidra-selected-project-call-coverage
codex/docs-native-analysis-scope
codex/ghidra-java-socket-boundary
codex/ghidra-retained-snapshot-verifier
codex/ghidra-search-inventory-facts
fix/8284-zero-argument-parameter-bindings
fix/8198-ui-action-handler-offset
fix/8257-elf-entry-label-identity
fix/8304-deferred-output-schema-projection
fix/8277-call-path-computed-target-uncertainty
fix/pr-8089-conflicts
fix/ci-static-duplicate-export
dependabot/npm_and_yarn/lint-staged-17.6.0
dependabot/github_actions/actions/download-artifact-8.0.2
dependabot/npm_and_yarn/write-file-atomic-8.0.0
dependabot/npm_and_yarn/canonicalize-5.1.0
dependabot/github_actions/actions/cache/restore-6.1.0
dependabot/npm_and_yarn/toon-format/toon-4.4.0
dependabot/github_actions/actions/deploy-pages-5.0.1
codex/review-fixes-pr-2403
codex/review-fixes-pr-2400
codex/process-terminal-width
codex/test-brittleness-cleanup
verify/7167-browser-connect-macos
fix/7167-browser-connect
feat/native-matching-allowance-setting
feat/browser-scenario-dry-run
test/managed-caller-parameters-20261024
codex/parser-fortythird-boundaries
fix/6926-pinvoke-platform-decorations-20261023
fix/6889-har-body-encoding-20261023
fix/6888-sqlite-schema-budget-20261023
fix/dependency-security-gates-6708
cursor/evidence-overwrite-rebase-b4ac
feat/4057-verify-native-exports
fix/windows-acl-observer-overhead-20261022
cursor/erlang-beam-restack-4476
cursor/pe-certificate-review-bf32
fix/6116-javascript-application-fs-errors
fix/6061-unmapped-runtime-script-unknown
feat/browser-scenario-summary
fix/pe-certificates
codex/verify-3407
cursor/rebase-5699
cursor/rebase-5352
cursor/rebase-5600
cursor/fix-cli-schema-omission-10a8
codex/audit-hopper-shutdown-reasons-20261021
fix/demangle-swift-omitted-record
fix/nib-boolean-value-types
cursor/cancellation-partial-observation-a5ac
fix/ib-object-limit-reasons
fix/electron-fuse-limit-advice
fix/kuna-doctor-dangling-cache
fix/fixed-budget-refusal-advice
fix/js-ipc-listener-dedup
fix/js-return-member-provenance
fix/dmg-integrity-retry-advice
fix/ida-doctor-readiness
fix/kuna-version-probe-output-drain
fix/legacy-swift-runtime-name-matching
fix/dylib-lazy-load-commands
fix/browser-scenario-startup-cancel
fix/swift-nested-punycode-classification
fix/compare-unselected-scopes
fix/objc-method-budget-coverage
fix/dmg-mounted-root-observations
audit/ci-tests-20261019-round2
release/6.7.0
fix/wabt-cleanup-retry-resolution
fix/electron-fuse-elf-pe-architecture
fix/native-plist-descriptor-ownership
fix/kuna-caller-cleanup-ownership
experiment/atomic-codemode-20261016
review/first-contributor-3776
fix/call-resolution-full-read-cycles
fix/member-mutation-selection-repeat
experiment/atomic-re-tools-20261015
perf/member-mutation-lazy-origins
perf/static-network-mutation-index
fix/hopper-startup-lifecycle
audit/3050-windows-proof-20261015
feat/windows-window-capture-2183
audit/3049-windows-proof-20261015
audit/3735-macos-fixtures-20261015
fix/batch-decompile-null-pseudocode
fix/kuna-inventory-honors-jobs
experiment/browser-codemode-tool-design-20261015
fix/hopper-clean-runtime-argv
codex/review-2049-27f1b367
review-fixes/pr-2787-routing
fix/3360-scoped-this-emitters
fix/3367-replaced-global-effects
fix/3838-compact-any-value-items
test/hopper-download-probe-20261015
codex/windows-runtime-creation-red-green-20261015
codex/windows-readonly-root-red-green-20261015
codex/windows-root-share-red-green-20261015
codex/exp-1685-win-mcp-startup
codex/bug-sweep-20261015
investigate/2190-windows-package-phases
investigate/3543-macos-cli-deadline
perf/3281-reverse-tools-feedback-quality
fix/3406-hopper-doctor-fixture
fix/3341-wrapper-require-test-context
fix/3301-owned-uninstall-fixtures
fix/3164-compiler-input-ownership
fix/pcap-cleanup-stdout-newline-20261014
perf/interface-builder-summary
codex/review-fixes-pr-1977
fix/ghidra-effective-jvm-platform
fix/docs-turkish-rust-link-20261013
fix/main-maintenance-ci-20261010
fix/recover-binary-session-process-effects
codex/review-fixes-pr-2457
codex/ci-required-cancellation-gate
fix/main-format-baseline-20261013
fix/setup-preserve-entry-fields
cursor/restore-main-checks-1ffc
fix/ghidra-bridge-hashmap-import
codex/shared-ci-jadx-json-default-20261013
codex/shared-ci-ghidra-test-groups-20261013
codex/shared-ci-java-fixture-format-20261013
codex/fix-intrinsic-invocation-boundaries
test/release-preflight-reusable-jobs
test/js-parameter-provenance-expectation
fix/linux-hopper-verification-current
test/2419-ghidra-elf-probe-size
followup/pr-1544-native-ida
codex/fold-pr-2230-contribution
docs/readme-responsible-use
fix/issue-2064
fix/issue-2050
fix/issue-2053
fix/issue-1968
fix/issue-1945
experiment/codemode-bridge-20261011
fix/tool-effects-negative-wording-1904-20261012
fix/1842-electron-interop-provenance
feat/recover-javascript-multi-input
refactor/website-i18n-prep
fix/nativeaot-pe-virtual-extent
fix/browser-verifier-ci-hang
fix/pe-resources-input-selection
docs/beginner-friendly-guides
docs/beginner-setup-guide
fix/javascript-analysis-worker-1563
fix/1649-ghidra-duplicate-names
fix/javascript-export-keys-integration-1369
test/maintenance-boundary-contracts-20261011
review/javascript-export-keys-1369
review/process-live-progress-1483
test/javascript-1495-growth-ratio
fix/ci-escape-timing
docs/normalized-terminal-geometry-1450
release/6.3.0
archive/release-6.3.0-pr1381
release/6.2.0
fix/electron-preload-dynamic-override
fix/javascript-self-referential-bundler-edges
release/6.1.0
cursor/grok-client-cherry-pick-0b56
feat/signature-posture
feat/dyld-shared-cache
feat/artifact-integrity-policy
feat/pkg-inventory
release/6.0.0
chore/sync-release-5.0.0
release/5.0.0
cursor/cloud-agent-node-787e
fix/javascript-xhr-open-endpoints
review/pr-711-realpath-fallback-wording
cleanup/replay-confinement
codex/test-suite-performance
codex/issue-foundations
codex/address-open-issues-2026-07-20
agent/javascript-vite-rollup-esbuild-adapters
agent/process-cleanup
agent/triage-integration
agent/unknown-commands-registry
feat/mcp-identity-metadata
morlvps/issue_cleanup
codex/installer-redesign
morl/roadmap-investigation-core
morl/roadmap-investigation-docs
release-please--branches--main--components--rea
rea-agents-6.8.0
rea-agents-6.7.0
rea-agents-6.6.0
experiment/atomic-codemode-wait-runtime-20261016
rea-agents-6.5.0
rea-agents-6.4.0
rea-agents-6.3.0
rea-agents-6.2.0
rea-agents-6.1.0
rea-agents-6.0.0
rea-agents-5.0.0
rea-agents-4.1.0
rea-agents-4.0.1
rea-agents-4.0.0
rea-agents-3.2.1
rea-agents-3.2.0
rea-agents-3.1.0
rea-agents-3.0.0
rea-agents-2.7.0
rea-agents-2.6.0
rea-agents-2.5.1
rea-agents-2.5.0
rea-agents-2.4.0
rea-agents-2.3.0
rea-agents-2.2.0
rea-agents-2.1.0
rea-agents-2.0.0
rea-agents-1.7.0
rea-agents-1.6.0
rea-agents-1.5.0
rea-agents-1.4.0
rea-agents-1.3.0
rea-agents-1.2.0
rea-agents-1.1.0
rea-agents-1.0.0
rea-agents-0.5.0
rea-agents-0.4.0
rea-agents-0.3.0
rea-0.2.1
rea-0.2.0
Labels
Clear labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
Mirrored from GitHub Pull Request
question
roadmap
triage
No labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
question
roadmap
triage
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
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#2444
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @coygeek on GitHub (Oct 17, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/4687
Before submitting
Area
Provider or capability discovery
Observed behavior
After opening a target with a bound fake provider that declares available procedure_address, procedure_callees, and procedure_callers operations, MCP binary_session reports trace_call_path as unavailable with reason provider_missing and remediation "No provider composition is declared for this operation." The same session lists trace_call_path in tools/list, and direct forward and backward calls both reach their requested goals without failures or truncation. get_call_graph is reported available in the same inventory.
Reproduction
npm ci --ignore-scripts --no-audit --no-fund, thennpm run compile. For the release comparison, use a separate directory and runnpm install --prefix ./release --ignore-scripts --no-audit --no-fund rea-agents@6.5.0. These preparation commands were run with isolated HOME directories and the pinned runtime on PATH. Set REA_ROOT to the absolute source checkout or to the absoluterelease/node_modules/rea-agentsdirectory; set PINNED_BIN to the directory containing the pinned node executable. This reproduction uses the production MCP server, registry, session, and tool handlers with an in-memory fake analysis provider; it does not require a real analysis engine.Expected behavior
The documented binary_session inventory is the surface callers should consult to choose a callable operation. With a supported target open, a bound provider supplying all three operations, and no client feature requirement blocking the tool, trace_call_path should be reported available. The inventory should not say its composition is absent when direct calls in that same session complete successfully.
Actual traversal resolves start and optional goal through procedure_address, then uses procedure_callees for forward expansion or procedure_callers for backward expansion. The opposite relationship direction is not required for a one-direction trace. Availability must still reflect target and provider restrictions; this report does not imply that every provider can trace every direction or resolve every selector.
Impact and scope
The observed result gives callers incorrect operational guidance on every full-provider fixture run. A client following the documented inventory can skip a working call-path analysis. The tool remains listed and direct execution works, so this does not establish that REA blocks tracing itself. The fixture isolates shared inventory behavior; real Hopper, Ghidra, IDA, and doctor CLI behavior were not executed.
REA version
Fresh main source commit
5853089885(package version 6.5.0); separately installed latest npm release rea-agents 6.5.0.Runtime and platform
Node.js v24.18.0; npm 11.16.0; Darwin arm64. The source runtime was freshly compiled, and the npm runtime was installed separately; both fixture executions used the repository-pinned toolchain.
Target and artifact context
Synthetic fixture.hop containing the text fixture, admitted by a fake analysis provider with supported target status and a fixed analysis profile. Its two-node graph is main at 0x1000 calling leaf at 0x1100. This fixture verifies inventory and shared composition behavior, not real-provider binary analysis.
Interface
MCP
Earliest failure stage
Transport or result projection
Relevant output or evidence
Executed the inline fixture against both tested builds through the pinned node runtime with env -i and a separate fresh HOME per build. Both fixture executions exited 0 with empty stderr. The following is the relevant projection of each full-provider output; the script retains the complete trace and operation-call list:
Observed controls: forward-only provider reaches the forward goal; backward-only provider reaches the backward goal. Calling the unsupported relationship direction returns a successful partial trace with goal_status unknown, truncated true, a capability_unavailable failure naming the missing operation, and a residual unknown. Marking procedure_address unavailable makes both directions return isError true with code capability_unavailable, category unsupported_provider, and details.operation procedure_address, without executing the fake client. Before opening a target, inventory correctly reports target_required.
Typed outcome or recovery expected
With the full-provider fixture and an open supported target, expand binary_session.result.tool_availability.groups and expect the trace_call_path group to have available true, reason available, and null remediation; tools/list should still contain the tool and both direct traces should still reach their goals. The discriminating no-target control should continue to report target_required. Unsupported address resolution must remain a typed error, and unavailable directional relationship reads must preserve their failure and unknown status rather than claim a complete negative trace. A same-start-and-goal request can finish after resolution without expanding relationships.
Analysis or suspected cause
Source-derived reasoning: the enhanced requirements table has no trace_call_path entry. The shared inventory enumerates its registered enhanced contract, passes the open supported target checks, and reaches the undefined-composition fallback, which emits provider_missing. Its implemented runtime composition and server registration exist separately. get_call_graph is a useful available control, but its inventory requirements should not be assumed to define trace_call_path requirements.
Additional context
Searched open and closed issues and pull requests for
trace_call_path,provider_missing, the exact composition-remediation text, inventory/trace, and capability/call-path combinations. #4247 and PR #4417 concern multiple goals and roots; #1964 concerns provider-wide limitations causing false truncation; #3988 concerns missing IDA relationship coverage. Availability reports #3947, #3067, #3068, and #3069 cover other operations and provider-readiness paths. None of the inspected reports covers the false composition result for this working call-path tool. No last known good version was established.@xu91102 commented on GitHub (Oct 17, 2026):
Independently reproduced on main
5927937179476c66aa8621658faca42f9578b42a, Node24.18.0 / macOS arm64, through the production MCP server/session/registry and official InMemory SDK with a controlled analysis provider. In 3/3 full-capability sessions,binary_sessionreportedtrace_call_pathasprovider_missingwhile both actual forward and backward calls reached their goals without failures or truncation. Forward-only and backward-only controls reached their supported goal and retained unknown/partial results in the unsupported direction; an unavailable address-resolution control made no provider execution calls.The owning capability-composition table has no entry for this existing workflow. A new source regression reproduces the false-unavailable result (1 failed /27 passed); production was unchanged for that RED. I am preparing a small correction using the existing composition owner and its address-plus-direction prerequisites, while preserving target, provider and client gates. This is real MCP composition evidence with a controlled provider, not native-engine qualification; no new upstream PR or CI is claimed.
The correction is now committed and pushed to my fork: 57fd8b4. It adds only the missing address-plus-direction composition and focused source/MCP regressions; target/provider/client gates and unsupported-direction partial Evidence remain intact. Final affected tests:37PASS; deduplicated11file coverage157PASS plus README5PASS, with nine unchanged files reused. Check/docs/discovery passed (1,484 tests discovered exactly once). Independent Standards/Spec review passed after adding awaited session teardown and failure propagation.
This remains a controlled-provider production-MCP investigation, not native-engine, cross-platform or stdio qualification. No upstream PR or upstream CI exists; ordinary upstream creation is still permission-blocked with no specific policy confirmed. Human readiness is not attested.
@XinwangTao commented on GitHub (Oct 18, 2026):
Confirmed: the inventory is contradicting the session's actual capability surface — trace_call_path appears in tools/list and both call directions succeed, yet binary_session reports provider_missing. That mismatch is worse than a wrong status alone because callers use inventory to decide whether to attempt the operation at all, so they would skip a working feature. The PR #4729 direction of declaring the provider composition requirements for trace_call_path (procedure_address + procedure_callees + procedure_callers) looks right and should also fix the get_call_graph consistency point mentioned in the report. Suggest adding a regression test that asserts inventory availability matches tools/list for a fake provider declaring exactly that composition, so future operation additions can't drift again.
@XinwangTao commented on GitHub (Oct 18, 2026):
Confirmed: the inventory is contradicting the session's actual capability surface — trace_call_path appears in tools/list and both call directions succeed, yet binary_session reports provider_missing. That mismatch is worse than a wrong status alone because callers use inventory to decide whether to attempt the operation at all, so they would skip a working feature. The PR #4729 direction of declaring the provider composition requirements for trace_call_path (procedure_address + procedure_callees + procedure_callers) looks right and should also fix the get_call_graph consistency point mentioned in the report. Suggest adding a regression test that asserts inventory availability matches tools/list for a fake provider declaring exactly that composition, so future operation additions can't drift again.
@morluto commented on GitHub (Oct 18, 2026):
Fixed in 1d5bf5ff0, covering #4687 and the independently reproduced sibling #5068.
The root cause was drift between runtime composition and discovery: a missing trace declaration, wrong graph prerequisites, and duplicated direction/default interpretation. Both tools now report forward/backward modes requiring address resolution plus the corresponding relationship operation. Overall availability and default-forward availability are separate; missing operations and owner failure remediation remain inline. Runtime and inventory share one direction mapping, defaults are selected by name, and the enhanced composition table is checked against canonical contract names so new omissions fail typechecking.
The correction adapts PR #4729's proposed missing trace composition, with co-author credit to AHMED. The final change also fixes the graph sibling and completes the directly related ownership/refactor and public-mode checks. This is not a merge or whole-head qualification of that PR.
Validation executed on macOS/Node24.18, official MCP SDK2.3.1 (negotiated protocol2025-11-25):
Completed MCP workflow costs were recorded using listTools → open_binary → binary_session → selected trace → close_binary plus awaited cleanup, three processes per variant/task (first process + two alternating repeated processes). The baseline uses the documented direct-invocation workaround to complete the same answer. Full catalog reply and normalized trace hashes agree across variants. Repeated medians:
The complete full-profile catalog alone accounts for 805328 estimated tokens in these SDK observations; this is a wire-response estimate, not measured model context. Additional tokens carry mode/prerequisite facts. No true cold-cache or speedup claim; requests/framing, model selection/retries/host context, real providers, large/failure workload costs remain unmeasured.
Research used DeepWiki as navigation and checked the primary 2025-11-25 MCP tools specification, matching the observed negotiated version. Newer session-removal proposals in the current wiki were not applied. The fixed catalog policy and exact availability semantics remain owned by REA's contracts.
No native engine, CLI, Linux/Windows or model tool-selection qualification. Source-only follow-ups remain in native dispatch/UI composition prerequisites; those require separate runtime evidence. The wider codebase audit remains active.