Commit Graph
7310 Commits
Author SHA1 Message Date
Kaoru0822 bfecbb1d48 test(native): cover deadlines throughout signature inspection (#10217) 2026-11-12 20:39:31 -08:00
Kaoru0822 070cfce443 fix(ci): settle cancelled test-group descendants (#10229) 2026-11-12 20:38:32 -08:00
Kaoru0822 0c01517cc0 fix(pcap): disclose truncated DNS responses as partial (#10214)
* fix(pcap): disclose truncated DNS responses as partial

* fix(pcap): explain DNS truncation in coverage limitations

* fix(pcap): preserve mDNS TC semantics
2026-11-12 20:34:34 -08:00
Kaoru0822 7c9d65fe97 fix(test): resolve filesystem aliases before planning prerequisites (#10213) 2026-11-12 20:29:42 -08:00
ShuaixinHuangandShuaixinHuang 9c86465d47 fix(captures): retain preparation cleanup owners (#10288)
Co-authored-by: ShuaixinHuang <197200901+ShuaixinHuang@users.noreply.github.com>
2026-11-12 22:08:37 -05:00
morluto c836f57b7d refactor: consolidate shared analysis boundaries (#10293) 2026-11-12 22:05:32 -05:00
morluto 6878a84796 fix(tests): restore worker fixture and allow setup completion 2026-11-12 20:57:43 -05:00
Kaoru0822 937d10df1c fix(pe): enforce DER extension critical encoding (#10212) 2026-11-12 19:33:31 -05:00
Kaoru0822 c19d319929 fix(desktop): preserve literal directories in ELF origin expansion (#10215)
fix(desktop): expand ELF origin paths as literal directory names
2026-11-12 19:33:16 -05:00
Kaoru0822 966bde3780 fix(android): enforce DEX array dimension limit (#10227) 2026-11-12 19:29:53 -05:00
Kaoru0822 4d15b7f509 fix(android): preserve SDK-gated manifest permissions (#10236) 2026-11-12 19:29:40 -05:00
Kaoru0822 50d4f7bea4 fix(desktop): validate guest file replies at their shared boundary (#10224)
* fix(desktop): reject malformed guest file base64

* fix(desktop): scope guest file metadata validation to its namespace
2026-11-12 19:29:18 -05:00
Kaoru0822 594d73985c fix(desktop): preserve Unicode separators in entry values (#10210) 2026-11-12 19:29:05 -05:00
Kaoru0822 418e3f5e91 fix(release): honor selected npm in update verification (#10240) 2026-11-12 19:28:29 -05:00
Kaoru0822 0f5ac9d5f3 fix(desktop): preserve multiline apt-config locations (#10241) 2026-11-12 19:28:11 -05:00
2SinceJulyand2SinceJuly 7559e06740 fix(contracts): drop nested defaults from a root union sibling (#10254)
* fix(contracts): drop nested defaults from a root union sibling

Flattening a union of strict object groups lifts each group's properties
into one object. A default the scenario group carried inside
normalization.rules survived that lift even though the passive group
declares no normalization, so a client that fills nested defaults sent
{normalization: {rules: []}} and the runtime parser refused the call
with "Unrecognized key: normalization".

Remove defaults below a property that any group omits, not just the one
on the property itself. A property every group owns keeps its own
nested guidance.

* fix(contracts): keep a nested default a reference still targets

Dropping the nested default of a property a sibling group omits also removed defaults that references point into. A resource whose validation $ref targets its own default was advertised with that reference intact but its target gone, so the advertised schema no longer compiled in AJV or client projection.

Collect the paths into a default that references inside the branch target and keep those entries while stripping the rest. Other nested defaults are still removed, so the strict sibling group keeps refusing the object.

* test(contracts): type the root union default regression fixture

The fixture spread the canonical branch through a widened cast, so the repository typecheck rejected the spread and indexed access. Narrow the branch shape and guard the optional schema before collecting its referenced defaults.

---------

Co-authored-by: 2SinceJuly <202121119+2SinceJuly@users.noreply.github.com>
2026-11-12 19:27:58 -05:00
ShuaixinHuangandShuaixinHuang 9d32836d37 fix(apple): expand loaded siblings along the first dyld chain (#10248)
* fix(apple): expand loaded siblings along the first dyld chain

* fix(apple): retain conditional incoming dyld expansion edges

* fix(apple): qualify findings by their expansion chain

---------

Co-authored-by: ShuaixinHuang <197200901+ShuaixinHuang@users.noreply.github.com>
2026-11-12 19:27:40 -05:00
morluto 02ebd3e02d refactor: prune test-only seams and obsolete helpers (#10275) 2026-11-12 19:24:54 -05:00
morluto a8527d43b8 fix(setup): supply registration profile in catalog test 2026-11-12 11:47:18 -05:00
Kaoru0822 edc9304669 feat(setup): expose explicit MCP catalog profile selection (#9354) 2026-11-12 05:51:59 -08:00
Kaoru0822 bed3f0bcb5 fix(mcp): record deferred schemas before protocol framing (#9351)
* fix(mcp): record deferred schemas before protocol framing

* test(mcp): verify deferred parity and canonical union outputs
2026-11-12 05:50:12 -08:00
morluto 653c49419e fix(release): validate notes with the publication parser 2026-11-12 05:17:10 -05:00
morluto 5eef239dfd fix(ci): defer proposals for merged release commits 2026-11-12 05:08:27 -05:00
github-actions[bot]andmorluto d74549e495 chore(main): release rea-agents 6.9.0 (#7104)
* chore(main): release rea-agents 6.9.0

* docs(release): curate 6.9.0 notes and contribution provenance

* docs(release): explain reviewed result and recovery migrations

* docs(release): refresh 6.9.0 provenance through capture parser fix

* docs(release): include worker admission CI fix and refresh provenance

* docs(release): refresh candidate with lifecycle CI fixes

* docs(release): include ReFS support in 6.9.0 notes

* docs(release): include UnityFS boundary repair in 6.9.0

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
rea-agents-6.9.0
2026-11-12 03:58:30 -05:00
morluto 3a36b3e6d6 test(ci): scope Electron scenario schema validation 2026-11-12 03:22:51 -05:00
morluto 58a0511660 fix(artifacts): enforce UnityFS declared container bounds 2026-11-12 03:21:38 -05:00
南宫茜andmorluto a01674377f feat(native): support ReFS filesystem authority (#10086)
* docs(native): specify Windows ReFS filesystem authority

* docs(native): plan ReFS filesystem support

* feat(native): admit ReFS filesystem identities

* feat(native): support ReFS filesystem authority

* feat(native): advertise ReFS Windows support

* docs(native): format ReFS support documents

* docs(native): record ReFS verification tasks

* docs(native): record ReFS draft pull request

* docs(website): correct remaining ReFS translations

* fix(docs): correct Windows native guide link in ReFS plan

---------

Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-11 21:36:57 -05:00
ShuaixinHuangandmorluto 047d75a498 fix(pe): honor import directory bounds (#10044)
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-12 07:43:17 +08:00
Beqaandmorluto 9cffd5a334 fix(swift): classify private nested types by their own kind (#10085)
* fix(swift): classify private nested types by their own kind

Skip swiftc's file discriminator before the nominal marker so a private
nested enum, struct, or class is not filed under its enclosing type.

* ci: retrigger checks stuck in the Actions queue

The original workflow runs stayed queued while later runs on other
pull requests completed.

---------

Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-12 07:43:13 +08:00
Nianze Wuandmorluto fadfdf13e6 fix(elf): reject unmatched NT_FILE pathnames (#10138)
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-12 07:43:09 +08:00
morlutoandNianze Wu 6b2f991808 fix(ci): restore lifecycle ownership coverage (#10147)
* fix(process): retain CLI input cleanup ownership

* test(ci): align lifecycle fixtures with typed ownership contracts

---------

Co-authored-by: Nianze Wu <wunianze666@gmail.com>
2026-11-11 18:37:28 -05:00
Rudy Mizrahi CelekliandCursor 4505477903 fix(elf): reject tables inside the declared ELF header (#10133)
Admission compared table offsets with the class minimum, so a larger e_ehsize still parsed those header bytes as program or section entries.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-12 06:56:14 +08:00
Rudy Mizrahi CelekliandCursor 4a5b24c3fa fix(browser): count only grammatical CSP nonce and hash sources (#10135)
CSP3 requires a complete base64-value, so truncated and illegal nonce
and hash tokens were being reported as real sources.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-12 06:56:10 +08:00
morluto 9ba61e8949 fix(ci): let CodeQL main baselines finish (#10146) 2026-11-12 06:48:50 +08:00
Luqman Bramantyo Rahmadiandmorluto dae1551403 feat(setup): support Cline as a client (#10128)
* feat(setup): support Cline as a client

* test(setup): cover Cline doctor and uninstall ownership

* docs(setup): document Cline support

* test(setup): verify Cline against an installed client

* test(setup): include Cline in the exhaustive client detection list

* docs(setup): note that a hand-written rea entry blocks Cline setup

* fix(setup): isolate Cline verification and await MCP discovery

* fix(verification): own and isolate Cline discovery

* fix(setup): preserve native Cline transport settings

---------

Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-11 17:42:53 -05:00
166cba488a fix(adb): classify mDNS wireless serials as TCP (#10134)
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-12 06:20:06 +08:00
0c9ae2f783 fix(native): normalize the CPU names lipo prints for i386 slices (#10136)
cctools lipo prints CPU_TYPE_I386 and CPU_SUBTYPE_I386_ALL for i386 slices, so their CPU codes were unknown and every i386 slice carried unnormalized-text limitations.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-12 06:20:01 +08:00
bbef46e783 fix(hardening): recognize the __chk_fail FORTIFY handler import (#10036)
* fix(hardening): recognize the __chk_fail FORTIFY handler import

glibc exports __chk_fail as the shared failure handler that most FORTIFY
checks funnel into, and its dynamic import is a positive sign that the
binary uses FORTIFY. The ELF FORTIFY matcher accepted __fortify_fail and
__*_chk names, so an image whose only relevant import was __chk_fail was
reported as fortify: unknown with no evidence location.

* style(hardening): wrap the __chk_fail fixture call to the formatter's width

format:check fails on the current head because the new fixture call fits on one line at the file's previous width but exceeds oxfmt's 80-column limit with the longer fortifyName literal.

---------

Co-authored-by: 2SinceJuly <202121119+2SinceJuly@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-11-12 06:19:57 +08:00
morluto 04c622f6e9 fix(browser): preserve physical worker launch failures during cancellation (#10145) 2026-11-12 06:18:04 +08:00
Crimino d6c6b1553d fix(captures): keep escaped JSON strings flat in the capture parser (#10139)
parseCaptureJson retained the strings jsonc-parser 3.3.1 builds fragment by
fragment around each escape, which V8 keeps as ropes several times larger
than their text. Escape-heavy HAR captures therefore exhausted the 192 MiB
decoder heap from about 15 MB, well inside the 32 MiB input budget.

Each string token is now decoded with JSON.parse from its accepted source
span, which yields the same value as one flat string. jsonc-parser reports
malformed strings through onError before the value callback, so JSON.parse
only sees tokens it already accepted. HAR, qlog and Playwright trace
decoding share this parser.

Fixes #10132
2026-11-12 06:07:21 +08:00
morluto 81b305bd1a refactor(process)!: own sampling failures at adapter boundaries (#10141) 2026-11-11 16:48:52 -05:00
morlutoandCursor Agent c5c1ff45fa test(cli): expect a failed exit for an unavailable Cutter session (#10117)
An unavailable session is a typed invalid_request. The CLI treats that
projection as an operation failure and exits 1.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-11 16:44:39 -05:00
morluto ab84ba6839 fix(process)!: retain inspection cancellation and cleanup ownership (#10113)
* fix(process): preserve producer-owned inspection cancellation

Prototype the explicit inspection origin and retained file/batch owner protocol. Downstream adapter migration and lease binding remain required before integration.

* fix(process): type inspection ownership handoffs precisely

* fix(process): retain plain inspection preparation cancellation

* fix(process): retain explicit inspection cleanup and cancellation facts

* fix(process): require explicit inspection facts and cleanup scope

* refactor(process): remove redundant cleanup forwarding wrapper

* fix(firmware): retain inspection cancellation and cleanup ownership

* fix(wakaru): retain typed inspection outcomes and caller scope

* fix(ghidra): preserve inspection facts and launch cleanup scope

* fix(providers): preserve typed process inspection outcomes

* refactor(process): remove obsolete inspection cancellation re-export

* fix(native): preserve inspection preparation cleanup and cancellation

* fix(registration): retain typed inspection cleanup during Git discovery

* fix(process): preserve inspection deadline origin in adapter handoff

* fix(process): consume the canonical inspection selector in binding

* fix(native): preserve inspection deadlines and cleanup retry completion

* test(process): narrow the retained Darwin preparation owner

* fix(providers): preserve preparation ownership and timeout policy

Narrow preparation facts through their canonical owner, preserve actual cleanup capabilities and recorded cancellation, and keep enclosing command deadlines authoritative. Retain raw inspection records through Java refusal and configuration projections without changing availability fallback policy.

* refactor(process): use one inspection failure type owner

* fix(providers): retain recorded secondary failures when rebinding

* fix(ghidra): preserve normalized inspection facts through public projection

* fix(process): normalize native process listing cancellation

* docs(development): clarify failure provenance and cleanup verification

* fix(process): preserve direct inspection cancellation facts

* fix(process): retain inspection owners through termination

* fix(process): preserve command inspection cleanup provenance

* fix(desktop): preserve inspection facts after cleanup retry

* refactor(process)!: migrate desktop capture with inspection producers

* fix(desktop)!: preserve capture failure origins and cleanup owners (#10115)

* fix(desktop): preserve capture failure origins and cleanup

* fix(desktop): type keyring cleanup cancellation

* fix(kuna)!: retain copy cleanup before retiring workspaces (#10114)

* fix(kuna): own copy cancellation and descriptor cleanup

* fix(kuna): close copy descriptors before workspace removal

* test(kuna): type copy lifecycle gates for project library

* docs(kuna): explain retained copy-file cleanup and staging ownership

* docs(kuna): separate cache publication, integrity and cleanup guidance

* fix(desktop): retain sampling inspection owners before release

* fix(process): preserve capture file read cancellation origin

* fix(process): retain capture inspection cancellation and cleanup owners

* fix(process): retain sampling inspection failures in capture scope

* fix(process): retain inspection failures through mandatory cleanup

* fix(process): distinguish sampler shutdown from capture cancellation

* fix(browser): retain startup EOF before later cancellation

* fix(process): bind capture inspection cleanup to the owning run

* test(process): migrate cancellation fixtures to typed owners

Record explicit preparation and command cancellation facts, retain exact opaque reasons and physical causes, and guard the mocked version probe from native preparation. Keep the live Wakaru command control while adding a recording equivalent for bounded source verification.

* fix(process): own sampling reads and settle inspection peers

* fix(errors): retain authored recovery through cleanup composition

* fix(process): retain all sampling inspection leaves for final cleanup

* test(browser): report recording cleanup signal outcome

* fix(process): keep inspection error context out of implicit JSON

* fix(desktop): retain normalized sampling cleanup ownership

* test(process): assert tagged startup cancellation
2026-11-11 16:37:48 -05:00
morluto e966bc06ad test(process): assert recovery for the selected host platform 2026-11-11 15:34:27 -05:00
morluto f668c86271 fix(audit): claim exact map occurrences from late declarations 2026-11-11 15:34:19 -05:00
morluto 7f920465c5 fix(ci): align verification with current lifecycle contracts 2026-11-11 15:10:51 -05:00
morluto aa017c61ff fix(audit): retract map declarations once per source spelling 2026-11-11 15:10:41 -05:00
morluto 4821aaf34b fix(process): preserve capture failures through input cleanup 2026-11-11 15:10:36 -05:00
morluto db5078b0c3 fix(config): validate analysis seeds in diagnostics and registration 2026-11-11 15:10:31 -05:00
0909d89c96 fix(native): list ELF initializers of images with COPY relocations (#10084)
* fix(native): list ELF initializers of images with COPY relocations

inspect-native-initializers reported every init_array and fini_array slot
of a non-PIE executable as unresolved, and ordinary PIE executables as
incomplete, when the image carried a COPY relocation such as the one for
stdout.

The shared dynamic relocation reader had no write extent for COPY or TLS
descriptor relocations, so one such record made pointer coverage unknown.
It now sizes a COPY from the image's own dynamic symbol and a TLS
descriptor as two words. COPY sizes are accepted up to the file byte count
in total, so repeated records cannot multiply consumer work.

The section relocation fallback also treated a record whose destination
has no file bytes, as COPY into .bss does, as an unread table. A linked
image's record now affects only the slots it overlaps in memory.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YT2WLf5G9AnLKF3bZtNLwf

* test(native): cover a COPY relocation against symbol index 0

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YT2WLf5G9AnLKF3bZtNLwf

* fix(native): size section COPY records and keep write extents opt-in

Address two review findings on the COPY relocation change.

The shared dynamic relocation reader yields COPY and TLS descriptor
records as writes only to a consumer that asks for whole extents. The
initializer walk asks. IL2CPP and the Android JNI overlay do not, so
both see these kinds as not decoded, exactly as before this branch.
IL2CPP finds unknown bytes by looking one pointer back from a read, so
a wider write of unknown value was read as stored zeros.

The section fallback takes a COPY record's span from the symbol its
table links to instead of assuming one word. A table counts as not
fully read when that size is not established, or when a record of
unknown extent writes memory that has no file bytes.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YT2WLf5G9AnLKF3bZtNLwf

* refactor(native): size section COPY records in one helper

Move the symbol lookup, the allowance and the unread-table note out of
the record loop, so the loop only asks for the extent a record is known
to write. Behavior is unchanged.

Cover the allowance across two section records, and keep the new test
code within the lint thresholds the base already meets.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YT2WLf5G9AnLKF3bZtNLwf

---------

Co-authored-by: thunderq10 <195775442+thunderq10@users.noreply.github.com>
Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 23:49:30 +08:00