mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Open
opened 2026-11-03 12:24:59 +00:00 by bsakaguchi
·
0 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#7543
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 (Nov 3, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/8781
Before submitting
Decision needed
Should the one-shot
trace-native-valuesCLI expose the existing selected analysis snapshot workflow, so a caller can reuse a prior analysis and export the exact source Evidence cited by the trace?Context and evidence
On macOS arm64, Node 24.22.1 and Ghidra 12.1.4, a source-built, unexecuted Mach-O was first opened through MCP,
_evaluatewas analyzed, and the session was closed withsnapshot_path. Reopening that target and snapshot through real MCP and callingtrace_native_valuesreused the original function Evidence ID and reported that the function observation came from the snapshot. The exported session bundle contained all source IDs cited by the returned page, in both compact and full schema profiles. The fixture SHA-256b814f3cc4226f9fe3788dedf8a14f869ca45339c5f49fc2a7709eddd2df0bd6bremained unchanged.The equivalent one-shot
rea trace-native-values <target> _evaluate --provider ghidra --snapshot <snapshot> --format jsonexits 1 withUnknown flag: --snapshot; its help does not advertise that flag. This was observed against a checkout containing main8c857ce56plus unrelated feature-trace-view changes, and against an isolated combination of #8297095e8f394and #8384a20c186eb. By contrast,rea trace --helpadvertises a snapshot option. The CLI behavior is an unsupported capability, not a claim that it promises snapshot support. The MCP replay workaround is available today.In the same combined control with Kuna 1.989, MCP returned a new resolvable source ID and no snapshot-replay limitation; the separately recorded Kuna source ID was not reused. This does not establish that Kuna replayed that observation. Provider-specific caching and snapshot applicability require their own verification.
Expected interaction with targets
Read the selected target and snapshot; launch the explicitly selected analysis provider where needed; write the selected snapshot or Evidence bundle only under the existing explicit CLI options and their overwrite rules. No target execution or mutation proposed.
Boundary details
Preserve the caller's target, provider and snapshot selection. Reuse existing profile/identity validation and Evidence ownership; retain original source IDs on replay. Preserve typed errors, cleanup and publication semantics. Old snapshots and incompatible profiles must not be silently treated as fresh analysis.
Options and tradeoffs
Consider reusing the existing CLI snapshot selection and direct-analysis lifecycle, or document the MCP workflow if supporting one-shot replay is undesirable. #8297 addresses exporting source closure but its user-facing CLI currently has no snapshot selection; direct-analysis callback tests alone do not show that callers can select a snapshot through this command.
Verification available so far
I have observed results on one self-built Mach-O and two providers. The CLI refusal and Ghidra MCP source identity were exercised; a CLI snapshot implementation, cancellation/cleanup, snapshot write failures and other hosts remain unverified.
Success criteria and open questions
Check fresh and replayed observations, mixed cached/live source IDs, snapshot profile mismatch, close and publication failures, and offline bundle source resolution. Determine when an explicit snapshot should be updated and how that interacts with the caller-selected output path.
References
Related: #8282 (cached trace source identity), #8285 and #8297 (one-shot Evidence export), #8384 (source retention).
cc @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0
Isolated option experiment
In the uncommitted combination of #8297
095e8f394and #8384a20c186eb, I addedsnapshot: snapshotSelectionOptionto this CLI command, letting its existingdirectAnalysisOptionsFromClipass the caller's selection to the shared lifecycle. With real Ghidra 12.1.4 and the same source-built fixture, the CLI summary plus--evidence_outputsucceeded; its saved trace linked the original snapshot function Evidence ID, its two linked source records were in the bundle, and the trace disclosed snapshot replay. The target SHA-256 remained unchanged.A separate target with a different digest, selected against the same snapshot, returned
evidence_integrity_mismatch; the selected snapshot's SHA-256 remained unchanged. This is one non-shipped prototype based on two unmerged PRs, not a claim that adding the option independently fixes source retention or CLI export. I did not exercise concurrent updates, cleanup failures, cancellation, output-path collisions, or other providers in this experiment.Additional one-shot prototype controls
In the same isolated combination with the temporary snapshot option, a real Kuna 1.989 CLI run using its selected snapshot exported a trace with one linked function source and the explicit no-def-use unknown; the source was present in the bundle. It did not report a snapshot replay limitation, so this is not evidence of Kuna replay. A repeated Ghidra CLI run also exported both linked function records and disclosed a snapshot-loaded function observation. The unexecuted target digest remained unchanged.
For a separate Ghidra control I copied the selected snapshot to a test-owned file, then used that same path for
--snapshotand--evidence_output. The CLI returnedinvalid_requestsaying the Evidence file already exists, with the completed trace indetails.partial_observation. The test-owned snapshot's SHA-256 stayed unchanged and its embedded bundle contained both linked source IDs. The error did not itself include those source records or explain how to recover them from the snapshot. This is one path-collision control on the unmerged prototype; it does not prove all publication failures preserve the snapshot or source closure, or that an agent can recover sources without knowing the snapshot format.Follow-up: failure handoff in a newer combined prototype
A newer isolated combination of #8786 (
e870ea43a, based on #8785), #8384 (a20c186eb), and #8297 (095e8f394), with the same local one-line--snapshotoption, changes the collision result above. On macOS arm64 with real Ghidra 12.1.4 and the same unexecuted Mach-O (SHA-256b814f3cc4226f9fe3788dedf8a14f869ca45339c5f49fc2a7709eddd2df0bd6b), a fresh shared snapshot/Evidence output path producedinvalid_requestbecause the snapshot had just been written and the Evidence publisher will not overwrite it. The error now includes the completed trace andsource_closurewithpublication: not_published,complete: true, and both source records named by the trace. Thus, the earlier missing-closure result describes the older prototype, not this newer combination. The caller still needs to choose a separate bundle destination.Re-running with the newly created snapshot and a separate output path succeeded and exported the same trace Evidence ID with both referenced source records in the bundle. This is one Ghidra collision and replay control on an unmerged experimental combination; it does not establish behavior for all cleanup, cancellation or publication failures, other providers, or platforms. The target digest stayed unchanged.
Snapshot publication failure still loses captured sources
On the same newer combined prototype, I selected a snapshot path under a nonexistent parent directory and a separate Evidence output path. Real Ghidra completed the trace, then snapshot writing failed with
invalid_request. The response retained the trace and explicitly reportedsource_closure.complete: false, twonot_capturedsource IDs, and the need to rerun; no Evidence bundle was published. The target remained unexecuted. This is a distinct boundary from the same-path collision above.Source inspection suggests the session's
onEvidenceBundlecallback runs only after successful snapshot publication, and the CLI's failure branch does not supply captured source records to delivery. The session had produced the trace's source records, but this experiment does not establish which failure and cleanup stages can safely export them or how to preserve resource ownership under cancellation. Verify those paths before selecting a fix; do not treat the honest incomplete-closure response as successful offline handoff.Experimental recovery before snapshot publication
An uncommitted modification to the newer combined prototype captures the session Evidence bundle after the completed trace is recorded but before snapshot writing, then selects the trace's transitive source closure for failure delivery. On the same real Ghidra missing-parent control, the original
invalid_requestandpublication: not_publishedremain, whilesource_closure.complete: trueand both cited source records are returned inline. Seven focused CLI-boundary tests passed, including a synthetic session snapshot-write failure and a failure handoff that excludes unrelated session records. The provider fixture and real Ghidra target were not executed.This is an experiment, not a proposed integration or a complete fix: it depends on unmerged work, has not been verified through cancellation or cleanup failure, and the prototype currently falls back to no captured records if authenticated closure resolution fails. Passing the entire session bundle to the existing failure formatter is incorrect: that formatter also includes supplied unrelated records. Preserve partial authenticated sources without exposing unrelated history before considering the design complete.
Follow-up: partial sources and final-close controls
The local experiment now supplies session records as a lookup inventory to the existing bounded failure-closure owner, distinct from records explicitly selected as sources. A focused synthetic CLI case with one available source, one missing transitive source, and unrelated session history returns the available source, reports the missing ID as
not_captured, and excludes the unrelated record. Existing explicitly selected but unlinked source behavior is preserved. The experiment's ten CLI-boundary tests pass, andcheck:ci:fastpasses.Synthetic production-session final-close controls also retain the source when cancellation or a simulated cleanup error occurs; they do not establish recovery from an actual still-owned resource or every finalization stage. On the same macOS arm64 fixture, real Ghidra 12.1.4 and Kuna 1.989 missing-parent snapshot failures retained respectively two and one cited source records with
source_closure.complete: truewhile keeping the originalinvalid_requestandpublication: not_published. The executable digest remained unchanged. The experiment remains uncommitted and depends on unmerged PRs; publication, cancellation, cleanup, and provider coverage are not exhaustive.Retained-session cleanup retry control
The experimental production-session test now injects a close failure before the synthetic session releases its active target. It verifies the
cleanup_incompleteresponse retains the owned-resource name and the captured source closure, then retries the session close and verifies the target is released. A separate variant also cancels during the failed close; cleanup remains the reported failure and the source closure remains available. Eleven focused CLI-boundary tests passed. This is a controlled synthetic close failure and retry, not a reproduction of a real Ghidra or Kuna process-cleanup failure; late handshakes and other cleanup stages remain unverified.