mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Open
opened 2026-10-31 01:09:28 +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#5792
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/3513
Author: @NIU-123370
Created: 10/14/2026
Status: 🔄 Open
Base:
main← Head:fix/worker-inventory-uncertainty📝 Commits (2)
b49396dfix(browser): keep an undecodable Electron worker target uncertain6d1b0c5test(browser): keep the Electron worker fixture URL escaped📊 Changes
3 files changed (+224 additions, -14 deletions)
View changed files
➕
src/browser/CdpElectronWorkers.test.ts(+148 -0)📝
src/browser/CdpElectronWorkers.ts(+23 -7)📝
src/browser/CdpPageCaptureWorkers.test.ts(+53 -7)📄 Description
Summary
Refs #3378.
This branch was
dirtyagainst main because the web producer's half of this fixlanded on main in
4cc044be(morluto, co-authored with the #3850/#3901 authors) and is a superset of what this PR
first proposed: it already admits the target type before the non-worker filter. So
src/browser/CdpPageCaptureWorkers.tsis no longer touched here, and the PR nowcarries the remaining producer plus the coverage that main does not have.
inspect-electron-pagestill answeredworkers: []with no unavailable marker and noexclusion whenever a delivered
TargetInforecord could not be read as carrying atype:
src/browser/CdpElectronWorkers.tsdecided it withcdpStringValue(target.type) ?? ""and then!type.includes("worker") continue, so anabsent,
null, numeric or empty discriminator became a definite negative. That is thesame unknown-to-empty collapse baron described for the web producer, at the second
producer, and the shape the reporter of #3378 could not distinguish from "no workers".
Problem and expected behavior
Target.getTargetsreplies{ targetInfos: [{ targetId: "worker-1", url: <file url>, openerId: "electron-page", attached: true }] }with no
type, and the same record withtype: null,type: 42,type: "".the entry is not a worker, so the section cannot be reported as a complete empty
inventory.
invalid_protocol_valueledger forthe
workerssection, a valid worker delivered after it still survives, a deliveredempty array stays a valid empty result, and a decodable non-worker type (
page)stays out of the malformed ledger. All four inventory shapes — missing, malformed,
explicitly empty, valid — remain distinguishable, which is what #3378 and morluto's
audit comment ask for at the producing CDP parser.
Change and scope
src/browser/CdpElectronWorkers.tsadmitRecords, the owner4cc044beadded, instead of aprivate
Array.isArraycheck;invalid_protocol_valuewrites for a non-record entry, a missingtargetIdand a non-booleanattachedare aggregated into one counted write at theend, mirroring the web producer's ledger. Observably the same ledger:
CdpCaptureCompleteness.excludesums counts per(section, reason)andcanonicalExclusionsorders by(section, reason), so neither the entry, itscount, nor its position changes. Arm E2 vs E1 below isolates exactly that.
src/browser/CdpElectronWorkers.test.ts(new, 10 cases) — the same altitude as main'sown
CdpPageCaptureWorkers.test.ts: valid-empty control, missing/non-arrayinventory, the four undecodable discriminator shapes, the decodable non-worker
control, and malformed entries beside a valid survivor.
src/browser/CdpPageCaptureWorkers.test.ts(+5 cases) — the four discriminator shapesplus the non-worker control for the web producer.
4cc044beimplements that guardand nothing in the repository pins it; arms W1/W3 show these five cases are precisely
what fails if the guard is removed.
tests/boundary/browser/cdpElectronProvider.test.tsalready carries an inventory-level Electron table
(
["workers", "Target.getTargets", () => ({ targetInfos: null })]) and the per-entrydiscriminator belongs next to it. I left that file alone because #4040 and #4529 are
open on it; the successor is one row in that table plus the same four shapes, once
those lanes land. No new
TargetInfoliteral was added anywhere: each producer's filekeeps one builder and the four arms feed through it.
Contract and boundary impact
CdpCaptureCompletenessremains the onlycompleteness owner and
admitRecordsthe only inventory-admission owner; the earliestchanged stage is Electron worker inventory decoding.
boundary, and it follows the single-owner direction in morluto's 2026-10-15 comment
rather than starting a parallel repair.
inspect-electron-pagenow reportsunavailable_sections: ["workers"]plus aninvalid_protocol_valueexclusion for a reply it previously reported as a clean emptyinventory.
decoding only; no provider or platform gate touched.
two such Electron captures as equal on
workersnow see the uncertainty. No retainedfield is renamed or removed.
exactly one
Target.getTargetscall, no new command, no attach.docs/public/product-catalog.json), package, or installationimpact: none.
Expected effects:
Evidence and regression coverage
Base reproduction, measured: running the new Electron file with only
src/browser/CdpElectronWorkers.tsreplaced by theorigin/mainversion gives5 failed | 5 passed (10)(arm E1). Reverting only the discriminator admission whilekeeping the ledger aggregation gives the identical set (arm E2), which is the direct
evidence that the aggregation changes nothing observable and that the discriminator is
the only behavior this PR alters at that producer.
Mutation arms, each actually run against the final two test files, tree restored and
re-verified between arms (every arm was re-run once more after the review revision
6d1b0c5f, same results):9 passed (9)?? ""4 failed | 5 passed (9)1 failed | 8 passed (9)4 failed | 5 passed (9)10 passed (10)origin/mainproducer (base defect)5 failed | 5 passed (10)5 failed | 5 passed (10)1 failed | 9 passed (10)1 failed | 9 passed (10)1 failed | 9 passed (10)6 failed | 4 passed (10)null5 failed | 5 passed (10)admitRecordsreplaced by an inlineArray.isArray10 passed (10)targetId/attachedguards stop counting1 failed | 9 passed (10)3 failed | 7 passed (10)provider_unavailableinstead3 failed | 7 passed (10)E8 is recorded as an equivalent mutation, not hidden:
admitRecordsis literallythat predicate, so adopting the owner is an ownership change and not a behavior change.
The inventory-level behavior it shares is pinned by E10/E11 instead, each of which kills
the three inventory-table cases on its own.
Review revision
6d1b0c5f, taken after the Greptile [P2] on headb49396d5: thefixture built its URL as
file://${fileURLToPath(import.meta.url)}, which discardspercent-encoding. Measured rather than argued — for a real file at
<tmp>/…/p%25x/w#e/worker.js,authorizedElectronFilereturnsundefinedfor there-prefixed string and the resolved path for
pathToFileURL(...).href, so on such acheckout the valid-worker fixtures would have degraded into
out_of_target_scopeandthe survivor cases would fail.
import.meta.urlis already the escaped form. A#-only checkout cannot be used as the experiment because vitest's own moduleresolution fails there first (
Cannot find module), which is why the probe pins theauthorizer directly instead of the whole file.
Remaining proof gaps: the malformed replies are delivered through a stubbed
CdpConnectionat unit altitude, matching how main's ownCdpPageCaptureWorkers.test.tsworks; no real Electron app or live Chrome was made to send an undecodable
type, andthe Electron boundary lane (
verify:electron) was not run. #3378's web symptom isalready fixed on main (
4cc044berefs #3376/#3379/#3850 but not #3378); after this landsboth producers keep the four inventory states apart and the issue can be closed against
the two.
Validation performed
Node 24.18.0, base
5120eb44(main advanced to060eb43b5while the branch was beingrebased;
mergeable = trueat push time).npx vitest run src/browser/CdpElectronWorkers.test.ts src/browser/CdpPageCaptureWorkers.test.ts→
Test Files 2 passed (2),Tests 19 passed (19).npx vitest run src/browser/on this head →38 files / 571 passed; the same commandon an unmodified
origin/maintree →37 files / 556 passed. The delta is exactlythis PR's one new file and 15 new cases, with 0 failures on either side.
npx vitest run tests/boundary/browser/on this head →52 passed | 1 skipped (53 files),666 passed | 6 skipped (672); identical counts on the unmodified trunk tree ⇒ netregression 0 in that lane.
npm run typecheckexit 0 ·npm run lintexit 0(
Checked resolved module boundaries in 2036 source files., and 0 diagnostics namingeither changed file) ·
./node_modules/.bin/oxfmt --checkon the three files →All matched files use the correct format.·git diff --checkclean.npm run verify:test-discovery→Discovered all 1511 test files exactly once.·npm run verify:architecture-guards→Architecture guards passed across 1483 source files.npm run jscpd, one tree with only these three files swapped: trunk5120eb44=2472 clones / 25610 duplicated lines / 3.3443%(3041 files); this head =2478 / 25674 / 3.3518%(3042 files). Not clone-neutral: the patch adds 6 clonegroups and 64 duplicated lines (+0.0074 pp against the 3.5% ceiling). The growth is a
second producer's test file mirroring main's brand-new web-producer test file; I did
not fold the two harnesses into one shared fixture because that would mean editing the
file main landed two days ago, and I would rather ask than presume.
verify:electronand any real Electron/Chrome runtime,check:ci, otherplatforms.
npm run buildwas run only because the boundary lane needsdist/.Compatibility, safety, and release
empty
workersarray for an Electron reply with an undecodable target type now seesthe uncertainty, which is the reported defect.
evidence is protocol-level through the repository's own stubs.
scope, no new retained content; malformed protocol data is disclosed rather than
interpreted.
Author readiness
Human owner: @NIU-123370
Before merge
type(scope): outcome.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.