mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #5219] [Bug] Explicit ABI selection rejects a label reported and inspectable by default #3196
Closed
opened 2026-10-31 00:37:44 +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#3196
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 19, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/5219
Before submitting
Area
MCP or agent integration
Observed behavior
identify_flutter_buildreportsARM64-V8Afrom a synthetic APK, andinspect_dart_aotcan inspect that payload by default when it is the sole library. Explicitly requesting the same label returns an MCP input-validation error before the Flutter provider executes. In a paired APK, omission selects a differentx86_64payload instead.Reproduction
With the source revision below and its lockfile dependencies installed, save this complete test as
tests/boundary/mcp/reportedAbiSelection.test.ts. It uses the existing APK/ELF fixtures, real Flutter provider and production MCP registration over linked in-memory SDK transports; the binary-session fixture is inert.Run from the repository root with its pinned Node.js toolchain:
The inline test executed successfully: one file, one test, seven MCP requests. Its passing assertions establish the defect and controls, not a fix. Explicit uppercase selection failed for both fixtures; default inspection succeeded for both; explicit
x86_64succeeded for the paired fixture. A separate retained six-request test also reproduced the same refusal forAB, with successfularm64-v8acontrols.Expected behavior
Explicitly selecting an identified, default-inspectable directory label should inspect that same payload and preserve its identity. The Flutter workflow documents an optional ABI selector, default selection including remaining ABIs, and preservation of caller choice.
Impact and scope
Selection of parser-supported nonstandard labels fails. The paired fixture proves omission does not preserve the intended payload. Standard-label controls work; population frequency is unknown. These are synthetic parsing inputs, not a claim that uppercase labels are standard Android packaging or that the APKs are installable.
REA version
Source runtime:
39275420ea18ad803eccfcc2702865b98ed36e44, also the current default-branch HEAD when checked. Latest releaserea-agents-6.7.0at27dc42d10249f0410904a75c0997842eb03b931chas identical affected contracts, provider, adapters, fixtures and tests by source comparison; release runtime was not executed.Runtime and platform
Node.js 24.18.0; npm 11.16.0; Vitest 5.0.3; macOS 27.0.1 arm64. No Hopper, Ghidra, device or target execution.
Target and artifact context
Synthetic ZIP APKs contain the repository's ELF64 x86_64 AOT images with distinct
a/bsnapshot hashes. Directory labels do not change ELF machine type. The inputs omitlibflutter.soand an Android manifest. Identification coverage is partial because engine libraries are absent; successful AOT controls report complete structural library coverage.Interface
MCP
Earliest failure stage
Request parsing or validation
Relevant output or evidence
Both uppercase requests returned
isError: trueand exactly:The provider spy observed no dispatch for either rejection. Single-library default inspection returned ABI
ARM64-V8Aand snapshot hashaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; paired default and explicitx86_64returnedbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb. The exact inline test was replayed against the source revision above; separate retained verification independently observed these outcomes. Compiled CLI, standalone stdio MCP and release-runtime reproduction were not run.Typed outcome or recovery expected
For the paired fixture, explicit
ARM64-V8Ashould succeed with its original label,ahash and complete structural library coverage. Default and explicitx86_64should retain thebpayload. The single-library fixture should give the same payload for explicit and default selection. Suppressing the reported identity or selecting another payload does not restore caller choice.Analysis or suspected cause
Source-derived: discovery retains directory labels, and provider selection matches the supplied label exactly. The earlier canonical input schema restricts the selector to lowercase letters, digits, underscores and hyphens, rejecting these reported identities before dispatch.
Additional context
Single-character, overlong, punctuation and dot-segment variants were not tested.
Triage assessment
@Yi-111-a commented on GitHub (Oct 19, 2026):
Fixed in #5223: the
inspect_dart_aotselector now uses the same label grammar discovery reads, so a reportedARM64-V8Apayload stays selectable and keeps its label. A schema case also pins that empty and path syntax stay refused.@morluto commented on GitHub (Oct 19, 2026):
Fixed on main in
64abd4aefb.The selector preserves the literal reported ZIP label, including nonstandard spelling and characters; provider selection still compares exact strings and extraction uses a fixed owned filename. CLI and MCP now consume the same canonical fields. Inventory retains the exact1024-byte UTF-8 path limit; the bounded name query permits up to1010 Unicode characters, covering every possible libapp label without claiming that every admitted query exists.
Reviewed and adapted the schema-sharing work from #5223 at
b9ccd2a349, with verified coauthor credit. Review caught two remaining counterexamples in that proposal: its335-unit cap rejected admitted ASCII paths, and its character filter rejected literal labels inventory can report. Those restrictions are absent from this fix. A Unicode regex also avoids Zod/JSON Schema length-unit drift and consumes a final newline correctly. Context7/DeepWiki were navigation aids; the primary zip.js name-validation documentation and executed ZIP fixtures establish the relevant behavior.Baseline registered MCP regressions:14 failed,1 passed. Final focused suite:127 tests/5 files passed; final CLI file with added canonical-path controls:9 passed. Standalone compiled CLI and stdio MCP completed17 explicit inspections (8 CLI,9 MCP), including a1010-byte ASCII label, multibyte labels, backslash and newline; NUL was tested through JSON MCP, not OS argv. Paired fixtures retain the caller-selected a-hash while omission selects x86_64's b-hash. Check/docs passed. These are real parsing workflows over synthetic APK/ELF data, not installable APK or real Flutter release qualification; directory labels do not establish ELF architecture.
Descriptive cost control, three fresh processes per version with warm OS caches: complete CLI schema+inspection and stdio initialization/catalog/identify/inspection workflow used817371→817424 cl100k-estimated request/reply tokens; median2.880→2.886s elapsed,4.035→4.176s wait4-reported CPU,1004.7→1004.5MiB sampled family RSS. All captured protocol frames and CLI argv/output were counted; actual model usage and the larger audit task's context/retries were not measured. No speedup or true-cold claim.