mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 07:47:29 +00:00
Open
opened 2026-11-01 21:11:20 +00:00 by bsakaguchi
·
6 comments
No Branch/Tag specified
main
release-please--branches--main--components--rea-agents
release-please--branches--main--components--rea-agents--release-notes
codex/procedure-reference-stacked
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#6463
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 (Oct 30, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/8176
Before submitting
Decision needed
Can REA report useful, explicitly bounded progress for a shared Kuna project export when the installed version supports it, while preserving the existing atomic export and cancellation semantics?
Context and evidence
REA at
47fa6ab3795d547207001ffb01643c0aa39dcad8runs the ordinary project export without upstream progress flags. Waiting MCP requests receive the REA phase and elapsed time every ten seconds (src/kuna/KunaSessionClient.ts); those messages do not claim a completed-function count.On macOS arm64, I compiled an unexecuted 81-function fixture. With direct official Kuna 1.986
decompile-project --progress --jobs 1, I observed.streamingwhile the process was running, a growingindex.jsonl(23 rows during one sample), and no.cfile at that sample. The process completed with 81 successes and removed.streaming. A direct--streamrun showed a.cfile and 45 index rows before completion. These short runs do not test crash recovery, live-feed failures, multiple waiters, or cross-platform behavior.At the original baseline, Kuna 1.833 was REA's verified release and rejected
--progressas unknown. Its--streamis different: it writes incremental artifacts and rejects--assert; upstream documents ordering and other tradeoffs. REA now recommends 1.986 as its verified release; other releases remain usable but unverified. No REA progress integration was exercised in this experiment.Expected interaction with targets
Read the selected local binary, launch a caller-supplied Kuna process, and observe files inside the owned export staging directory; the exported artifacts remain subject to existing cache publication and cleanup rules. No target execution is proposed.
Boundary details (optional)
Do not equate a progress event with a verified final function or a published export. A missing, malformed, incomplete, or failed feed must not imply completion, and raw feed bytes must be bounded. Consider version/capability discovery and preserve the current elapsed-time fallback for older or unsupported releases. Shared waiters, request cancellation, producer ownership, cleanup, result identity, and MCP timeout behavior all need explicit design.
Options and tradeoffs
Keep the existing elapsed-time messages; use a version-gated progress-only feed when its protocol and version support are verified; or separately consider partial results where useful. Avoid changing to
--streamsolely for a percentage: it changes artifact behavior and can preclude assertions.Verification available so far
I have a prototype or observed results
Success criteria and open questions
If pursued, use real-provider tests for progress, unsupported versions, malformed or missing feed, success and mixed failures; verify shared-waiter cancellation, finalization and cleanup, CLI/MCP behavior and atomic publication. Decide what total/completion claims upstream's feed actually permits.
References
REA provider guide:
github.com/morluto/rea@47fa6ab379/docs/kuna-provider.mdUpstream CLI: https://github.com/Noelo-Lab/kuna/blob/v1.986/docs/cli.md
Follow-up: interrupted progress and shared waiters
On macOS arm64 with real Kuna 1.986, an owned 1,200-function fixture and
--progress, terminating the producer after two live index rows left.streamingand a partial index, with no C file. Retrying a copy completed; its index, C, header and assembly digests matched a separate fresh export. This is one controlled timing, not a general upstream resume guarantee.On REA main
e5e0dc554, a controlled launcher added--progressto the real Kuna command. In a public compact-schema stdio MCP control, cancellation after the live index appeared was followed by successful close, empty owned staging and no published project; a fresh open and assembly request succeeded. In a separate shared-export control, two assembly requests were active, the survivor was still pending when the first was canceled, and one launched project process completed the survivor's request; close left one published project and empty staging. The fixture digest was unchanged. This does not test REA consuming or displaying the upstream progress feed, a naturally occurring cancellation, malformed feed, or cancellation during upstream finalization.Kuna 1.989 feed consistency control
On macOS arm64 with Kuna 1.989, a source-built 901-function Mach-O (SHA-256
e0c639fbb540ab04c008b0d0c81ec86ffff18ce35e6809901c4e5c8b884fcc46, never executed) completed a directdecompile-project --progress --jobs 1run. During one live sample,.streamingread both before and afterindex.jsonlreported schema 1,phase: decompiling,functions_total: 901,functions_done: 0, andfunctions_failed: 0, while the index read between those marker reads contained 696 lines. Rows had null C offsets and lengths. At completion the index had 901 rows and.streaminghad been removed. This is one short run and sequential file reads, not an atomic snapshot or a general timing bound; it demonstrates that simultaneously visible marker counters and index rows must not be combined as one consistent count.On the same fixture,
--stream --jobs 1exposed 481 rows in one sample, with non-null C offsets and lengths; its marker still reported zero completed in that sample. The final.cand.asmbytes differed from the plain export. In contrast, the final.cand.asmbytes of the progress-only and plain--jobs 1exports matched. These are observed byte comparisons, not a claim that all results or environments match. The target digest was unchanged. No REA progress-feed integration was tested in this control.For a future REA design, report any marker counters as last-observed upstream values with their own timestamp and treat index rows as a separately bounded feed; neither proves final publication, successful function analysis, or a consistent cross-file snapshot. Continue to distinguish the existing shared export's final verified outcome from intermediate progress.
@morluto commented on GitHub (Oct 30, 2026):
Follow-up on the PR #8187 branch, macOS arm64, Kuna 1.986, MCP stdio: I built an unexecuted 1,200-function Mach-O and issued two concurrent
procedure_assemblycalls against a cold, isolated cache. With the normal executable, both completed from the same published export before the 10-second wait notification or the scheduled cancellation; this does not test cancellation during a slow natural export.For a controlled wait, I used a caller-owned launcher that sleeps 12 seconds before executing the same real Kuna
decompile-projectcommand, forwarding all other commands directly. Canceling one call after three seconds produced a client cancellation; the other caller received REA'skuna_exportelapsed-wait notification at ten seconds and then successfully returned project-export assembly after the real Kuna command completed. A later call and a separate reopened MCP server read the same export key. Both closes succeeded, the target SHA-256 was unchanged, and the isolated staging directory was empty after completion. The delay is injected before Kuna runs: this is not evidence of native per-function progress, a naturally slow export, or cancellation during final publication/cleanup. The notice'sdecompilingphase described REA's build phase during the artificial pre-launch delay; it should not be read as a measured count or proof of current worker activity.The original issue text describes the earlier baseline: #8187 proposes 1.986 as the verified release but remains open. Given the requested preference to avoid compatibility code, a future design need not assume maintaining separate per-version progress paths: consider the selected verified baseline and explicit unverified-release behavior first, while preserving the current atomic publication and honest unknowns. The existing wait notice is useful today; the remaining question is whether bounded upstream progress supplies enough additional value to justify integrating and verifying its feed.
@morluto commented on GitHub (Oct 30, 2026):
A follow-up controlled MCP trace gives a concrete existing alternative to a new progress operation. While the same artificial pre-launch delay held a cold export open,
procedure_pseudo_codefor a different function completed through Kuna's single-function path. Its Evidence saidraw_result.source.kind: "single-function"and recordedproject_export: {state: "building", phase: "decompiling", inventory_functions: 1200}, plus the limitation that a later export can produce different text. The 1,200 count is the inventory, not the number decompiled; the recorded export state is an observation at that call, not a live status subscription. In this same interval,binary_session.analysis_activitywas explicitlynot_observed, notidle.This does not show upstream progress integration or a natural long-running Kuna export. It suggests any improvement should assess the existing Evidence and wait notification together, avoid making a caller run an otherwise unwanted decompile just to obtain status, and keep inventory size, worker activity, completion, publication, and Evidence time distinct. #8187's 1.986 baseline remains an open PR.
@morluto commented on GitHub (Oct 30, 2026):
Real-provider sealing-boundary follow-up (macOS arm64, Kuna 1.986, PR #8187 branch): using the production
KunaProjectCachecallback as the synchronization point, I observedphase: sealingonly after real Kuna had returned and its.c,.h,.asm, README and inventory files existed in isolated staging. No target was executed.cache.settled(key), no project was published and staging was empty; a subsequent build succeeded and published normally.This is a real Kuna export with cancellation injected at REA's production-boundary callback, not a public MCP finalization-cancellation test and not a cancellation during manifest rename or staging retirement. At the instant the direct cache wait returned, staging still existed; it disappeared only after settlement in the sole-waiter case. The generic projected cancellation contained
cleanup: completeat that instant. Whether that field describes only the departed waiter or could mislead an external caller about the still-owned background export needs a public-path/contract check; this observation alone does not establish an MCP bug. A first harness attempt failed on its own result-summary code after the control; two corrected fresh-cache runs produced the observations above.@morluto commented on GitHub (Oct 30, 2026):
A direct Kuna 1.986 assertion-file control is relevant to any future progress integration: serial
decompile-project --assert @file --progress --jobs 1succeeded on one fixture, and the final C/header/assembly digests matched the corresponding serial non-progress assertion export. The same release explicitly rejected--assertwith--streamand with--jobs 2. A nonfatal rejected assertion was reported on stderr, and strict mode exited nonzero while still writing artifacts. This is not REA integration or a general guarantee; #8166 records the full assertion experiment.@morluto commented on GitHub (Oct 31, 2026):
Looping in @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0 for visibility on the Ghidra, Kuna, and REA tool-design investigation.
@morluto commented on GitHub (Oct 31, 2026):
Direct Kuna 1.986 follow-up on macOS arm64, using the existing unexecuted three-function Mach-O and
decompile-project --progress --jobs 2 --max-fn-seconds 1. A normal control produced three bodies and no failures. A second run deliberately injected the upstream test-only worker stall for_adjust; this is fault instrumentation, not a natural timeout or a frequency claim.In the injected run, sampled live
index.jsonlrows first reported_mainand_evaluatewithseq0 and 1, nullc_offset/c_len, and no C file. The third row then reported_adjustwith a watchdog error, still before the C file appeared. Later, while.streamingstill existed, the index was rewritten in final address order:_adjustbecameseq0 and the rows acquired file spans. The failed row's span covered an error comment, not a decompiled body. The process exited 0 and stderr reported3/3 functions (100.0%), while final output said two succeeded and one failed. The source digest stayed unchanged.For any REA progress design, these observations mean a completed-attempt count should not be presented as successful bodies;
seqin the live feed is not a stable identity across finalization; null spans and the marker do not establish published artifacts; and nonzero final spans alone do not establish a body. The final error field and ordinary REA cache verification remain authoritative for their respective facts. This is a small sampled run of one version/fixture, not proof of every ordering, protocol behavior, or an upstream defect.