mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Closed
opened 2026-10-31 00:57:22 +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#4958
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/1997
Author: @LuisTaffelli
Created: 10/12/2026
Status: ✅ Merged
Merged: 10/13/2026
Merged by: @morluto
Base:
main← Head:test/http3-capture-verification📝 Commits (10+)
20f7637test(http3): add real MITM capture verification lab891c787test(http3): register the optional verification command8b92214fix(http3): preserve the latest verification attempt ownere758846Merge commit 'bd2c202dd9' into test/http3-capture-verification32e763atest(cli): admit the dyld slice fixture on x64 hosts0f7dc00test(http3): verify exact producer TLS connection factse1a413btest(http3): integrate current main and preserve architecture selection095dbb0test(http3): verify readable capture fields against observed bytesf423173chore(http3): sync captured main deadline and source contracts0ca2bd5fix(comparison): recheck historical calls-only changes (#2223)📊 Changes
20 files changed (+2308 additions, -21 deletions)
View changed files
➕
docs/http3-capture-lab.md(+183 -0)📝
package.json(+1 -0)➕
scripts/fixtures/http3-lab-requirements.txt(+10 -0)➕
scripts/fixtures/http3-lab.py(+416 -0)➕
scripts/fixtures/http3-lab.test.py(+56 -0)➕
scripts/fixtures/observe-mitmproxy-http3.py(+64 -0)📝
scripts/lib/clean-linux-hopper-runtime.d.mts(+1 -0)📝
scripts/lib/clean-linux-hopper-runtime.mjs(+4 -3)➕
scripts/lib/http3-capture-assertions.mjs(+243 -0)➕
scripts/lib/http3-capture-assertions.test.mjs(+163 -0)➕
scripts/lib/http3-verifier-lifecycle.mjs(+143 -0)➕
scripts/lib/http3-verifier-lifecycle.test.mjs(+433 -0)➕
scripts/verify-http3-network-captures.mjs(+408 -0)📝
src/domain/android/androidAnalysis.ts(+1 -1)📝
src/domain/functionComparison.test.ts(+3 -1)📝
src/domain/reconstructionVerification.functionSources.test.ts(+116 -1)📝
src/domain/reconstructionVerification.ts(+35 -11)📝
src/ida/IdaOperationRunner.ts(+2 -1)📝
tests/boundary/mcp/comparisonUnknownsMcp.test.ts(+3 -0)📝
tests/process-global/cleanLinuxHopperRuntime.test.ts(+23 -3)📄 Description
Problem and scope
REA can inspect native mitmproxy captures, but the existing capture verifier does not establish that traffic negotiated HTTP/3 through a MITM. A successful HTTP request may fall back to another protocol.
This PR adds an optional, reproducible Linux reverse-proxy laboratory using existing mitmproxy and aioquic implementations. It changes no production contracts or adapters. The ten changed files comprise the nine laboratory/guide files and one optional npm command,
verify:web:http3; no HTTP/3 CI lane is added. Registering the command also resolves Knip's unused-verifier/export findings.Two scenarios
--http3-onlysmoke request. Responses are dispatched in reverse origin completion order; association is verified independently of client/capture arrival order.--http3negotiates client HTTP/2 over TCP and reaches an HTTP/1.1 TLS origin. The same positive HTTP/3 assertion must reject this capture.The positive case checks both legs' HTTP versions, transport, ALPN and TLS observations; endpoint-negotiated QUIC v1; native UUID preservation; request/response bytes, lengths and SHA-256; method, URL components and ordered duplicate regular headers; CLI/MCP parity; advertised schemas; and complete retained MCP Evidence. Both input captures must remain unchanged. Endpoint stream IDs remain scoped observations: no mitmproxy stream IDs or cross-leg mapping are invented.
UUID-specific reports and an atomic running/passed/failed marker prevent stale successes. Cleanup attempts all closes and audits while preserving the primary failure; success is published only after cleanup.
Reproduction
Follow the laboratory guide at the verified commit in a disposable Linux VM. It pins the image and mitmproxy archive by digest, cURL's HTTP/3 dependency profile and the Python runtime graph. Build from this checkout using its pinned Node/npm and locked dependencies; keep host directories unmounted and host trust/routes/packages unchanged. Before loopback traffic, ensure the guest has no IPv4 or IPv6 default route. The verified VM used IPv6 disabled in QEMU and removed its IPv4 default route. Clients/proxy receive explicit paths to generated test CAs.
The guide provides the Node/Python regression commands. Generated evidence and private keys stay outside Git. This PR publishes source and reviewed synthetic-result summaries, with no captures, certificates, VM disks or credentials attached.
Exact source and executed verification
Verified source:
891c7878dfd659437ba3c15799ef1d95abe3279c, based on upstream maine9fe6437a7da381f0aa5aa77571dcf03317122e7. Its locally retainedgit archive --format=tar.gzsource has SHA-2561942bc7d7f2180ddbddb074fea6466a21f18e7e42b983985a0fc20169a9dddd1. All 2,879 archived file digests matched the isolated worktree. Source bytes were compared inside the guest before execution and checked again afterward; the runtime was built inside the guest.The exercised guest used Node 24.18.0 / npm 11.16.0, fixture Python 3.14.7, aioquic 1.2.0, cURL 8.22.0 (OpenSSL 3.6.4, ngtcp2 1.25.0, nghttp3 1.18.0), and standalone mitmproxy 12.2.3 (bundled Python 3.14.0 / OpenSSL 3.5.5).
On this source:
npm run check, including Knip, passed locally. Guestnpm ci,npm run build:cached, and Pythonpip checkpassed.npm run verify:web:http3: fresh real traffic passed with four HTTP/3 flows and one fallback flow, CLI/MCP byte/association/schema/session checks and empty owned proxy groups. Run UUID:41849ea4-7b4a-4fb3-93f4-d583d99ff812.npm run verify:web:http3 -- ... --inspect-existingpassed: UUID80dc2ec6-2ae1-45c7-bfef-296ceedb5947. Final source hashes matched, the final laboratory process snapshot was empty, and the guest shut down cleanly.The reviewed local evidence export has SHA-256
c40d80b123d573f35c993950da8407557f698e92fabb520ad030a392467141a5; every manifest digest was checked. It excludes PEM files, private keys and proxy configuration and is not attached. Another session reviewed reports and source digests, without independently rerunning the lab or exhaustively auditing every artifact.Earlier real-provider results on production base
12ee785e5e61132898adecf9424ce6706a2e754aremain separately retained; they are not substituted for the new run. Earlier build/docs/discovery and 94 focused capture tests ran on PR head20f763775fbc87b1fc752998ba930657495dbba7; CI for the new head is tracked separately in GitHub checks. The prior APPROVED review refers to that earlier head. The full local suite /check:prwas not rerun.Coverage limits
This verifies only native captures, Linux reverse mode, QUIC v1 and the named clients/versions; it does not establish general HTTP/3 support in REA. Empty/absent/incomplete/redacted bodies, cancellations, resets, certificate failures, malformed/truncated captures, HAR, qlog, local/WireGuard modes, browsers, QUIC v2, migration, 0-RTT, mTLS, replay, sustained load and loss tolerance remain outside this increment.
Future options are being discussed separately in Discussion #2000, related to #774. They do not expand this PR or commit to future delivery.
Concurrent verification marker correction
Commit
8b92214ae567949227697007b9343a3cfcd5775afixes the race reported in review comment. Attempt registration and current-owner check/replacement share a SQLite exclusive transaction lock. Only the most recently registered attempt may publish the current marker; earlier attempts retain their own reports and diagnostics.Validation on the unchanged reviewed patch: seven lifecycle tests pass, including separate supervised processes finishing in reverse order, lock contention and lock release after an invalid marker.
npm run check,npm run docs:check, targeted strict lint and the pre-push gate passed. The lock has no global wait deadline; a live stalled owner may delay publication until it exits. This is verifier bookkeeping only. Earlier real HTTP/3 evidence remains pinned to891c7878dfd659437ba3c15799ef1d95abe3279c; no real-traffic rerun is claimed for the new commit. Fresh CI is pending.CI baseline corrections (2026-10-13)
Run 38379313793 tested merge
4f726317d7f58c05ef6e91d78ca11b30e9fb73f5against based13c9f840d36a321a56917e75c48afcb8d72920e. Both the historical base and exact CI merge reproduce the same five failures (45 passing tests): four release preflight assertions and one same-named Mach-O slice fixture.This branch now merges upstream
bd2c202dd930548194cdbc55c27a797f22279db9, including release preflight fix747e7299141cec0b03774c427f579889d5088d20. Commit32e763a0765505ef567c565cff234c534e216ffefixes the remaining fixture: a neutral x86_64 slice allows target admission on x64 runners, while explicit--architecture arm64eretains both ARM subtype roots and all original evidence assertions. Production target admission is unchanged.Validated on the exact published tree
8d9f9def4878de0b9ccef889e5350febe5457216with Node 24.18.0 / npm 11.16.0: 50/50 focused release/dylib tests, 7/7 HTTP/3 lifecycle regressions, 120/120 CI scope/required-lane tests, and typecheck/lint. Pre-push checks passed. The earlier native HTTP/3 evidence remains pinned to891c7878dfd659437ba3c15799ef1d95abe3279c; no native traffic rerun is claimed for this CI integration. Fresh GitHub CI is pending.Producer TLS fact regression (2026-10-13)
Commit
0f7dc00273bc469a4aa2bea7320856b8a07095bfaddresses review comment 4257957176: positive records now preserve the UUID-matched producer's exacttls_version,timestamp_tls_setup, and connectionerroron both legs, alongside connection IDs. Producer version labels are compared as observations; timestamps are neither rounded nor given a tolerance.Twelve mutations that previously passed are now rejected. All 20 verifier regressions, static checks, strict lint, formatting, documentation checks, and pre-push checks pass on the published tree
e2f051f5bfbbbcac3cab18c7ec10fbfe9a8dfa44. The new assertions also pass on four retained CLI/MCP result views from the original real lab (runs41849ea4-7b4a-4fb3-93f4-d583d99ff812and80dc2ec6-2ae1-45c7-bfef-296ceedb5947), with all six input-file digests unchanged. This is historical evidence from source891c7878dfd659437ba3c15799ef1d95abe3279c; no new decoding or native traffic run is claimed for this commit. Fresh GitHub CI is pending.Readable capture-field regression (2026-10-13)
Commit
095dbb00428766cb50c4c3e429b23b74ceed5b6caddresses review comment 4258507827. In addition to retained bytes, positive assertions now compare readable method/scheme/authority/path against observed pseudo-fields, ordered request/response header pairs including duplicate values, and h3 ALPN on both legs. Expected text preserves the native decoder's strict UTF-8 semantics, including null display values for non-UTF-8 bytes.Fourteen readable-only mutations accepted before the fix are now rejected. All 34 verifier regressions pass; the guide runs both the lifecycle and newly separated assertion test files. Pinned Node 24.18.0 / npm 11.16.0 build, typecheck/lint, strict targeted lint, formatting, documentation and pre-push checks pass on tree
9626f7047c680e00d07234a308ca66ddaa65822e.The new assertions also pass over the four retained CLI/MCP result views of the earlier real lab, with all six input digests unchanged. Historical native evidence still belongs to
891c7878dfd659437ba3c15799ef1d95abe3279c; no decoding or native traffic rerun is claimed for this fix. Fresh GitHub CI is pending.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.