mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Open
opened 2026-11-01 21:11:22 +00:00 by bsakaguchi
·
5 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#6468
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 @morluto on GitHub (Oct 30, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/8184
Before submitting
Decision needed
Should
trace_featureexpose structured reference-coverage status separately from truncation and residual execution failures, so an agent can distinguish no returned references from a verified absence without interpreting provider-specific prose?Context and evidence
On macOS arm64, a self-built, unexecuted arm64 Mach-O contained a Base64 alphabet and a function that indexed it. In real REA MCP sessions,
trace_feature({query:"ABCDEFGHIJKLMNOPQRSTUVWXYZ"})with Ghidra 12.1.4 returned the string and one source reference whose containing procedure was_audit_base64_character. With Kuna 1.986 it returned the string,references: [],truncated: false, andresidual_unknowns: []. Kuna's Evidence did include the explicit limitation that its static reference walk may omit edges and an empty result does not prove no reference exists. No claim of exact complete runtime references follows from either provider.Source inspection shows
truncatedand the residual list reflect explicit provider-reported truncation or encountered lookup gaps; they are not documented as a proof of exhaustive reference discovery. The question is whether that distinction is sufficiently available as structured data to agent workflows when the observed references are empty. This is one controlled example, not a measured model error rate or a claim that Kuna violates its capability contract.A second control on current REA
85013da0cand Kuna 1.988 used a self-built x86-64 ELF. Direct Kunastringswith reference walking reported one reference and function_startfor bothéclairandWIDER;--no-xrefsreturned zero counts and empty function lists because it did not walk references. REA deliberately uses the latter inventory. Real MCPtrace_feature({query:"éclair"})then found the exact reference at0x2011ac, but reported its containing procedure as unavailable because Kuna does not declare the containment operation. Direct Kuna associates that string with_startat0x201190; this demonstrates available provider evidence, not that its association can always be converted into an exact source-to-function mapping. Ghidra exactxrefsindependently returned the same source for this fixture. The target digest remained unchanged and both sessions closed.Consider whether a bounded analyst workflow can expose this association with its actual provider semantics and provenance, while keeping unsupported exact containment unknown. Compare the cost of Kuna reference walks with the existing separate
xrefspath; no performance measurement or general coverage claim was made.A further controlled string case places the sole observed reference inside the string rather than at its start. REA/Kuna
trace_featurereturned the string with an empty reference list,truncated:false, and no residual unknowns; direct Kuna reported one reference and its referring function for the string extent. Exact REA xrefs at the interior destination found the reference with both Kuna and Ghidra. Evidence for the trace states the exact-address limitation. See #8569 for fixture, disassembly, addresses and digest. This is a scope-of-lookup gap as well as a reporting question: structured coverage alone would not discover the interior reference.Expected interaction with targets
Read an opened local binary and query the bound static-analysis provider; no target execution or mutation is proposed.
Boundary details (optional)
Preserve returned rows, per-match outcomes and the existing distinction between actual truncation, unknown discovery coverage, incomplete searches and runtime reachability. Do not promote Ghidra's observed reference to proof of complete ground truth or mark all Kuna answers truncated. Provider limitations and source coverage should originate at their owning provider boundary, not be inferred from text or from another provider's result.
Options and tradeoffs
Compare an explicit per-match or aggregate
reference_coveragewithunknown/provider-observed semantics, a smaller inline summary plus retained per-match details, and current limitations-only reporting. Reuse existing evidence/relationship coverage contracts where applicable rather than adding another provider-specific tool. Account for extra payload and compatibility, and preserve relevant source limitations.Verification available so far
I have a prototype or observed results
Success criteria and open questions
Test empty and nonempty references, explicit provider truncation, unsupported containment, lookup failures and missing coverage through real MCP and controlled provider cases. Confirm that
truncatedstays about observed truncation and that an unavailable coverage fact is not presented as complete. A controlled model trace would be needed to measure any change in agent decisions.References
Existing truncation fix: https://github.com/morluto/rea/issues/2558
Global-name discovery and typed reference control
On REA main
9ebbe67eand Ghidra 12.1.4, a source-built unexecuted arm64 Mach-O contained global_observed_globalat0x100004000and a pointer slot at0x100004008;dyld_info -fixupsindependently reported the slot's rebase to the global. In both MCP profiles,trace_feature({query:"observed_global"})matched a string containing the symbol name, but did not match the global label or report the pointer slot as its reference. This follows the advertised trace scope of matching strings and procedures, so it is not a claim that the tool violated its contract.A separate
list_namescall did identify the imported global label at0x100004000.xrefsat that address reported the slot, andinspect_native_instructionreturned it as a typed Ghidra DATA reference even though its target status wasnot-in-listing. The separately requested instruction record and trace record survived export/import unchanged in a fresh server without an open binary; the trace did not link the instruction record. Target SHA-256167f7b743182b707705cc06a5318222c82d69b4dd4f19c32213e078f717d4aecstayed unchanged.This control distinguishes the existing documented string/procedure trace scope from data-symbol discovery. Consider whether an agent searching a named global needs a bounded, explicit handoff to the existing name inventory; do not present the matched symbol-name string as the global itself or treat empty trace references as proof of absence. It does not establish agent behavior, general provider coverage, or a need for automatic expansion of every trace.
Unwalked source affects incoming references
On the unexecuted Mach-O used in #8362 (SHA-256
17a184835ff22f86c6398d96b699acdd2eb200ebb3d966d6fb5af7d0cebff4ed), direct Kuna 1.990xrefs --to 0x1000003c8returned_direct_goal's call at0x1000003d0and reported_middleat0x1000003e0incoverage.unwalked. A separate explicitly requestedxrefs --from 0x1000003e0 --kind callfound its call to_goal. The unwalked list thus describes sources outside the walk, not merely whether the queried target was decoded.On REA #8813 head
187f3d8cc, compact/full MCPxrefsreturned the first call but did not retain the unwalked list.trace_featurefor_goalincluded that reference, omitted_middle's call and settruncated: false; its residual unknown concerned the unavailable containing-procedure lookup, not the unwalked source. Generic provider limitations remain. Successful replies used the SDK and fetched schemas, the target hash was unchanged, and the target was never executed. This is one observed coverage gap, not proof that every unwalked source references the selected target. A producer-owned structured observation must preserve that distinction and should avoid copying a full unbounded source list into every composed match.Repeated image-level coverage gaps in a prototype
A local, unmerged prototype propagated known Kuna reference-discovery gaps into
trace_feature.residual_unknowns, while preservingtruncated: falsefor gaps that were not response caps. On a source-built, unexecuted Mach-O with 20 distinctaudit_coverage_*functions, real Kuna 1.990 through REA stdio MCP returned 20 matches and no reference rows in each schema profile. The prototype emitted 20 target-specific questions for the same provider report of no pointer-relocation coverage. Those strings occupied 3,041 serialized UTF-8 bytes, and an exported session bundle contained 20 Unknown records and 41 Evidence records (116,898 bytes). The fixture's SHA-256bbfac7c7ad3f2e88ff202657557c9e2a4a141fa30ef92d327105ed2b876f52ecwas unchanged. These are counts for this prototype and fixture, not token, performance, or prevalence measurements.Consider representing a shared image-level relocation-metadata limitation once with an explicit scope and retained per-target source links, rather than materializing an independent question for every affected target. Any grouping must preserve which targets were actually covered and must not make resolving one target's distinct unknown resolve another. Compare this with per-match details for cases where coverage really differs; the observation does not establish that all provider gaps are global.
Kuna 1.990 documentation describes
data_refs_coverage: "none"as an image listing no pointer relocations, but the loader also emits it for unsupported formats or architectures and some relocation-reading failures. Therefore it does not establish that relocation metadata is absent. See https://github.com/Noelo-Lab/kuna/blob/v1.990/decompiler/crates/kuna-analysis/src/loader/kuna_dataptrs.rs.The RISC-V control reproducing the upstream ambiguity is reported at https://github.com/Noelo-Lab/kuna/issues/1502. Current REA rejects that RISC-V target as unsupported before invoking Kuna, so the upstream reproduction is not a current REA RISC-V failure. For REA-supported images,
noneshould still be treated as unknown coverage rather than as proof of absent relocation metadata.A follow-up in draft #8851 gives provider-reported gaps an explicit image or observation scope. The real 20-match control now retained one image-wide relocation-coverage Unknown and all 20 linked xrefs sources in both profiles; the exported bundle was 60,164 bytes, versus 116,898 bytes and 20 Unknowns in the earlier prototype. A separate real unwalked-code control retained distinct questions for the two observed targets. These are serialized sizes for one controlled fixture, not token or latency measurements. Grouping is based on producer-defined scope and code, not matching prose; review of shared-Unknown resolution semantics remains open.
@morluto commented on GitHub (Oct 30, 2026):
A related real-provider control adds a discovery limitation distinct from reference coverage: on an owned Mach-O with isolated
QZ7\0andQZ7_LONG_MARK!\0,trace_feature({query:"QZ7"})returned the longer inventory string, empty references,truncated:false, andresidual_unknowns:[]with both Ghidra 12.1.4 and Kuna 1.986. The Evidence limitations disclosed each provider's incomplete string inventory; direct Kuna with minimum length 3 and REA/Ghidra exact byte search independently located the shorter literal. Empty exact xrefs did not prove absence of indexed use in this fixture.This is not a claim that
truncated:falsepromised raw-byte completeness or that either provider violated its documented contract. #8218 discusses the separate task of locating known short/encoded byte candidates; this issue remains about representing reference coverage truthfully.@morluto commented on GitHub (Oct 31, 2026):
Looping in @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0 for visibility on the Ghidra, Kuna, and REA tool-design investigation.
@morluto commented on GitHub (Oct 31, 2026):
CLI rendering control on the same source-owned, unexecuted Base64-alphabet Mach-O, REA
b43c329and Kuna 1.986: both ordinaryrea trace <fixture> ABCDEFGHIJKLMNOPQRSTUVWXYZ --provider kunaoutput and--format jsonexited 0 and included the matched string,references: [],truncated: false,residual_unknowns: [], and the provider's explicit limitation that an empty exact-address xref result does not prove absence. Both retained the Evidence subject digest and upstream provider profile. The target SHA-256 was unchanged (6d276076713030d87100f3a98e551b88de799193d5f9e1b57c1774d583aa77e9).This is a positive check that the existing caveat is visible in these two CLI output formats, not evidence of an omission by CLI rendering. It leaves the original design question: whether machine-readable coverage would help agents distinguish incomplete discovery from complete absence, beyond the available prose. No autonomous agent decisions were measured.
@morluto commented on GitHub (Oct 31, 2026):
A real current-main (
60149282) Evidence handoff check adds a provenance tradeoff to this question. On the same source-built Base64 Mach-O (SHA-2566d276076713030d87100f3a98e551b88de799193d5f9e1b57c1774d583aa77e9), I called onlytrace_feature("ABCDEFGHIJKLMNOPQRSTUVWXYZ")after opening the target, then exported the bundle. Ghidra 12.1.4 returned one observed source reference and its containing function; Kuna 1.986 returned no references with its existing explicit coverage limitation. Each exported bundle contained onetrace_featurerecord with the result and relevant provider limitations but no linked or separatexrefsrecord. A fresh target-free server imported each bundle and recovered the trace record structurally unchanged.In the same live sessions, a subsequent explicit
xrefscall for the matched address returned Ghidra's same source and Kuna's empty list and added a separate Evidence record. Kuna's direct xref record carried provider-output digest, byte count and examined/excluded row counts. The existing trace record remained unchanged and did not link to that separate record. In separate fresh sessions I also calledxrefsbeforetrace_feature; neither trace linked the earlier xref record. A later independent query is a useful recovery while the target and provider remain available, but its separate record should not be represented as automatically proving the exact earlier source observation.Source-derived context: the composed-workflow collector can link an
AnalysisExecution.evidenceIdand retainsourceEvidencewhen supplied, while the feature trace consumes the xref execution's result and explicit truncation observation. This check does not establish that every source must be retained separately or that the inline trace is invalid: it already records the provider and caveats. The design question is whether offline analysts need a bounded, attributable per-match source/coverage observation and how to retain it without unnecessary duplicated payload or conflating absence with unknown coverage. Target digest was unchanged; no target was executed. One fixture and two providers were tested, not all cache or failure states.@morluto commented on GitHub (Oct 31, 2026):
A second real-provider control shows this is not confined to Kuna or empty xref results. On current main
6e9ee97a69cb16c7150d8b550e705cba055ee4f0, I tracedaudit_initialin a self-built, unexecuted Mach-O, using real Ghidra 12.1.4/JDK 21 on macOS arm64 and SDK 2.3.1 stdio MCP with advertised compact output schemas._audit_initialand_audit_dispatchfunction entries but no decoded instructions. Its trace returned the matching procedure at0x1000003c0and an observed metadata reference at0x1000080c0, withtruncated: falseandresidual_unknowns: []. Its surrounding Evidence explicitly said that original project analysis completeness and settings are unknown.0x1000003e8in_audit_dispatch, and independent disassembly showed that call. Directxrefsreproduced the same difference. These establish one missing reference in the deliberately incomplete project, not a general statement of exhaustive reference discovery for either session.This extends the original coverage design question to nonempty selected-project references with known incompleteness.
truncatedcorrectly does not assert a provider cap, and an empty residual list is not documented as a completeness guarantee. If adding structured coverage, derive it from provider-owned observation scope and keep reference discovery, project history, explicit truncation, and per-source owner resolution distinct; avoid inferring it from limitations prose or treating #8391's caller/callee change as a fix for directxrefs.A separate real CLI
rea trace ... --format jsoncontrol reproduced the same fresh Ghidra, selected Ghidra, and Kuna reference/owner outcomes and selected-project Evidence caveat. The target hash was unchanged. The CLI control did not independently hash the selected project tree; the MCP runs above did.