mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #5797] [Feature] Make WABT command deadlines adjustable with actionable timeout recovery #3512
Closed
opened 2026-10-31 00:41:20 +00:00 by bsakaguchi
·
3 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#3512
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 @gensokyo-dev on GitHub (Oct 21, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/5797
Before submitting
Area
MCP or agent integration
Current limitation
Source-derived on
d672cc23998b6cbb21c485f118595ebfb82fed33: WABT inspection applies a hardcoded 30,000 ms deadline to every version/analysis command (WabtRelease.ts,WabtArtifactProvider.ts). Neither the named MCP input norrea inspect-wasm-artifactoffers a timeout control.WabtFailures.tsprojects this through generic provider-timeout recovery, without identifying whether the budget is adjustable. Extending the MCP client's deadline cannot change this internal budget.Use cases
An agent inspecting a valid module should be able to correct an insufficient command budget from the returned error, rather than guessing a nonexistent parameter, restarting unnecessarily, or repeatedly invoking the same failing request. Frequency on real slow modules: NOT_ENOUGH_INFO; no natural large-module timeout has been measured in this report.
Desired outcome and success criteria
command_timeout_mscontrol shared by CLI/MCP, preserving the 30,000 ms default and existing owned-command supervision.Expected interaction with targets
Read existing files; launch the already-supported caller-supplied WABT tools in private workspaces. No WASM execution, network acquisition, installation, GUI control, or new target authority.
Verification available so far
Source investigation; runtime and agent checks are proposed, not yet claimed passing.
Verification details
Planned: fail-before/pass-after contracts; actual CLI/MCP with upstream WABT 1.0.42 and source-owned modules; bounded delay injection for repeatable deadlines; actual Codex CLI adjusting a small budget and completing the same observation; fixed input/output allowance negative controls; cancellation/cleanup regressions. Record whole agent usage, elapsed/CPU and sampled process-family RSS, with cold/warm and fixture limits explicit.
Alternatives considered
Only changing error prose leaves no supported adjustment. Increasing MCP client timeout alone does not repair the server budget. A launch-environment-only setting unnecessarily requires server restart. Globally removing deadlines or raising safety limits is outside scope.
Possible direction
Own the request budget in the canonical WASM input; pass it to the existing owned-command supervisor. Keep specific recovery at the WABT producing boundary rather than guessing provider controls in generic error projection.
References
#5598 (RepoPrompt comparison and agent trials), #5767/#5768 (WABT configuration diagnostics), #5506 (fixed comparison allowance; separately addressed in current main).
@gensokyo-dev commented on GitHub (Oct 21, 2026):
WABT timeout recovery: executed evidence
Baseline
d672cc23998b6cbb21c485f118595ebfb82fed33; implementation06f075479a56505a1fef509759fab5733fd8878b. Linux x64, Node 24.18.0/npm 11.16.0, Codex CLI 0.161.0,gpt-6.1-sol. Issue #5797 / PR #5798. Selected host surface: onlyinspect_wasm_artifact, explicitly preapproved; not a full-catalog agent qualification.Contract ledger and decisive cases
00 61 73 6d 01 00 00 00; native delay launcher before real WABT, then actual validator/decoder; selected budget versus observed error and original digestresource_constraint,retryable: false; agent stops after one call without inventing a timeout/memory workaroundActual Codex sessions
Nine serial sessions / 14 recorded REA calls, with all raw prompts, JSONL, final answers, stderr,
/usr/bin/timeand reports retained locally./bin/sh <script>rather than the configured executable. Returnedcleanup_incomplete; agent correctly stopped. Raw receipt preserved. The process later exited; no remaining process identity was sampled. One small provider workspace was retained by the fail-closed owner; it was not manually removed or called clean.3–4. Version-stage 5 ms timeout, twice: agent selected 30,000 ms and completed same-file summary.
invalid_request; agent corrected to 30,000 ms and completed same-file summary.The independent verifier checks exact first arguments, all recorded call counts, selected budgets in actual returned profiles, original SHA-256
93a44bbb96c751218e4c00d479e4c14358122a389acca16205b1e4d0dc5f9476, validation, summary coverage, retained parent reference, final Evidence ID, and no target/network execution. Zero unchanged failed REA retries; no observed OOM; no sampled remaining owned process identities. Several model messages reported host-side initial dispatch mistakes before REA received the request; these are preserved and included in whole-session usage, not counted as successful first actions or hidden by the REA-call counter.Executed correctness checks
npm run check,npm run docs:check(5 README checks),npm run build:cached: passed.4821e1e1-b71f-49ab-b0a8-b1e1d0d6324d, verified descendants[].Whole-agent costs and limitations
All nine trials, including failed/blocked/control experiments: 1,239,298 input tokens (1,059,840 cached), 5,566 output tokens; summed session wall 470.563 s, process-family CPU 136.86 s, maximum sampled process-family RSS 1,200.109 MiB (~1.17 GiB). Child identities sampled every 500 ms using PID + start time, including retained/reparented descendants; CPU from
/usr/bin/timefor the client/server/tool family. This RSS sum is not a kernel/cgroup peak: it may double-count shared pages and miss between-sample spikes.Fresh client/server processes; OS file and model prompt caches warm/uncontrolled. No fully cold run. Source builds, fixture preparation, source review, deterministic tests, real-tool verifier and sampler CPU are outside these agent-session totals. Baseline is blocked whereas corrected flow completes: no equivalent-completed-task speedup or token reduction is claimed. All delay behavior is injected by source-owned native launchers before the actual trusted WABT executable, not a naturally slow module or qualification of all WABT/platform behavior. Empty-module trials do not establish large-application analysis performance. No global tool/configuration installation or target execution occurred.
Bounded source audit / remaining work
This is not a claim that every REA timeout/limit has been audited.
analysis_timeout_msper source and semantic selectors; prior #5608 recovery guidance. Summary is delivery only. No new runtime qualification this round.REA_GHIDRA_STARTUP_TIMEOUT_MS, 330,000 ms default; producer guidance explains launch environment, export/close/restart/reopen and client headroom. Not a per-call knob; no new target analysis here.REA_HOPPER_STARTUP_TIMEOUT_MS, 120,000 ms default; configured startup guidance. No macOS qualification this round.analysis_timeout_mson the current tool.publication_timeout_ms. Publication guidance already names that knob. Analysis timeout recovery merits a separate follow-up; publication control must not be suggested for the analysis phase.fixedAllowanceOptionsand several non-retryable corrections, including WASM comparison. These must not be converted to temporary admission retries or configurable heap claims. Source-only check, not repeated large-fixture qualification here.Each follow-up should independently verify its actual advertised controls and preserve partial Evidence/cleanup, rather than adding a generic guessed control map.
@gensokyo-dev commented on GitHub (Oct 21, 2026):
Final timeout/limit recovery evidence — PR #5798
Final candidate:
e9cdf873c58bd32e8f43b69f8a9a6d1ceb50d645(based672cc23998b6cbb21c485f118595ebfb82fed33). This supplements the initial evidence and bounded source audit, not a claim that all providers are audited.Observable result
command_timeout_ms/ CLI--command-timeout-ms, default 30,000 ms. Error messages identify milliseconds, per-command scope, client headroom, fixed safety limits and cleanup-before-retry.previous_errorretains selected budget/recovery without a second command-output copy. Cleanup remains non-retryable. Two fail-before/pass-after guards plus actual 100 ms combined-failure agent trials verify it.get_evidence_bundlewith exact Evidence-ID filtering anddetail: summary, recovered the correct original digest, and reported the validation blocker without repeating analysis or increasing the budget. It did not fetch the whole report.Executed checks
97c404d6-57f3-40ae-8e35-a67b2f060c83, verified descendants[]. Earlier 51-case runs are retained but are not 153 distinct scenarios.npm run check,npm run docs:check(5 README cases) and runtime build passed. During iteration, static checks caught an overlong test helper; the validation-cleanup assertions were moved to their owning helper, rather than suppressing the guard. A pair of concurrent artifact-check attempts correctly refused the checkout lock, then ran serially successfully.Actual-agent coverage and measured costs
13 serial Codex sessions / 20 recorded REA calls: seven completed summaries; five deliberate/legitimate blockers (old fixed timeout, immutable input allowance, two cleanup-uncertainty cases, malformed bytes with retained-Evidence read); one initial shell-launcher experiment that exposed a harness identity mismatch and is not a pure-timeout recovery pass. All raw prompts/transcripts/final answers, stderr, time files and independent oracle receipts remain locally under
.cache/budget-recovery-20261021/.Whole-session actual usage: 1,812,606 input tokens, including 1,522,688 cached; 7,699 output tokens. Summed elapsed 644.665 s, child process-family CPU 182.62 s, maximum 500 ms sampled family RSS 1,200.109 MiB (~1.17 GiB). Zero unchanged failed REA retries, no observed OOM, zero sampled remaining owned process identities. Host-side pre-dispatch tool mistakes appear in several transcripts; their usage is included, not called perfect first-action routing.
Costs include failed/blocked/control agent sessions, but exclude fixture preparation, source reviews, builds, deterministic checks, native verifier and sampler CPU. Fresh clients/servers with warm/uncontrolled OS/model caches; no truly cold benchmark. RSS is a sampled process sum (shared pages can be double-counted and spikes missed), not a kernel/cgroup peak. Delays are source-owned native launchers before real WABT, not naturally slow modules or large-app performance. A blocked baseline and a completed corrected task are not equivalent completed workflows: no speedup or token-reduction claim.
No global installation/configuration edits, target execution or network acquisition. Deliberate shell-identity/cleanup controls leave three small provider workspaces retained; they are not claimed cleaned or manually removed. Linux x64 only; no new macOS/Windows, IDA/Ghidra engine or full-catalog qualification. Remaining SQLite/fixed firmware analysis timeout gaps are source-derived follow-ups in the initial audit, not fixes included here.
@gensokyo-dev commented on GitHub (Oct 21, 2026):
Merged #5798 as
a5f982de8dbe4b092cc20ab89d492b7e7028b758—feat(wasm): make command deadlines adjustable with recovery guidance (#5798). #5797 is closed. All 13 touched files match tested final heade9cdf873c58bd32e8f43b69f8a9a6d1ceb50d645; unrelated concurrent main changes are not claimed independently qualified. The actual CLI/MCP timeout/corrected-retry/fixed-input parity smoke passed again after merge.Three independent source review passes completed across the implementation/review fixes; latest final-profile review found no actionable bugs. All actionable automated threads were fixed and resolved, Greptile and static checks succeeded. Admin override used per explicit user authorization after ordinary policy refusal. Human-review attestations remain unchecked; author-readiness failure and still-running code CI are disclosed, not reported green. Full executed evidence, warm-cache/token/resource accounting and remaining qualification gaps: https://github.com/morluto/rea/issues/5797#issuecomment-6309988721.
The squash commit contains
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)for material fail-before/pass-after negative and combined-failure regressions. NoCo-authored-bytrailer was added.Remaining provider timeout/limit recovery is recorded separately in #5808 (source-derived SQLite/firmware gaps and audit criteria). Those providers are not claimed fixed by this PR.