Commit Graph

3003 Commits

Author SHA1 Message Date
N0zoM1z0 bbe6a7c31e test(mcp): assert workflow caveats at their declared locations
Main now retains upstream provider caveats in the workflow Evidence envelope
as well as the established graph result. Assert each exact list instead of
counting text occurrences across two distinct contract locations. Also assert
the actual complete graph edges so a caveat cannot silently truncate traversal.

Verified 22 focused workflow Evidence and MCP boundary tests. Product code and
advertised output are unchanged.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 03:50:45 +00:00
Kaoru0822 0f1c4611d2 Merge remote-tracking branch 'origin/main' into fix/main-red-ida-javascript-tests 2026-10-14 03:28:53 +00:00
Kaoru0822 d4df0a6f93 test(process): expose the demo helper fixture through the scanned proc root
599a8ee11 replaced the host-wide `ps` scan with a scan of the supplied proc
root, but the reparented demo-helper case only mirrored its process into the
synthetic root in alternate-launcher mode. The renamed `Xvfb` helper was
therefore invisible and the clean-runtime check resolved. Mirror the fixture
process in both modes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 03:28:48 +00:00
Kaoru0822 8a28df4488 test(mcp): leave comparison group completeness to the runtime parser
80de3145e stopped advertising `dependentRequired` and states input groups in
the schema description instead. Passive captures with `normalization` and a
single scenario side with `normalization` therefore satisfy the advertised
projection, while the canonical parser still rejects them before any
provider call. Classify them with the other mixed groups and assert the
description carries the group guidance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 03:27:51 +00:00
Ysopwnable 5830088520
docs(release): review compatibility for the current candidate (#3112)
Review breaking changes and migration notes for the release being prepared; retain the 6.1-to-6.2 guide as historical context.

Fixes #3058.

Co-authored-by: Geekwolf <3125615+geekwolf@users.noreply.github.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-10-14 11:18:21 +08:00
Kaoru0822 181f0f9d1c test(cli): read the development runner summary without inherited color
The exact-selection tests from 4d4631ac9 match the child Vitest summary as
plain text. In the CI lane the child inherited color, so ANSI styling split
"Test Files  2 passed" and both tests failed there while passing locally;
`FORCE_COLOR=1` reproduces it. Run the child with `NO_COLOR=1`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 03:05:11 +00:00
Kaoru0822 bb1fbf6777 test(artifacts): accept filesystem order for root entries before replacement
DirectoryArtifactReader yields a directory's entries in `opendir()` order and
reads queued child directories only after that directory is exhausted. The
root-replacement test assumed APFS order (`sub` before `sample.txt`), so it
failed on Linux ext4. Require both root entries in either order before the
descent into the replaced root is rejected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 03:01:36 +00:00
Kaoru0822 136a157ea5 test(browser): expect SAZ expansion limits as caller-correctable input
29a2d1399 classifies an over-budget expanded SAZ archive as invalid input
with an out_of_range `capture_path` issue that names the expanded-byte
maximum. Assert that projection through the CLI instead of the previous
execution failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:56:56 +00:00
Kaoru0822 6681db8e2e Merge remote-tracking branch 'origin/main' into fix/main-red-ida-javascript-tests 2026-10-14 02:55:52 +00:00
xin zhuang f3534749e5
docs(process): clarify terminal progress message fields (#3086)
Clarify that final capture progress carries disposition and cleanup states as key=value text inside message, with an illustrative wire-format example.

Fixes #3052.

Co-authored-by: 1052326311 <65798732+1052326311@users.noreply.github.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-10-14 10:54:50 +08:00
Kaoru0822 1b75c0d2f9 fix(browser): read DOMSnapshot's -1 string index as an empty value
Chrome's DOMSnapshot interns empty or null strings as index -1. bffdd9105
began rejecting every negative string index, so real Chrome snapshots lost
each element node (whose nodeValue is -1) and any node with an empty
attribute value, and the headless Chrome SVG xlink:href lanes found no
anchors. Simulated snapshots interned "" as a table entry and missed it.

Parse snapshot strings at one owner: names still require a table entry,
while node values, attribute values, and baseURL accept -1 as "". The SVG
ancestry projection shares the same parser instead of its own copy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:54:39 +00:00
Kaoru0822 7346397106 fix(ghidra): keep earlier LaunchSupport warnings when a later helper fails
d4bd65c53 moved a failed LaunchSupport helper's output into the nested
`command_outcome`, but the cause projection also returned early for those
failures and dropped `launch_support`. A `-vmargs` failure therefore lost the
warning that the successful `-envvars` helper had already reported. Keep the
retained helper outputs and skip only the launcher outcome that the nested
cause now owns.

Update the Ghidra launch and Hopper startup boundary expectations to current
main: failed helpers report through `cause.command_outcome`, and bridge startup
results carry the launched `processId` (599a8ee11), asserted against the
exact retried process.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:40:48 +00:00
Kaoru0822 59c71be89e Merge remote-tracking branch 'origin/main' into fix/main-red-ida-javascript-tests 2026-10-14 02:37:59 +00:00
Sunil d901561640
docs(hopper): clarify lease directory recovery guidance (#1628)
Clarify that path-specific Hopper lease recovery guidance applies when opening the lease directory fails with a permission error. Earlier creation failures retain their separate diagnostic.

The reviewed security implementation and owning regressions from this PR are already present on main through 599a8ee11, which explicitly records #1628 among its integrated fixes; this merge does not duplicate that code.

Co-authored-by: Sunil <180283757+Sunil56224972@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
Co-authored-by: N0zoM1z0 <161784452+N0zoM1z0@users.noreply.github.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 10:37:10 +08:00
Kaoru0822 0fdac09259 fix(javascript): admit candidate endpoint interpretation in worker output
b58adafa4 emits `interpretation: "candidate"` on static endpoint findings,
but the worker's strict endpoint schema still rejected the key, so
`analyze_javascript_application` failed output validation for any source
with a candidate endpoint. Admit the field as an exact optional literal.

Update application acceptance and boundary expectations to current main:
endpoint identity keys tag literal values (88afcc738), source-map
observations and edges carry `resolution_status` (b58adafa4), and a proven
Webpack bootstrap reports bundled contextBridge exposures as direct syntax.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:36:45 +00:00
Kaoru0822 aff46f51fd test(docs): retarget translated readme link drift at current links
e572c38dc replaced the localized guide URLs in the translated readmes with
repository-relative guide links, so the drift fixture no longer contained
`https://rea.tools/zh-CN/guides/native/`. Exercise the same missing-target,
wrong-locale, and query drift on a localized showcase link the readme still
carries, and add drift for the new relative guide link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:16:24 +00:00
Kaoru0822 c0e4aa91bb Merge remote-tracking branch 'origin/main' into fix/main-red-ida-javascript-tests 2026-10-14 02:13:07 +00:00
morluto b3c5672ce6 fix(setup): preserve validated caller-selected JEB registration settings 2026-10-14 10:06:46 +08:00
Kaoru0822 828ccc36b6 test: cover config value escapes and source-map edge pairing
- Cover configuration reads after passing env/argv values to a call, and
  keep reads unknown after replacing an argv entry directly, through an alias,
  or after a container escape.
- b58adafa4 added `resolution_status` to source-map edges. Expect it, and pair
  each alias edge with the script that declared it instead of relying on
  content-derived edge ID order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:06:14 +00:00
Kaoru0822 c023db356f Merge remote-tracking branch 'origin/main' into fix/main-red-ida-javascript-tests 2026-10-14 02:01:45 +00:00
morluto 70771523c5 chore(licenses): preserve locked XML parser runtime notices 2026-10-14 09:55:16 +08:00
morluto fd8a2e98ff fix(verifiers): own browser fixture setup and cleanup in one scope 2026-10-14 09:55:09 +08:00
morluto 278d7fb284 fix(analysis-view): reject accessor-backed inline evidence before parsing 2026-10-14 09:55:08 +08:00
morluto e8d22ec9eb fix(browser): carry unknown XML ancestry through metadata contracts 2026-10-14 09:54:58 +08:00
Kaoru0822 4450463019 fix(javascript): restore read-site ambient aliases and string config reads
Main fails five source tests after 04672f2b9 and d4bd65c53.

- Ambient write resolution used the caller's write site for every alias
  read it reached, so `alias = alias.globalThis` resolved its own self-read
  only to the reassignment and lost the original `globalThis` identity. Reads
  reached through an initializer now select initializers at their own
  position; the written target keeps the caller's write site.
- Process escape tracking recorded `Number(process.env.PORT)` and
  `Number(process.argv[2])` as escapes of the read slot, which dropped the
  configuration read inside functions. Node stores env values and argv
  entries as strings, so passing one exposes no mutable object; replacing an
  entry still records its own write or receiver escape.
- The dynamic isolated-world test now expects the direct observation that the
  proven Webpack bootstrap resolution produces.
- The native IDA admission test now matches d4bd65c53: attached profiles
  report the bound document and still refuse address resolution.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:50:50 +00:00
morluto e84c58dabf chore: merge upstream main while preserving bug fixes
# Conflicts:
#	README.md
2026-10-14 09:50:13 +08:00
morluto bffdd91053 fix(browser): preserve malformed capture gaps and protocol session identity 2026-10-14 09:49:49 +08:00
morluto e572c38dcf docs: repair analysis guide links and document Linux process prerequisites 2026-10-14 09:47:58 +08:00
morluto eca18e08ac fix(verifiers): require positive ownership and restore cleanup coverage 2026-10-14 09:47:57 +08:00
morluto 443c7aff77 fix(evaluation): require explicit REA server attribution 2026-10-14 09:47:57 +08:00
morluto 55778f20ba fix(inspector): retain usable targets and cancel owned capture waits 2026-10-14 09:47:57 +08:00
morluto 29a2d13994 fix(captures): validate SAZ XML and classify expansion limits 2026-10-14 09:47:56 +08:00
morluto 88afcc738b fix(javascript): retain endpoint candidates through graph projection 2026-10-14 09:47:30 +08:00
morluto 6e344302cb fix(javascript): prove bundled CommonJS getter identity 2026-10-14 09:47:30 +08:00
morluto 896696b2e7 fix(javascript): preserve semantic uncertainty and lexical ownership 2026-10-14 09:47:29 +08:00
morluto 9fe54c4073 fix(dotnet): honor bounded method row selections 2026-10-14 09:47:29 +08:00
morluto 36db19c59c fix(providers)!: preserve unknown segment extents and initialized IDA readiness
BREAKING CHANGE: binary_overview segment length is null when Hopper coordinates do not establish a finite same-address-space extent. Consumers must preserve this unknown instead of treating it as zero or a saturated value.
2026-10-14 09:47:28 +08:00
morluto 5fa7a52d1f fix(frida): preserve script diagnostics and isolate capture truncation 2026-10-14 09:47:28 +08:00
morluto b940ad0d65 fix(sqlite): retain completed worker evidence and unresolved cleanup ownership 2026-10-14 09:47:27 +08:00
morluto 31b99306aa fix(providers): retain composite cleanup failures and probe child liveness 2026-10-14 09:47:26 +08:00
Ysopwnable c7105d9723
test(perf): preserve negative small-PCAP workflow measurements (#2640)
Preserve reproducible complete versus summary/page PCAP measurements on two official HTTP recordings and a fixed metadata/URI question. Summary/page uses more than twice the SDK JSON and about 51% more total model input in both real-model pairs, so existing complete defaults and production APIs/cache remain unchanged. These results apply to these captures and question; no general speedup is claimed. Refs #2016.

Authenticate experiment SDK envelopes with the pinned runtime's existing Evidence parser and check coverage, target/view/operation ownership and retained-parent identity. Separate factual and exact-workflow grading, retaining diagnostics and partial facts for malformed replies. Register six comparator CLI scenarios in the discovered Vitest evaluation project and remove the manual suite. The final change is limited to nine experiment files and one discovered evaluation test; production behavior is unchanged.

Validation includes eight actual SDK workflows and four actual Codex CLI tasks, independent raw-frame and CLI/MCP checks, authentication of all 18 original receipts, 34 context/grading regressions and six comparator scenarios. All four stored model answers pass factual and workflow regrading without model reruns. Original measured runtime remains 3ae826ceba6f25b08bce50bcb51001209bc16b57; original measurements and private raw artifacts are unchanged. Serial local checks use one CPU with 3-GiB early-stop/4-GiB hard/no-swap limits. Unknown terminal counters remain explicitly unknown.

Integrate upstream shared fixture owners and Windows verification, removing both superseded local differences. All final experiment/comparator files remain byte-identical to the reviewed sources and the final PR scope is 10 files. Full bounded preflight passes in 73.953 seconds with ~2.23 GiB peak; payload cleanup is verified, zero phase OOM/limit events are observed, and terminal counters remain unknown. Current-head automatic CI 38492231165 passes all 35 selected jobs, including every compiled shard, source/static/build/docs, actual Windows/native/package and real application lanes, Portable reports/inventory, reverse-tools coverage/mutation and CI required. Greptile passes and all review threads are resolved. Actual CI checkout is 4eb2262359cb01f2fb1314db0bc18d3dc9092792, integrated with main 41a2e84647. Passing retries do not establish the root cause or a fix of the earlier main worker cleanup failure; its original evidence is preserved. No release.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@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 09:34:02 +08:00
Ysopwnable b8513401e1
docs: celebrate 200,000 GitHub stars 🎉 (#2897)
Celebrate the 200,000-star milestone across the English README and all 19 current translations, preserving locale-specific number formatting.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 09:31:59 +08:00
Avocado b11fe63bf4
docs(installation): document Linux procps prerequisite
Document the Linux procps-compatible ps prerequisite before quick start and in the installation/provider guides. Scope it to shared process-supervision workflows and give recovery guidance for generic provider startup errors.

Actual JavaScript CLI analysis passed with ps and refused an empty PATH with capability_unavailable and retained partial evidence. Real Chrome scenario launch succeeded without ps, confirming the need for qualified wording. Docs checks, formatting, typecheck/lint and diff checks passed. Five English documentation files; no runtime changes. Native Ghidra/JADX/firmware execution was not performed.

Fixes #2763

Co-authored-by: Avocado <93173363+HeadmasterEggy@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-10-14 09:21:11 +08:00
Matt Van Horn bcc141549a
feat(electron): inspect packaged Electron fuse state without execution (#2399)
Add bounded, read-only inspection of packaged Electron fuse state for ELF, PE, and Mach-O applications through CLI and MCP workflows.

Preserve artifact provenance and unknown values, resolve app bundles without execution, reject malformed or overlapping containers before scanning, and keep output compact for agent use.

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
Co-authored-by: N0zoM1z0 <161784452+N0zoM1z0@users.noreply.github.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 09:16:33 +08:00
morluto fab33a66c6 test(package): select the intended Hopper smoke-test provider
Keep provider discovery independent from Hopper-specific packaged workflows. Installed Ghidra launchers on PATH must not turn the fixture into an ambiguous auto-selection request; target-free inventory and unknown-provider checks remain explicit.
2026-10-14 09:09:02 +08:00
morluto 86afc040e5 fix(ghidra): discover installations from resolved PATH launchers
Reuse installation inspection in doctor and provider readiness. Keep explicit configuration authoritative and validate discovered roots without executing launchers. Clarify the existing per-operation availability contract.
2026-10-14 09:05:53 +08:00
morluto 127c621328 Merge remote-tracking branch 'origin/main' 2026-10-14 08:59:31 +08:00
morluto 4d4631ac94 test: harden verification fixtures and runtime coverage
Use exact discovered test identities, production MCP sessions and byte-exact setup backups. Add CLI signal cleanup coverage and independent Ghidra, Go and firmware verification assertions; prune redundant test configuration and preserve platform limits.
2026-10-14 08:59:27 +08:00
morluto 1b14870ace refactor(evidence): remove superseded ordering wrapper and document exclusions 2026-10-14 08:58:53 +08:00
morluto a688c79784 docs(ida): describe catalog-based lifecycle compatibility 2026-10-14 08:58:46 +08:00