mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #5105] [Bug] Setup advertises Kuna for deep analysis after its cache check fails #3142
Closed
opened 2026-10-31 00:37:07 +00:00 by bsakaguchi
·
8 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#3142
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 18, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/5105
Before submitting
Area
Provider or capability discovery
Observed behavior
A mocked-boundary reproduction with a synthetic Kuna version executable and a real regular file as the configured cache root returns
available: truedespitecache.ok: falseandopen_options_invalid. Setup retainsavailableProviders: ["kuna"]; when its selected readiness scope succeeds, its interactive renderer printsDeep analysis: KunaunderWhat you can do now.The real provider-scoped doctor workflow correctly returns
healthy: false. The defect is the availability/setup projection. No real Kuna analysis or CLI subprocess was executed.Reproduction
Executed on macOS from the source checkout with locked dependencies already installed. Save the following as
$WORK/probe.mts, where$WORKis an isolated writable directory outside the checkout. It uses existing recording-host fixtures, actual application workflows, and the actual renderer. It performs no setup mutations.From the checkout root:
The assertions passed. Both the blocked-cache case and writable-directory control were exercised; the control changes the cache check and provider-scoped health to success.
Expected behavior
Exclude a provider with a known unusable required cache from the ready deep-analysis summary, or explicitly separate installed-engine discovery from usable-provider readiness in the exposed fields.
The expectation follows from the renderer's actual ready-capability use of
availableProvidersand Kuna's own unusable-cache diagnosis and remediation. IDA already gates availability on required workspace checks.Impact and scope
Callers using simplified provider availability, including setup's ready summary, receive an incorrect deep-analysis recommendation for this bounded configuration error. The detailed cache check remains actionable, and explicitly scoped doctor reports unhealthy. Choosing a writable cache directory cleared the check failure in the control. No data loss, real analysis failure, or user-impact frequency was measured.
REA version
Source revision
3537e58c1ab29309f06eabf50bc52adba9817a0c; package version 6.7.0. No installed REA version queried.Runtime and platform
Node v26.12.0; macOS 27.0.1; arm64. Synthetic executable prints
kuna 1.833; no real Kuna installation used. Other platforms were not exercised.Target and artifact context
No binary target. A harmless version-printing shell script, one regular cache-path file, and one writable-directory control. Doctor host discovery and setup host ports are synthetic; cache checks, version probing, doctor scope evaluation, setup projection, and result rendering execute actual source.
Interface
Package or setup
Earliest failure stage
Setup or provider admission
Relevant output or evidence
Observed mocked-boundary output, shortened to relevant fields:
Source: Kuna inspection sets availability before the cache result; setup filters only by availability; renderer directly maps the resulting providers.
Typed outcome or recovery expected
Expose Kuna as unavailable/not ready for analysis while its required cache check fails, retaining the existing cache remediation and any independently valid registration settings.
Analysis or suspected cause
Source-derived cause: installation success fixes
availableto true; the later failed cache check never changes it. Setup projects that flag directly. Setup's scoped health can legitimately ignore an unselected provider, but its deep-analysis summary still consumes that provider's incorrect availability.Additional context
The relevant Kuna doctor, setup projection, and renderer files are unchanged between the 6.7.0 source tag and the tested main revision. This is SOURCE-ONLY release coverage; no stable-release runtime was executed. NOT_ENOUGH_INFO: first affected release and real-engine behavior were not established. Existing reports about Kuna doctor documentation, cancellation/lifecycle work, and native prerequisite checks do not cover this trigger and result.
@XinwangTao commented on GitHub (Oct 19, 2026):
Confirmed — setup advertises availability without readiness: Kuna shows up under "What you can do now" even when cache.ok is false and open_options are invalid, which sets users up for a broken deep-analysis attempt right after setup. The doctor correctly reports healthy: false, so the projection is what's wrong.
I'd make the setup readiness gate consume the cache/workspace check the same way doctor does (instead of filtering only on availability), and treat cache failure as a remediation hint in the renderer rather than a ready provider — matching the unusable-cache diagnosis path.
@akushonkamen commented on GitHub (Oct 19, 2026):
Taking this one — the fix is in
Setup.summarizeDoctor's availability projection (currently filters onavailableonly), tightening it to require the provider's cache/readiness check to pass, with tests covering the cache-failed vs cache-ok cases. Will push a branch shortly.@akushonkamen commented on GitHub (Oct 19, 2026):
Fixed on branch (fork: akushonkamen/rea).
Root cause:
summarizeDoctorinsrc/application/Setup.tsprojectedavailableProvidersby filtering provider inspections onavailablealone (src/application/Setup.ts:573-580), never consuming the inspection'schecks. So when Kuna's cache check failed (ok: false,open_options_invalid), setup still advertisedDeep analysis: Kunaeven though the provider-scoped doctor correctly reportshealthy: false.Fix: tighten the projection predicate to
available && checks.every(({ ok }) => ok), matching how doctor aggregates provider health (providerDoctorChecksinsrc/application/DoctorDiagnostics.ts:298). Hopper's existingstartsWith("hopper")branch is untouched; providers with no failing checks behave exactly as before.Tests (all local, CPU-only):
src/application/Setup.recovery.test.tsreproduce the issue viaFakeSetupHost.providerInspections— cache-failed →availableProvidersmust not includekuna; cache-ok → still advertised. Red run: 1 failed / 13 passed before the fix.npx vitest run src/application/Setup.planning.test.ts src/application/Setup.recovery.test.ts tests/boundary/providers/kuna/kunaDoctor.test.ts tests/boundary/cli/cliSetup.test.ts→ 58 passed.npx vitest run --project boundary→ exit 0 (no failures).npm run check:fast(typecheck + lint) → pass.Note: I have not opened a PR for this — a human maintainer needs to fill the Author readiness checklist. The branch is ready whenever someone picks it up.
@akushonkamen commented on GitHub (Oct 19, 2026):
Correction to my earlier progress comment: shell escaping dropped the branch name. The fix branch is fix/5105-kuna-readiness-projection on fork akushonkamen/rea — see https://github.com/akushonkamen/rea/commits/fix/5105-kuna-readiness-projection — commit b17eb3585, based on morluto/rea@0e62094b6.
@BaaRai commented on GitHub (Oct 20, 2026):
Thank you akushonkamen, the diagnosis is right and the fix is the correct shape.
I verified it independently on 8a2e5b2d9 (the branch head has moved past the b17eb3585 named in the earlier comment):
summarizeDoctorfiltersproviderInspectionsonavailablealone, never consumingchecks, while the hopper branch in the same projection requires every check to pass. AndinspectKunaProviderreturnsavailable: truewhenever the installation resolves, with the cache check appended separately (src/kuna/KunaDoctor.ts), so a failed cache root lands exactly in that gap. The provider-scoped doctor'shealthy: falsecomes from the checks, which is why the two disagreed.GhidraInstallationreturnsunavailablewhenever any check failed and the doctor mirrorsnative_authorityintoavailable; IDA computesavailable: valid && workspaceChecks.every(({ ok }) => ok); JADX reports available exactly when its single configuration check is ok. Soavailable && checks.every(ok)is a no-op for those three and matches how hopper is already treated.Setup.recoverytests pass 14/14 here (Node 24, Windows), and the setup acceptance suite gives identical results on your head and on your base commit on this box, so nothing new surfaces from the change.One FYI: #5565 touches the neighboring Kuna doctor path (rejecting a dangling cache root link). The two changes look compositional rather than conflicting, but worth a glance when both are in review.
Looking forward to the PR.
@CassieFox23 commented on GitHub (Oct 20, 2026):
TL;DR: This looks fixed on main. Setup no longer lists Kuna when its cache check fails. Closing is the maintainers' call.
I checked main
1629266e3(Linux, Node 24.18.0). The fix isf5d1012fa.I used a fake Kuna version script and a regular file as the cache folder. The Kuna scan still says
available: true. But the cache check saysok: falsewithopen_options_invalid. Setup now lists no providers, and the "What you can do now" screen has no "Deep analysis" line. With an empty folder as the cache, setup lists Kuna and shows "Deep analysis: Kuna".Not run
rea setupcommand. It has no provider flag.Thanks, coygeek, for the clear report.
Commands
Exit 0. Blocked cache:
{"available":true,"checks":[{"name":"installation","ok":true},{"name":"cache","ok":false,"code":"open_options_invalid"}],"status":"ready","availableProviders":[]}Ready cache:
{"available":true,"checks":[{"name":"installation","ok":true},{"name":"cache","ok":true}],"status":"ready","availableProviders":["kuna"]}Test setup
1629266e3🤖 Generated with Claude Code (Sonnet 5.5, verified by Opus 5.5) 🦊
@XinwangTao commented on GitHub (Oct 21, 2026):
Thanks for the verification on main. This matches the intended fix direction: setup now requires the cache/readiness check to pass (available && checks.every(ok)), not just availability, so the "What you can do now" screen no longer promises Kuna deep analysis when the cache root is unusable. Closing as completed is right — the projection and the doctor now agree on the unhealthy state.
@XinwangTao commented on GitHub (Oct 21, 2026):
Thanks for the verification on main. This matches the intended fix direction: setup now requires the cache/readiness check to pass (available && checks.every(ok)), not just availability, so the "What you can do now" screen no longer promises Kuna deep analysis when the cache root is unusable. Closing as completed is right — the projection and the doctor now agree on the unhealthy state.