rea/scripts/lib
Ysopwnable 242e2b0001
fix(ghidra): preserve function facet and call coverage (#3002)
* fix(ghidra): preserve observed function facet and call coverage

Declare successful query availability in the Java producer, including explicit unavailable pseudocode reasons. Carry observed static call-set coverage through the parsed provider result and Evidence without inventing facts for legacy omissions. Use Ghidra indexed comment addresses over the function body and entry, retaining cancellation checks and sparse collection.

Closes #2951

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>

* fix(ghidra): retain unresolved call coverage in observations

Share decoded unresolved-call facts between dossiers, callee coverage and reference observations. Combine terminal and unresolved observations in one instruction traversal and retain site records only when requested. Keep missing procedure identities incomplete and validate unresolved locations at the provider boundary.

Bind snapshots to the corrected call coverage profile so older complete claims cannot replay under the new semantics. Add real public MCP callback trace/comparison regressions.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>

* fix(ghidra): separate reference targets from callee coverage

Reuse containing-function ownership for resolved reference identities and independently compare those identities with the actual returned callee set. Keep known interior routes out of unresolved site records while retaining partial inventory coverage.

Advance the coverage profile to v3 and reject interim v2 cache bindings. Add a real Ghidra producer regression with restored reference metadata; the previous bridge fails the known-route assertion.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>

* fix(ghidra): measure incoming call coverage across function bodies

Compare incoming reference source identities across the owned function body and entry with the actual returned caller set. Stream caller-only checks and reuse dossier reference observations. Combine caller/callee coverage from observed counts without reinterpreting serialized metadata, and share the body scope owner with comments and references.

Bind snapshots to function-body coverage semantics v4 and preserve the real off-entry caller regression.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>

* fix(ghidra): preserve whole-scope directional call coverage

Check body-and-entry call references independently of decoded instruction flow. Reuse collected dossier references and stream inventory-only coverage checks. Keep caller-only gaps distinct from incomplete outgoing coverage in offline path reconstruction, and invalidate prior snapshot profiles.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>

* fix(mcp): retain compact Evidence field types

Share optional diagnostics across the three tagged relationship coverage states instead of advertising duplicate branches. Preserve coverage validation while keeping compact Evidence properties within the existing reference expansion budget. Verify invalid direction cardinalities against the actual SDK-advertised schema.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>

---------

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-10-14 07:52:14 +08:00
..
artifact-e2e.mjs perf(ci): share bytecode across fresh Apple artifact subprocesses 2026-10-11 19:11:16 +08:00
browser-capture-metadata-budget-e2e.mjs fix(browser): bound script metadata and preserve omissions 2026-10-09 06:32:10 +08:00
browser-dom-destinations-e2e.mjs refactor!: enforce canonical evidence and provider boundaries 2026-10-09 20:18:52 +08:00
browser-module-e2e.mjs refactor!: enforce canonical evidence and provider boundaries 2026-10-09 20:18:52 +08:00
browser-nested-source-map-e2e.mjs fix(verification): parse browser endpoints before provider calls 2026-10-14 06:20:22 +08:00
browser-network-assertions.mjs fix(browser): preserve body API provenance through script export 2026-10-12 14:12:19 +08:00
browser-network-e2e.mjs refactor!: enforce canonical evidence and provider boundaries 2026-10-09 20:18:52 +08:00
browser-popup-e2e.mjs refactor!: enforce canonical evidence and provider boundaries 2026-10-09 20:18:52 +08:00
browser-runtime-e2e.mjs fix(verification): parse browser endpoints before provider calls 2026-10-14 06:20:22 +08:00
browser-runtime-fixture-lifecycle.mjs fix(browser): give the DevToolsActivePort wait one deadline owner (#2265) 2026-10-13 22:35:45 +08:00
browser-runtime-selector-e2e.mjs feat(browser): attribute native execution and listener sources (#917) 2026-10-07 21:45:07 +08:00
browser-runtime-termination-e2e.mjs feat(browser): attribute native execution and listener sources (#917) 2026-10-07 21:45:07 +08:00
browser-runtime-world-e2e.mjs feat(browser): attribute native execution and listener sources (#917) 2026-10-07 21:45:07 +08:00
browser-scenario-environment-e2e.mjs fix(browser): release attached viewport overrides without resizing the external page 2026-10-10 02:33:56 +08:00
browser-scenario-storage-e2e.mjs fix(ci): close speculative browser fixture connections 2026-10-11 11:05:08 +08:00
browser-scenario-verifier.mjs fix(browser): retain scenario observations across failures 2026-10-09 22:46:08 +08:00
browser-screenshot-e2e.mjs fix(mcp): deliver typed errors without invalid structured output (#1277) 2026-10-09 13:54:32 +00:00
browser-script-export-assertions.mjs refactor(javascript): group domain semantics and contracts (#907) 2026-10-07 17:16:58 +08:00
browser-script-export-e2e.mjs refactor!: enforce canonical evidence and provider boundaries 2026-10-09 20:18:52 +08:00
browser-socket-e2e.mjs feat(browser): attach passive tools to browsers without HTTP discovery (#2346) 2026-10-14 00:36:37 +08:00
browser-source-map-e2e.mjs refactor!: enforce canonical evidence and provider boundaries 2026-10-09 20:18:52 +08:00
browser-verifier-assertions.mjs fix(browser)!: preserve WebSocket connections and comparable payload coverage 2026-10-11 09:43:25 +08:00
catalog-builders.mjs fix(reverse): reconcile cleanup ownership and mutation diagnostics (#2799) 2026-10-14 04:47:34 +08:00
catalog-cli.d.mts refactor(catalog): import CLI metadata from its owner 2026-10-10 00:49:14 +08:00
catalog-cli.mjs refactor(adapters): split oversized provider workflows 2026-07-18 05:49:14 +00:00
catalog-core.mjs fix(reverse): reconcile cleanup ownership and mutation diagnostics (#2799) 2026-10-14 04:47:34 +08:00
clean-linux-hopper-runtime.d.mts fix: isolate Linux inventory and repair DEX schema regex (#2910) 2026-10-14 00:56:43 +08:00
clean-linux-hopper-runtime.mjs fix(ci): enforce merge verification and unblock superseded runs (#2938) 2026-10-14 01:52:57 +08:00
conformance-fixtures.d.mts test(conformance): remove fixture generator test option 2026-09-29 18:00:47 +08:00
conformance-fixtures.mjs test(conformance): remove fixture generator test option 2026-09-29 18:00:47 +08:00
development-tests.d.mts build: separate runtime artifacts and supervise command ownership 2026-10-09 20:11:17 +08:00
development-tests.mjs perf(ci): start source feedback early and diagnose stalled runs (#3013) 2026-10-14 06:07:08 +08:00
docs-facts.d.mts docs: clarify onboarding and align provider guidance (#745) 2026-10-06 22:57:36 +08:00
docs-facts.mjs docs: move translated READMEs under docs/readme (#2165) 2026-10-13 22:25:32 +08:00
elf-section-name-fixtures.mjs feat(native): inspect offline ELF layout through pwntools (#1037) 2026-10-08 14:22:08 +08:00
format-generated-file.mjs chore: migrate formatting to Oxfmt (#615) 2026-10-06 01:59:19 +08:00
generated-file.d.mts build: add canonical product catalog and docs drift checks 2026-07-15 17:43:52 +08:00
generated-file.mjs fix(build): clarify generated-file check hint and drop redundant catalog step (#998) 2026-10-08 00:21:39 +08:00
ghidra-reference-snapshot-e2e.mjs fix(targets): cancel resolution before provider admission 2026-10-10 00:35:17 +08:00
http3-capture-assertions.mjs test(http3): add real MITM capture verification lab (#1997) 2026-10-14 01:09:19 +08:00
http3-capture-assertions.test.mjs test(http3): add real MITM capture verification lab (#1997) 2026-10-14 01:09:19 +08:00
http3-verifier-lifecycle.mjs test(http3): add real MITM capture verification lab (#1997) 2026-10-14 01:09:19 +08:00
http3-verifier-lifecycle.test.mjs test(http3): add real MITM capture verification lab (#1997) 2026-10-14 01:09:19 +08:00
ida-feature-trace.d.mts feat(ida): resolve containing procedures and report the admitted program as the document (#2374) 2026-10-13 20:56:20 +08:00
ida-feature-trace.mjs feat(ida): resolve containing procedures and report the admitted program as the document (#2374) 2026-10-13 20:56:20 +08:00
javascript-application-analysis.mjs fix(artifacts)!: retain cleanup owners through client shutdown 2026-10-11 04:43:02 +08:00
large-result-mcp.mjs fix(mcp): retain complete application results across response limits 2026-10-08 23:46:02 +08:00
mcp-startup-probe.d.mts perf(mcp): reduce cold-start work 2026-07-26 15:02:58 +00:00
mcp-startup-probe.mjs perf(mcp): reduce cold-start work 2026-07-26 15:02:58 +00:00
mcp-verifier-results.mjs perf(mcp)!: compact repeated session discovery facts (#1988) 2026-10-12 07:40:19 +08:00
module-boundaries.d.mts refactor(process): separate capture implementation from analyst workflows (#988) 2026-10-08 00:46:21 +08:00
module-boundaries.mjs feat(native): read embedded cargo-auditable Rust dependency lists (#2456) 2026-10-14 02:50:30 +08:00
native-value-e2e.mjs fix(ghidra): preserve function facet and call coverage (#3002) 2026-10-14 07:52:14 +08:00
nativeaot-build.d.mts fix(ghidra): resolve file offsets in decompile (#2101) 2026-10-13 18:23:17 +08:00
nativeaot-build.mjs fix(ghidra): resolve file offsets in decompile (#2101) 2026-10-13 18:23:17 +08:00
product-catalog.d.mts refactor(catalog): import CLI metadata from its owner 2026-10-10 00:49:14 +08:00
product-catalog.mjs refactor(catalog): import CLI metadata from its owner 2026-10-10 00:49:14 +08:00
real-ghidra-address-boundaries.mjs fix(ghidra): reject conflicting address aliases in batches 2026-10-11 09:35:22 +08:00
real-ghidra-batch-identity.mjs fix(native): distinguish batch selectors from resolved entries 2026-10-09 19:09:30 +08:00
real-ghidra-boundaries.mjs fix(ghidra): preserve function facet and call coverage (#3002) 2026-10-14 07:52:14 +08:00
real-ghidra-compact-references.mjs feat(native): expose typed incoming references at exact addresses (#1715) 2026-10-11 19:52:09 +08:00
real-ghidra-entry-aliases.mjs test(ghidra): preserve metadata in interior-label fixture 2026-10-11 06:10:10 +08:00
real-ghidra-file-offsets.mjs fix(ghidra): resolve file offsets in decompile (#2101) 2026-10-13 18:23:17 +08:00
real-ghidra-instruction-flow.mjs fix(ghidra): preserve decoded return flow evidence 2026-10-09 18:53:28 +08:00
real-ghidra-large-results.mjs fix(ghidra): expose terminal-call boundary assumptions 2026-10-11 09:08:01 +08:00
real-ghidra-namespace-annotations.mjs fix(ghidra): reject address names owned by another symbol 2026-10-11 07:35:48 +08:00
real-ghidra-snapshot-lifecycle.mjs fix(ghidra): encode Java probe output as UTF-8 (#2206) 2026-10-13 00:45:23 +08:00
real-ghidra-target-admission.mjs fix(ghidra): preserve source failures and snapshot ownership 2026-10-09 05:10:36 +08:00
real-hopper-boundaries.mjs fix: reuse validators for identical output schemas 2026-10-10 19:29:16 +08:00
real-hopper-cleanup.d.mts fix(hopper): verify lease cleanup and repair the macOS test lane (#1111) 2026-10-09 02:41:34 +08:00
real-hopper-cleanup.mjs fix(hopper): verify lease cleanup and repair the macOS test lane (#1111) 2026-10-09 02:41:34 +08:00
real-hopper-cli-selectors.mjs fix(cli): accept exact native names through explicit selectors 2026-10-09 05:46:16 +08:00
real-hopper-exhaustive-search.d.mts refactor: return complete tool results inline 2026-09-29 07:08:46 +08:00
real-hopper-exhaustive-search.mjs refactor: return complete tool results inline 2026-09-29 07:08:46 +08:00
real-hopper-fixture.d.mts test(hopper): add semantic runtime conformance 2026-07-18 04:50:23 +00:00
real-hopper-fixture.mjs fix(hopper): preserve typed string values and verify real searches 2026-10-09 05:12:36 +08:00
real-hopper-function-basics.mjs refactor!: enforce canonical evidence and provider boundaries 2026-10-09 20:18:52 +08:00
real-hopper-inventory.mjs refactor: remove forwarding exports and redundant aliases 2026-10-09 22:46:09 +08:00
real-hopper-navigation.mjs fix(hopper): probe interior navigation from multi-byte instructions (#1285) 2026-10-10 06:07:01 +08:00
real-hopper-owner-exit.mjs fix(hopper): stop Linux demo children when the REA owner exits (#2499) 2026-10-13 12:59:22 +08:00
real-hopper-search.d.mts test(hopper): bind string assertions to observed source extents 2026-10-14 07:12:10 +08:00
real-hopper-search.mjs test(hopper): bind string assertions to observed source extents 2026-10-14 07:12:10 +08:00
real-hopper-selection.mjs refactor: remove forwarding exports and redundant aliases 2026-10-09 22:46:09 +08:00
real-hopper-semantic.d.mts test(hopper): add semantic runtime conformance 2026-07-18 04:50:23 +00:00
real-hopper-semantic.mjs fix(native): preserve observed function dossier coverage 2026-10-14 07:11:55 +08:00
real-hopper-session-isolation.mjs fix(hopper): reserve Linux demo application before launch (#1158) 2026-10-09 10:14:25 +08:00
real-hopper-source-binding.mjs fix(hopper): bind file mappings to verified source bytes 2026-10-09 06:13:41 +08:00
real-hopper-workflows.mjs fix(analysis)!: scope call-graph caveats to their observed relationships 2026-10-12 09:29:07 +08:00
recorded-core-fixtures.py feat(native): inspect recorded crashes through pwntools and pwndbg (#1054) 2026-10-08 16:50:31 +08:00
release-checkpoint.mjs fix(release): publish reviewed release PR merges 2026-10-09 08:44:47 +08:00
release-notes-github.mjs feat(release): add contributor-aware release notes workflow 2026-10-11 10:19:16 +08:00
release-notes-publication.mjs feat(release): add contributor-aware release notes workflow 2026-10-11 10:19:16 +08:00
release-notes.mjs fix(release): avoid duplicated contributor thanks 2026-10-11 11:49:49 +08:00
reverse-tools-mutation-targets.mjs fix(reverse): reconcile cleanup ownership and mutation diagnostics (#2799) 2026-10-14 04:47:34 +08:00
test-discovery.d.mts refactor: add incremental capability migration safeguards (#819) 2026-10-07 10:56:06 +08:00
test-discovery.mjs refactor: add incremental capability migration safeguards (#819) 2026-10-07 10:56:06 +08:00
test-projects.d.mts perf(ci): start source feedback early and diagnose stalled runs (#3013) 2026-10-14 06:07:08 +08:00
test-projects.mjs perf(ci): start source feedback early and diagnose stalled runs (#3013) 2026-10-14 06:07:08 +08:00
unrelated-hopper-sentinel.mjs fix(process): protect unrelated Hopper during cleanup 2026-07-22 14:04:00 +00:00
verifier-run.d.mts refactor: return complete analysis results inline 2026-09-29 08:07:24 +08:00
verifier-run.mjs feat(ghidra): enable Windows x64 read-only analysis (#699) 2026-10-06 16:53:33 +08:00
verify-package-core.mjs fix(scripts, install): honor test:fast "without build" promise and orient Node.js engine mismatches (#2026) 2026-10-12 13:54:57 +08:00
windows-job-memory-limit.mjs fix(bun): report the real runtime and enforce worker memory budgets on Windows (#1730) 2026-10-11 19:20:00 +08:00
windows-protocol-input.mjs fix(bun): report the real runtime and enforce worker memory budgets on Windows (#1730) 2026-10-11 19:20:00 +08:00