mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #8373] [Design] Bound delivery of large native feature traces and their unknowns #6572
Open
opened 2026-11-01 21:12:20 +00:00 by bsakaguchi
·
2 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#6572
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 31, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/8373
Originally assigned to: @kaoru0822-kitauji on GitHub.
Before submitting
Decision needed
How should an agent consume a large native
trace_featureresult with many unavailable owners in bounded pages or a useful summary, while retaining all observed references and the ability to manage residual unknowns without creating disproportionate session output?Context and evidence
On the unmerged #8368 branch (
d25fd8408), I generated owned arm64 Mach-O fixtures whose_maincontains repeated static direct calls to_goal. The targets were not executed. Real verified Kuna 1.986 through stdio MCP reported every site, and the PR preserved an unavailable owner for each. The examples intentionally stress volume; they do not represent measured real-world frequency or model-token usage.trace_feature("goal")succeeded with 3,000 references and residual unknowns. The SDK-serialized reply was 1,981,493 bytes.get_evidence_bundle({detail:"summary"})succeeded but its SDK reply was 4,171,959 bytes; it summarized 3,001 records: the trace plus 3,000record_unknownEvidence records.resource_constraint. A summary filtered byoperation:"trace_feature"succeeded,list_unknowns({offset:0,limit:5})returned a page of 8,000 heads, andexport_evidence_bundleproduced a 25,091,963-byte file with 8,001 records and 8,000 unknowns.resource_constraintat the response boundary with an exact retained Evidence ID and export guidance; the exported 50,211,965-byte bundle contained that same trace ID, all 16,000 trace references, 16,000 unknowns and 16,001 records. A filtered summary and a five-itemlist_unknownspage succeeded; the unfiltered summary again exceeded the budget. The suggested CLI JSON alternative also succeeded on a new run, returning all 16,000 references in 5,043,664 bytes and the same Evidence ID in this controlled fixture. A fresh CLI run should not generally be treated as proof of an earlier live observation.SDK response sizes include both text and structured representations and are bytes, not token counts. The successful calls used full advertised output schemas; targets' hashes were unchanged. This is one host/provider/fixture shape, not a benchmark or a claim that every missing owner needs a separate durable question.
Expected interaction with targets
Read an explicitly opened local binary, run the existing static provider and write a caller-selected Evidence bundle when requested. No target execution or mutation is proposed.
Boundary details
Keep each source and target identity, unavailable reason, provider/profile, reference-cap coverage, existing explicit unknowns and complete Evidence accessible. An omitted page must not imply an absent reference. Preserve any user-managed independent Unknown revisions and distinguish page coverage from provider discovery. Avoid imposing an arbitrary cap or silently discarding sources. Any grouping of unknowns needs an explicit lifecycle and identity policy.
Options and tradeoffs
Compare a retained summary plus
inspect_analysis_viewpages for native feature matches/references, more general exact-record retrieval (#8307), and grouping a common unsupported-capability unknown while retaining per-reference outcomes.list_unknownsalready pages heads and the bundle export is a working fallback; a bounded trace view would avoid requiring agents to transfer or inspect the entire file for a selected set of references. Decide whetherget_evidence_bundlesummary needs pagination or better filtered-summary recovery independently. Measure representative workloads and total agent interactions before claiming efficiency gains.Verification available so far
I have a prototype or observed results
Success criteria and open questions
Exercise empty, single, shared-source, capped, many-source and mixed-owner cases; assert stable page/record identity, offline export/import, uncertainty and cancellation/cleanup behavior. Test different providers, source formats and large Evidence limits. Establish bounded allocation and cleanup independently of transport limits; do not silently drop Unknowns. The MCP overflow error and export worked in the one synthetic Kuna test; Ghidra, other hosts and autonomous-agent decisions at this scale remain unverified.
References
Related #8288 and PR #8368 (new unavailable-owner state), #8184 (reference-discovery coverage), #8307 (exact retained record retrieval), and #8296 (JavaScript feature-trace views, a different workflow).
cc @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0
Independent resolution and offline paging control
On #8509
7f344af1a, real Kuna 1.988 MCP traced an owned arm64 Mach-O with 100 distinct direct callers toaudit_target; direct Kuna reported 100 call rows. The trace returned 100 references and 100 owner-unavailable unknowns. In both full and compact profiles,list_unknownsrecovered all 100 unique heads in six pages (limit 17), and export/import into a fresh target-free session preserved every record. The bundle summary found the retained trace, butinspect_analysis_viewrejected it as an unsupported parent;trace_featurerejecteddetail: summary. Atokenx1.3.0 estimate for the minified complete trace Evidence was 9,593 tokens / 35,063 bytes; this excludes the catalog, request, follow-up calls and transport duplication and is not a full-task or billing measurement.An unmerged experiment grouped same-reason residual questions while keeping all 100 per-reference unavailable outcomes. Explicitly updating that single group as verified with Ghidra Evidence for only one source was accepted by
verify_unknown_resolution. Under current individual questions, resolving that source left 99 open. The registry checks declared authority/confidence and the caller's asserted resolution; this does not prove all owners. The grouping experiment was removed. This controlled case demonstrates why preserving reference rows alone is insufficient to preserve independently resolvable unknown identity. An opt-in summary, retained pages, or shared text with individual heads remains worth investigating. Target SHA-256b305faa9c5c31ae4f2413cad855402798288fc206867352a502bcbc1c0cb74f5remained unchanged and it was not executed; one host and fixture only.CLI Unknown registry handoff
On draft #8585 head
4809afeef, a real Kuna 1.988 run against the same owned arm64 Mach-O produced 100 owner-unavailable question strings in the saved CLI trace, but its exported bundle had zero Unknown registry entries. Separately, full and compact stdio MCP runs of the same query each returned 100 question strings andlist_unknownsreported 100 independently addressable heads. A head includes scope, support, status and mutation Evidence; the strings alone do not provide that lifecycle. The target's SHA-256 stayedce8582268988e3efe7441bdf87c69626be149ff5cb5ddf99b20f5d90d0f6b4d6and it was not executed. This is a limitation of the proposed CLI handoff, not a claim that main already has its new CLI summary option.Investigate an explicit selected-Unknown closure for a one-shot handoff, including revision history, relationship and Evidence dependencies, and exclusion of unrelated snapshot records. Do not synthesize new identities from question text or automatically export all user-managed Unknowns. #8546 covers the separate question of selecting scope for new Unknowns. The example is one fixture and provider; the appropriate export contract remains a design decision.
Snapshot handoff and selection control
On #8585
4809afeef, two real Kuna CLI invocations of the 100-reference fixture with the same--snapshotsaved the 100 Unknown revisions and 100record_unknownEvidence records in the analysis snapshot, while both separate trace Evidence bundles had zero registry entries. Copying the snapshot'sevidence_bundleobject to a separate JSON file and importing it into fresh target-free full and compact MCP sessions succeeded: each restored 101 Evidence records and 100 Unknown heads. This is a whole-snapshot workaround; it can include records beyond the requested trace, and its applicability to all snapshot states is untested.A selection control then created one separate user-authored question supported by the same trace Evidence and exported the investigation. All 101 Unknowns referenced that trace as supporting Evidence. Thus selecting Unknowns solely by a supporting Evidence ID would also include a separately authored question; support establishes a relationship, not automatic ownership. The manually added question had null scope because it was created target-free. Selection of automatic questions across repeated runs, replay, revised questions and relationships needs an explicit ownership/identity rule and a validated dependency closure, rather than an inferred string match or unconditional snapshot export.
@morluto commented on GitHub (Oct 31, 2026):
Fresh-session recovery control on the same macOS arm64 host: after the 16,000-reference MCP result exceeded the transport budget, a separate MCP server imported the exported 50,211,965-byte bundle successfully.
import_evidence_bundlereported 16,001 records and 16,000 Unknowns; atrace_feature-filtered summary returned the exact trace Evidence ID from the original overflow, andlist_unknowns({offset:0,limit:5})returned five of 16,000 heads. The bundle SHA-256 was unchanged. Successful replies were validated by the TypeScript SDK against the full advertised schemas. The 8,000-reference exported bundle also imported and supported a filtered summary and Unknown page.The summary tool description says to use a discovered Evidence ID with
inspect_analysis_view, but that advice does not apply to this record: after import, bothview: {kind: "summary"}andview: {kind: "native-observation", offset: 0, limit: 5}returnedunsupported_target, explicitly becausetrace_featureis not a supported parent. Qualifying that guidance by supported parent operation would prevent a dead-end recommendation even before a bounded trace view exists.This verifies export/import as an offline recovery path for these two synthetic Kuna fixtures. It does not establish an efficient way to inspect individual references inside the retained trace, test a fresh provider analysis, or establish behavior for Ghidra or other hosts.
Same-session control on REA PR #8368 head
0ebfcabfwith the two-call-site Mach-O fixture and each real provider (verified Kuna 1.986 and Ghidra 12.1.4):analyze_function(_main)andtrace_feature(goal)both appeared inget_evidence_bundle({detail:"summary"}). Passing the discovered function record toinspect_analysis_viewwithview: {kind:"summary"}succeeded; passing the discovered trace record to the same view returnedunsupported_target. Both summary entries had the same metadata keys and no explicit view-availability field. The operation name is present, so an agent can consult the view contract, but the summary's unconditional recommendation is misleading. Both provider sessions closed successfully and the target digest was unchanged; this is a workflow control on one macOS arm64 fixture, not a claim about all view types or provider inputs.@kaoru0822-kitauji commented on GitHub (Nov 1, 2026):
Proposal for the retained-view part only (source-derived on
aa48d494e; I'll implement it unless someone objects). This mirrors #8522 for the JavaScript trace and leaves residual-unknown identity untouched.trace_featureresult shape currently exists only asliteralTraceOutputintoolOutputSchemaGroups.ts. Move it tosrc/domain/native/literalFeatureTrace.ts; the contract output and the new view then parse with the same schema.native-traceview (shared by MCPinspect_analysis_viewand CLIinspect-analysis-view):summary:query,search_mode,truncated, match counts by type, reference counts by owner state (found/not-found/unavailable),residual_unknownscount, and source provider/profile/parameters.{kind:"native-trace", collection:"references"|"matches"|"residual_unknowns", where?, offset, limit}: exact rows withsource_indexin retained order.referencesfilters by exacttarget_addressesand owner state;matchesfilters by type.truncatedand the provider limitations stay visible on every page.trace_featuregainsdetail: "summary"through the existing enhanced-tool summary delivery (asget_call_graphdoes). The default stayscomplete.referencespage.Not changed: one residual Unknown per unavailable reference (the grouping experiment showed why independent identity matters),
list_unknownspaging, andget_evidence_bundlesummary size (#8528 adds exact record reads separately).