mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Open
opened 2026-10-31 01:10:44 +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#5958
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?
📋 Pull Request Information
Original PR: https://github.com/morluto/rea/pull/3899
Author: @jsk1004ha
Created: 10/15/2026
Status: 🔄 Open
Base:
main← Head:feat/firmware-doctor-3758📝 Commits (10+)
c747c58feat(doctor): diagnose firmware integration readiness960fb59fix(doctor): merge main and preserve Kuna diagnostics957b570chore: merge current main into firmware doctor branch6951d3dchore: sync firmware doctor PR with upstream maindd955d0fix(doctor): preserve firmware diagnostics through upstream lifecycle changesa802ee5fix(doctor): gate provider probes and preserve path cancellationb9ad9cafix(doctor): recognize renamed util-linux prlimit binariesfb62071chore(doctor): merge upstream main and retain firmware readiness guidance1b04fabfix(doctor): preserve probe failures and bound process diagnosticsd3e61fbfix(process): separate host inventory output budget📊 Changes
20 files changed (+2924 additions, -108 deletions)
View changed files
📝
docs/firmware-analysis.md(+26 -4)📝
docs/installation.md(+19 -0)📝
src/application/Doctor.lifecycle.test.ts(+340 -4)📝
src/application/Doctor.ts(+75 -22)📝
src/application/DoctorProviderIds.ts(+3 -1)📝
src/application/SetupRegistrationEnvironment.ts(+1 -0)📝
src/cli/setupCommands.ts(+6 -2)📝
src/config/environment.ts(+2 -0)➕
src/config/processTableOutputBudget.test.ts(+64 -0)➕
src/config/processTableOutputBudget.ts(+39 -0)📝
src/doctorRuntime.test.ts(+116 -0)📝
src/doctorRuntime.ts(+68 -23)📝
src/firmware/FirmwareCommand.test.ts(+46 -1)📝
src/firmware/FirmwareCommand.ts(+23 -45)➕
src/firmware/FirmwareConfiguration.ts(+45 -0)➕
src/firmware/FirmwareDoctor.test.ts(+1202 -0)➕
src/firmware/FirmwareDoctor.ts(+595 -0)➕
src/process/ProcessOwnership.outputLimit.test.ts(+198 -0)📝
src/process/ProcessOwnershipObservation.ts(+51 -6)📝
src/setupEnvironment.test.ts(+5 -0)📄 Description
Summary
Fixes #3758. Add firmware integration readiness to
rea doctor, including--provider binwalkand--provider unblob. A selected firmware integrationcan be assessed independently of absent Hopper/Ghidra/IDA/JADX installations.
Problem and expected behavior
Doctor previously omitted the firmware adapters entirely. It now reports Linux
support, caller-supplied executable paths, procps-compatible
ps, util-linuxprlimit, supported versus verified release versions, and Unblob's externalextractor inventory. Unknown or inconsistent dependency output remains unknown.
Missing extractors make readiness unhealthy while preserving that selected
formats may still extract with partial coverage.
Change and scope
The firmware adapter owns the diagnostics. Executable-path validation is shared
with analysis rather than duplicated, and release admission reuses the existing
firmware version policy. Probes use bounded owned-command supervision; incomplete
cleanup is retained, prevents further launches, and is retried during host close.
Setup explicitly omits these diagnostics from its engine selection, preserving
its existing installation and registration behavior.
Only #3758 is addressed. The prerequisite-description work in #3757 / #3761 is
not included. No firmware target is opened or extracted by doctor.
Contract and boundary impact
FirmwareDoctor, shared firmware executable validation, and outer doctor composition.Expected effects:
The launched processes are caller-supplied diagnostic tools and host prerequisite
probes, not firmware targets. These checks are not an aggregate containment claim.
Evidence and regression coverage
The firmware-doctor cases cover invalid/missing executable paths, host
support, optional integrations, scoped readiness, compatible/unsupported/unknown
versions, dependency exit 1, malformed/duplicate/inconsistent reports, missing
ps, invalid limiter, timeout/output/process errors, cleanup retention/retry, and doctor cancellation.Version, dependency and supervision observations in positive tests use a recording
host; these are not real Binwalk/Unblob verification. Path checks use real files.
Existing doctor/runtime/setup tests also pass, including a regression that setup
does not include firmware diagnostics in its engine selection.
Executed CLI
doctor --provider binwalk --jsonanddoctor --provider unblob --jsonboth publish the selected firmware checks andkeep absent native engines informational. Both are unhealthy in this environment:
the firmware tools are unconfigured and Node-launched procps fails with
fatal library error, lookup self. This is reported, not hidden as readiness.Validation performed
Final checks used Node 24.18.0 and npm 11.16.0 as pinned by this checkout:
npm run test:local -- src/firmware/FirmwareDoctor.test.ts src/firmware/FirmwareCommand.test.ts src/firmware/FirmwareVersion.test.ts src/doctorRuntime.test.ts src/application/Doctor.test.ts src/setupEnvironment.test.ts— 84 passed across six files.npm run check— passed, including typechecking, formatting, lint, Knip, metadata and architecture guards; existing nonblocking lint/bundler warnings remain.npm run docs:check— passed, including five README consistency tests.npm run verify:test-discovery— passed, all 1,319 tests discovered exactly once.git diff --check— passed.npm run verify:firmwarewas not run: actual Binwalk/Unblob are not installed,and this runner cannot establish Linux owned-process inspection from Node.
No successful real-engine, macOS, Windows, or firmware-extraction coverage is
claimed. Token usage, CPU, peak process-family memory and cold/warm performance
comparisons were not measured; no performance improvement is claimed.
Compatibility, safety, and release
No breaking input changes or migrations. Firmware tool probes have a five-second
deadline and 64 KiB retained-output budget. The whole-host process table has a
separate configurable byte allowance, documented in the latest follow-up below. Engine probes additionally use the
existing firmware address-space limit, zero regular-file/core output limit, and
five CPU seconds through the selected limiter. No binaries or generated outputs
are committed. Readiness does not guarantee analysis of a particular target.
Author readiness
Human owner: @jsk1004ha
Main synchronization
mainat23f984b1a884baefc3c44e4ab697f6eff61dffb6in957b5700dae6bd0b43c6414b8f8c7cc18dbe84a5, preserving doctor cancellation andFirmwareFileAccess.hashchanges while retaining firmware readiness diagnostics.mainatb0b485abff802b79d238dd24a9fa4abd0713d3eein6951d3d83c91178c4e8f9a3b06770b3f34c7f528. This retains the newly introduced Hopper embedded Python runtime diagnostics, existing Hopper tests, firmware readiness wiring and setup exclusions.GitHub reports no merge conflicts at the second merge commit. The local validation reported above applies to the earlier
fc712b375tree; the current merged tree has not had full local validation. GitHub's new CI and PR-title workflow runs reportaction_requiredand did not execute test jobs; passing validation on the merged tree is not claimed.Review fixes and validation — 2026-10-27
Synchronized with upstream
6749bd090, resolved the doctor/firmware conflicts, preserved invocation identity and shared lifecycle cancellation, and fixed a retained-cleanup self-wait. Unconfigured optional engines no longer cause unnecessary host probes.npm run check:fastand formatting passed.Existing human declarations above are preserved.
Follow-up review fixes
Published
a802ee59514d8a240214f3f2502038887b28a857after validating the fresh review findings:AnalysisCancelledErrorwith the caller's original reason.The focused runtime, firmware doctor, doctor lifecycle, and setup suite passed 64/64 tests. The final tree also passes
npm run check:fast, formatting, and staged diff checks. The three corresponding review threads are resolved; full upstream CI still depends on workflow approval.Review follow-up — 2026-10-29
Fixed the renamed util-linux limiter false negative identified in the latest review (commit
b9ad9caa65e9affc16245743c12163699ebca3f7). util-linux derives the program name in its--versionbanner from the invocation name, soFirmwareDoctornow accepts a name-independentfrom util-linux <version>prefix while still requiring exit 0. The configured absolute invocation path is preserved. A regression covers a differently named limiter and verifies that both Binwalk and Unblob readiness probes proceed; the existing non-util-linux refusal test remains.Validation:
npm run test:local -- src/firmware/FirmwareDoctor.test.ts src/firmware/FirmwareCommand.test.ts src/doctorRuntime.test.ts— 70/70 passed on Linux with Node 24.22.1;npm run check:fastpassed (typecheck and lint);npx oxfmtandgit diff --checkpassed. A directexec -acheck against system util-linux 2.39.3 reproduced the changed banner. The complete suite and actual Binwalk/Unblob execution were not run for this follow-up.Review follow-up — 2026-10-31
Addressed the three outstanding Greptile threads in
1b04fabfd9918b0d89f5212ee40def45c34f6023.unknownfirmware prerequisite with structured limit details. No subsequent firmware command is launched.prlimitArgumentVector, preserving its 1 GiB address-space, zero file/core-output and five CPU-second ceilings and the selected invocation paths. This also removes the inline-limiter architecture-guard finding without changing the already-fixed renamed-limiter admission.Final validation — Linux, Node 24.22.1, npm 11.16.0:
npm run check:fastpassed.npm run check; changed-file formatting andgit diff --checkalso passed after the final limiter cleanup.npm run knip:productionpassed with advisory findings.npm run verify:test-discoverypassed: all 2,838 test files discovered exactly once.Remaining validation limits: the full
npm run checkis not green. The final architecture-guard run still reports pre-existing backtick/NUL-key findings insrc/application/GuidanceAccess.tsandsrc/domain/webCaptureDiff.ts; both files and the guard are unchanged fromfb620711. Whole-project typed lint was terminated by SIGKILL at this runner's memory limit; the scoped typed check above completed successfully. These checks are not reported as full passes. Actual Binwalk/Unblob execution and the complete repository test suite were not run.The new GitHub CI and PR title runs report
action_requiredand await workflow approval;PR readinessreports success. No upstream CI pass or merge is claimed. Existing author-readiness declarations and draft state are preserved.Busy-host regression and main synchronization — 2026-11-05
Addressed the process-table regression in
d3e61fba, which also merges upstreammainat71f680d7c1aa7a45ba0325fe87b104744b0c105f.REA_PROCESS_TABLE_MAX_BYTESselects a positive decimal byte allowance up to Node's single-string limit. Firmware tool probes retain their separate 64 KiB budget.Verification: 477 tests passed and one pre-existing test was skipped across 17 related files. A valid 1,001-row table with REA's row beyond the former 64 KiB cutoff failed before the fix and now passes. Coverage also includes exact byte limits, multibyte stdout/stderr overflow, Linux/Darwin reader branches, invalid configuration, firmware refusal, and setup forwarding.
npm run check:fast, documentation checks (9 tests), test discovery (3,031 files exactly once), formatting andgit diff --checkpass. Fullnpm run checkpassed typecheck, lint, formatting, ordinary Knip, metadata, compilation, architecture guards and production reachability; its repository-wide typed lint was terminated by SIGKILL. A separate typed-lint run over all 18 PR-changed TypeScript files passed with zero errors and 34 warnings. The full check is therefore not claimed green.Executed the compiled Binwalk-scoped doctor CLI with invalid and valid table settings: invalid input is reported as configuration drift; valid input is admitted while the absent firmware engine remains unconfigured. Actual Binwalk/Unblob, native macOS/Windows execution, the full test suite, and aggregate memory/performance measurements were not run. Toolchain: Node 24.22.1 and available npm 11.9.0; pinned npm 11.16.0 was unavailable in the offline cache.
GitHub confirms this head is mergeable. CI, CodeQL, and PR title require maintainer workflow approval. No upstream CI pass or PR merge is claimed. Existing author-readiness declarations and draft state are preserved.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.