mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #5032] procedure_pseudo_code output for one large function is too big to return #3091
Open
opened 2026-10-31 00:36:31 +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#3091
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 @RoKenobi on GitHub (Oct 18, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/5032
REA 6.5.0, Ghidra provider, Claude Code client. Decompiling one large function in
iTunes.exe(FUN_141310c60) returned about 98,000 characters. The client rejected the result as too large and saved it to a file, so I had to read the pseudocode from that file in pieces.#4249 asks for paging for the list and search tools, but I couldn't find a way to page a single function's pseudocode, in 6.5.0 or 6.7.0. If
inspect_analysis_viewcan already do this with the result's evidence ID, the tool description or the skill could say so. Otherwise, line-range paging forprocedure_pseudo_codewould help with large functions.@pablodiazjorge commented on GitHub (Oct 18, 2026):
I checked the source on main (
23f984b1a) and therea-agents-6.5.0and6.7.0tags. There is a paging path in all three, but not fromprocedure_pseudo_code:inspect_analysis_viewpages pseudocode fromanalyze_functionEvidence:view: {kind: "native", facet: "pseudocode", offset, limit}, with offset and limit in UTF-16 code units. The native view only acceptsanalyze_functionas its parent (parent_operation: "analyze_function"insrc/domain/analysisView/nativeFunctionView.ts), so Evidence fromprocedure_pseudo_codecan't be paged there. The defaultlimitis 64, which for pseudocode means 64 code units, so pass a larger one explicitly.analyze_functiontakes onlyprocedureand returns the whole dossier (pseudocode, assembly, references, blocks…), so forFUN_141310c60its response would be larger than the 98,000 characters you got, and Claude Code would likely save it to a file as well. From there you could page with{source: {kind: "retained-evidence", evidence_id: "<its evidence_id>"}, view: {kind: "native", facet: "pseudocode", offset: 0, limit: 20000}}.inspect_machoalready avoids an oversized first result withdetail: "summary", which retains the complete Evidence in the session and returns itsinspect_analysis_viewsummary. The same option onanalyze_function, or the line-range paging you suggest forprocedure_pseudo_code, would cover this case; that's a scope call for the maintainers.Not run: this comes from reading the contracts and the view code. I haven't decompiled a function this size or measured the dossier.
@cpruijsen commented on GitHub (Oct 20, 2026):
This adds real-Ghidra measurements for the initial dossier cost described in the existing #5032 discussion.
After opening Elgato Control Center and completing provider startup, the recorded MCP session made these calls:
Both calls succeeded. Short-report 8-bit trace request/result pairs are 134/135 and 136/137.
In both results,
raw_result.valueexactly equalsnormalized_result. Parsed text also equalsstructuredContent. The harness consumes only text, so it receives two dossier copies before clipping, not four. Its separate 12,000-byte text limit clipped both successful results. REA did not report a provider or transport failure.Existing
inspect_analysis_viewnative facets already provide selected or paged access after retention.procedure_pseudo_codealso supplies narrower output. The remaining question is smaller initial dossier delivery, without removing the complete Evidence required by #551 and #723.Source review at
d532b18123916a9e88f98c7880ba4f984e23d715confirms the procedure-only input and full-dossier contract. This is delivery evidence, not proof that the current contract is broken or paging is absent.Observed revision:
3613fb11bd9d6b876822056a6d7ec2c18e3bfc9d. Environment: macOS arm64, Ghidra 12.1.4, Temurin 21.0.12.1+1-LTS. Target binary SHA-256:865f822237eb41d837b9e49f0ebf6613125da7771fa9d2950be76de8a67d4954.No latest-main runtime reproduction, proposed summary, or before/after token saving was measured. No raw logs or private paths are included.
@CryptoJones commented on GitHub (Oct 20, 2026):
More real-Ghidra measurements for the initial
analyze_functiondossier cost, from a Linux ELF with symbols and debug info. They are about an order of magnitude above the Elgato numbers above, and one function exceeded the 10 MiB response budget on its own.Setup (observed). REA 6.7.0 built from
32f0e5120, MCP mode, Ghidra 12.1.4, Linux x86-64. Target:Delores(Delores: A Thimbleweed Park Mini-Adventure, version stringDelores version 2.0.5 (build 20200914)), not stripped, 10,414,408 bytes, SHA-256e0f33669e6d0d37a62eb500dee780d7287889d1ab220d4f46ef094e662fe9f4a. Client: dsh driving a local Qwen3.8-27B. Numbers below are from the recorded MCP tool results; sizes are compact JSON UTF-8 bytes of the parsed result.normalized_resultnative_value_flowoutgoing_referencesassemblypseudocodemain(64 lines)GGPackfileManager::addPack(298 lines)GameApp::initWithOptions(645 lines)GGSDLApp::initMainresponse_bytes_at_least10,585,263 vsresult_budget_bytes10,484,736Inside
native_value_flow,operationsis 51,169 / 524,722 / 1,116,232 bytes anddef_use8,993 / 122,347 / 227,915 for the three delivered functions. Pseudocode is 1.2 to 2.1 percent of the normalized dossier.On this revision
raw_result.valuestill equallednormalized_resultbyte for byte, so each delivered record was 189,119 / 1,931,379 / 4,286,867 bytes. #5355 removes that copy, so the table reports normalized sizes only.Continuation path (observed). The
resource_constrainterror forinitMaincarried a readyinspect_analysis_viewcontinuation withlimit: 64. The agent called it withlimit: 200and received 200 of 26,113 code units (coverage.next_offset: 200), i.e. the signature. Paging works as documented, but the default page is the view contract default, not a useful pseudocode page.Agent outcome (observed, one run, not a controlled comparison). The client clipped each tool result at about 50 KB and spilled the rest to a file. The first 50 KB of every
analyze_functionresult issubject,provider,analysis_profileand the start ofnative_value_flow, so after 15 REA calls over 27 minutes the agent had seen one function signature and no pseudocode. That is a client limit, not a REA failure, but it is the regime an opt-in summary or pseudocode-first delivery would address.Not run: no reproduction on latest
main, no before/after token measurement, no proposed schema. Nothing private is included; the target is a retail Steam build.@morluto commented on GitHub (Oct 26, 2026):
Thanks for the concrete large-function example.
analyze_functiondossiers can page their retained pseudocode, but the standaloneprocedure_pseudo_coderesult has a separate scalar representation; #5046 proposes summary delivery and paging for that path. The issue remains open while that distinct change is reviewed. No Ghidra or Claude run was performed in this triage.