mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #2180] fix(cli): rejected browser and Inspector inputs lose correction details #726
Closed
opened 2026-10-15 18:27:43 +00:00 by bsakaguchi
·
1 comment
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#726
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 12, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/2180
Summary
Six public CLI commands reject supplied arguments through their named input contracts, then return a generic
invalid_requesterror without the contract's field issues. The output tells callers to "Correct the listed arguments and retry", but lists no arguments or constraints. This affects post-admission validation inlist-browser-targets,inspect-web-page,analyze-web-bundle,observe-web-session,list-javascript-runtime-targetsandobserve-javascript-runtime. The rejection code and nonzero exit status are correct; the failure is missing correction guidance.Affected area
Area: CLI. Interface: CLI JSON output. Earliest failing stage: request validation, when a handler discards the named contract's issue metadata. Target context: malformed endpoint strings or empty target identifiers, with no browser, Inspector process or native provider required.
Runtime or environment
Independently reproduced on a source-built checkout at
c22111eca2and a separately installed publishedrea-agents6.4.0 package. Both ran on measured Node.js 24.21.0, macOS arm64. The runtime satisfies the package's supported Node range; it is not the checkout's exact contributor pin. The source runtime had already been built withnpm run build:cached; the released package used its shipped runtime. The behavior matched in both builds.Steps to reproduce
Use the installed package's
reacommand, or runnode scripts/rea.mjsin the built checkout in place ofrea. Each command below was executed against both builds, exited 1 and returned an error withoutdetails:The malformed endpoints and empty identifiers fail input validation before target access. No endpoint needs to be listening. Use an isolated working directory and home if repeating the commands.
Execute the sibling CLI controls:
Both controls exit 1 and return populated
details.issues, with eight and three entries respectively. For the parser-admission control, runrea list-browser-targets --jsonwithout its endpoint. It returns the framework'sVALIDATION_ERRORand namesendpointinfieldErrors. That initial parser failure is a different path from this defect.For a public MCP control, start the same package with
rea --mcpand calllist_browser_targetswith{"cdp_endpoint":"not a url"}. The observed text isInput validation error: Invalid arguments for tool list_browser_targets: cdp_endpoint: Invalid CDP endpoint URL. Calllist_javascript_runtime_targetswith{"inspector_endpoint":""}to observeinspector_endpoint: Too small: expected string to have >=1 characters. These stdio controls ran against both builds without target access.Expected behavior
When a supplied CLI value passes positional parsing but fails the named input contract, the typed invalid-input result should retain the safe correction metadata that the contract and shared projector already provide. Its
details.issuesshould identify the rejected field and reason, with an authored message or numeric bound where applicable. Preserve the existing failure classification, retryability and nonzero exit status. Correction metadata must not echo raw rejected values.For the malformed endpoint cases, the canonical safe projection produces
{"path":["cdp_endpoint"],"reason":"invalid_value","message":"Invalid CDP endpoint URL"}. For the empty target identifiers it produces{"path":["target_id"],"reason":"out_of_range","minimum":1}. The empty Inspector endpoint produces the same range issue atinspector_endpoint. These facts were independently observed from each build's named contract and shared projection, rather than inferred from a proposed fix.Actual behavior
The four browser commands return this body, without any
detailskey:The two Inspector commands return the same fields with
"error":"JavaScript runtime observation failed". All six exit 1. The response gives neither the field that failed nor its constraint, although those issues exist at the handler's validation boundary.Public MCP named the field in five of the six corresponding test cases. For
inspect_web_pagewith an emptytarget_id, it returned onlyInput validation error: Invalid arguments for tool inspect_web_page: Invalid input. That MCP case is not evidence of field-specific parity; the canonical projection and sibling CLI controls establish the correction metadata for it.Evidence
AGENTS.md, Architecture and Cleanup, requires preservation of meaningful failure reasons and named contract binding;src/domain/inputIssueProjection.ts:7and:23define the standard retained, safe correction metadata;src/domain/analysisErrorProjection.ts:268projects nonempty issues;src/domain/analysisErrorPresentation.ts:104supplies the authored remediation.src/contracts/browserToolContracts.ts:132,:149,:167and:190, andsrc/contracts/javascript/javascriptRuntimeObservationToolContracts.ts, bind the applicable named schemas.tests/boundary/cli/scenarioCliInputDiagnostics.test.ts:15and:47assert issue coordinates on sibling CLI failures.src/cli/browserCommands.ts:55,:93,:131and:162discard the parse issues when constructing the error;src/cliJavaScriptRuntimeCommands.ts:53and:82call the no-issues helper at:97.src/domain/analysisErrorCore.ts:53defaults the issue list to empty. The corresponding shippeddistimplementations have the same constructions, and the released dispatcher's output reproduces the failure.Execution establishes the returned CLI/MCP diagnostics, canonical correction metadata and process exit statuses. Source inspection establishes the adapter's loss of issues and the validation-before-target-access call path. Only invalid-input workflows were exercised; no valid provider observation is claimed. The malformed rejected endpoint value did not appear in CLI, canonical projection or MCP output in the tested cases.
Related issue 1421 concerns a repaired unmatched-union issue in the shared projector. It is reference-only: here the canonical projection already retains the issues, while the six CLI handlers never supply them to the typed error.
Restoration check
Repeat all six commands. Each should still reject the same input with
invalid_request,invalid_input, retryability and exit 1, while returning a nonempty safe issue list with the corresponding field, reason and authored message or minimum described above. Accept a correctly mapped CLI argument name or canonical field name that lets the caller identify the argument. Do not require every issue to contain anexpectedfield; the nonempty constraints useminimum.The screenshot and scenario controls should retain their existing issue metadata, and omitted positional input should retain the framework's parser diagnostic. Check that the malformed rejected value remains absent from correction output. Advertised-schema constraints and valid provider execution are separate properties; restoring this diagnostic contract must not depend on changing input admission or on acquiring a target. The implementation remains open.
Triage assessment
@morluto commented on GitHub (Oct 12, 2026):
Consolidation update: #2230 remains the canonical earlier contribution. Its six requested CLI diagnostics paths passed review, and the adjacent browser fixes from #2247 are offered in https://github.com/369Apps/rea/pull/1 against the original author branch because maintainer edits are disabled. The exact contribution head passes 16 public CLI tests and full source checks. #2247 remains open until integration. Keeping this issue open for the canonical PR's merge.