github morluto/rea rea-agents-6.8.0
rea-agents: v6.8.0

3 hours ago

6.8.0 (2026-10-25)

Highlights

  • Build local agent environments from network captures, browser scenarios, or a prompt, then serve derived reads and evidence-gated writes and compare them with fresh application captures.
  • Inspect more shipped formats, including GPU code objects, BEAM, Python bytecode, Unity IL2CPP metadata, Godot PCK, PyInstaller, Node.js SEA, devicetree, and additional PE/ELF tables.
  • Keep large investigations focused with retained summaries, selected fact queries, configurable recovery limits, and row-oriented CLI exports. Complete Evidence remains available.

⚠ BREAKING CHANGES

  • Function analysis: analyze_function now defaults to a retained summary. Set detail: "complete" for the previous inline dossier; the CLI retains its complete default and requires --evidence_output when selecting a summary. #5660. Thanks @CryptoJones, @gensokyo-dev, @RishTheFish21.
  • Accessibility: Accept JSON numbers and booleans in node value, alongside strings and null. Update consumers that previously assumed text-only values. cc90771, #6759, #6467. Thanks @coygeek, @gensokyo-dev, @mvanhorn.
  • JSON Lines: --format jsonl now emits object-collection rows followed by a $rea: "jsonl/v1", type: "metadata" record; scalar selections and unsupported reports are refused. Parse control records separately, select a single supported collection when necessary, and use --format json for the previous whole-document output. See JSON Lines framing. #5629, #5487. Thanks @gensokyo-dev, @jayykernel, @vijaykiran06.
  • Interface Builder: Keyed-archive graph identities use decimal table UIDs instead of authored objectID/object-id. Treat authored IDs as attributes and update persisted graph lookups; ibtool and native NIBArchive identities keep their source semantics. 6fbe67d.
  • Frida: instrument-with-frida JSON returns the canonical Evidence directly. Read normalized_result.cleanup_error instead of the former top-level wrapper field. 48f700e.
  • Reconstruction proof: ID-array proof records no longer establish verified or ready ledgers. Supply implementation/revision bindings and individual claim outcomes; handle inapplicable, unavailable, and failed proof diagnostics. f8b65e7.
  • Mach-O imports: Handle a null import name when identity is ambiguous; use raw_name and name_status to distinguish observed expressions from exact symbols. 5d0d243, 169512a.
  • Node.js: Use a runtime satisfying ^22.23.4 || ^24.22.1 || >=26.12.1; Node 23 and 25 are unsupported. Upgrade Node before installing or updating REA; the installer does not upgrade it. #6315, #6283. Thanks @GamerDubz, @gensokyo-dev, @ShikamaruNaaraa.
  • Browser storage: Historical hashed storage remains readable, but comparisons stay unknown until both captures are recaptured in the new representation. #6341, #6289. Thanks @coygeek, @gongfpp.
  • Environment serving: environment-serve serves derived state by default, including write tools whose effects are confirmed by recorded evidence. Use --replay-only for stateless replay of manifest tools. Read stop-summary state instead of state_evidence_id. #5351, #6158. Thanks @earakely-scale, @gensokyo-dev, @kaoru0822-kitauji.
  • MCP schemas: Input advertisements default to compact. Set REA_MCP_INPUT_SCHEMA_PROFILE=full for complete advertised guidance and nested constraints. #5975. Thanks @gensokyo-dev.
  • Browser console arguments: Accept null argument_types and text_capture.status: "unavailable" when the protocol argument inventory is omitted or malformed; preserve that uncertainty. #6016, #5934. Thanks @coygeek, @kaoru0822-kitauji.
  • Reconstruction summaries: summary.by_evidence_authority is keyed by Evidence authority; read the former source-state counts from required summary.by_source_state. Regenerate ledgers whose closure digests depended on the old projection. #5875, #5838. Thanks @coygeek, @kaoru0822-kitauji.
  • Swift bindings: Conformance type_name and protocol_name may be null; consume typed type_binding/protocol_binding evidence. Replace the former Objective-C-specific import-binding type/schema with MachoImportBinding. d0067ba.
  • WebSocket frames: Accept null opcodes and preserve unknown frame facts; numeric opcodes are restricted to the four-bit protocol range. 0bc2b42.
  • Resource-only inspection: Evidence subjects and executable digests may be null. Use resource_root and each resource's reported provenance instead of requiring an executable target. 6a6adf7.
  • Browser timestamps: Console and session-timeline timestamps may be null when the protocol supplies no finite/comparable time. Keep unknown time explicit in sorting and comparisons. 690fc51, 2a0410f.
  • Reference sources: Read failed root enumeration from rootFailure rather than a synthetic failed child at "."; preserve the top-level source-graph limitation. 6296fdf.
  • Filesystem capture: Accept entry_unavailable and identity_changed enumeration omission reasons in addition to the previous reason literals. c85b44e. Thanks @rudrakshagarwal4200-ai.
  • APK locales: Replace numeric legacy selectors such as es-r419 with es-419 or b+es+419. Two-letter regions remain supported. 29910d1. Thanks @mertkayacs.
  • XML plist scalars: Recognize $plist_type: "unknown" and read element, literal, and reason; unresolved XML scalars use this wrapper instead of the former real/null unknown marker or malformed scalar prefixes. Supported extended UTC years preserve their timestamp. 3537e58.

Changes

Fixes

  • IPS report fields: Preserve the recorded terminating process and PID, termination flags, parent PID, and build/platform metadata. #7079, #7078. Thanks @rodricksz4h5.
  • Ghidra language selection: Accept stock language IDs containing LEBE or slash-separated processor names, and report conflicting DOL language overrides as configuration errors naming REA_GHIDRA_LANGUAGE_ID. #7070, #7072, #7081, #7082. Thanks @Adolanium.
  • Setup and Hopper: Preserve the Linux embedding runtime, supported x86_64 host restriction, readiness-based provider choices, orderly demo-helper shutdown, and installed apt dependency versions. Keep cleanup and skill publication ownership through retries. #5041, #3422, f5d1012, #4966, #6974, 211e353, #6920, #5015, #3419, #4921, #6975. Thanks @Abel-I-Akhigbe, @Adolanium, @DavidFB-creator, @DeryFerd, @gensokyo-dev, @kaoru0822-kitauji, @sx4im.
  • Client setup: Treat empty APPDATA as unset, distinguish MSIX Claude Desktop process views, preserve aliased Hermes server tables, reuse client dialect/alias bindings, and materialize the pinned package-runner cache before the first start. #5126, #4903, #3785, b7eeded, #7032, #5104, #4278, #3320, #7027. Thanks @CmsChase, @coygeek, @myso-kr, @pablodiazjorge, @vaidehi-snk, @wxj006007.
  • Target admission: Preserve thin arm64_32 Mach-O support, distinguish JVM identity before FAT admission, validate FAT format/CPU identity, preserve original DOS header padding, and reject NULs in local objdump/rizin paths. #5788, 6843dbe, 497037e, #7013, #3600, #5713, #6510. Thanks @coygeek, @dhruvac29, @kaoru0822-kitauji, @Lew1sWong, @qorvr.
  • Mach-O and dylibs: Preserve container framing, facts when dyld rejects a missing UUID, verified-signature snapshot identity, unsigned diagnostics, absolute paths inside the selected root, legacy platform rules, lazy-load payloads, and reasons for rejecting present dylibs. cf3288d, 2b263a7, eb7acc7, 1502cfb, 90062c0, #5650, 3b67b36, #5551. Thanks @coygeek.
  • Native facts: Admit direct dispatch-metadata providers; preserve record-local Objective-C omissions, snapshot profiles, class-import binding identity, stripped class labels, version-like names, and qualified Swift protocol identities. 50b6975, 9eec57b, 0ba4d6f, 4d7de00, 22c84ce, 4852c83, aa9043f.
  • Apple resources: Preserve independent plist scalars, processing instructions, nonstandard table widths, unsupported NIB connector coverage, and strict IPS JSON surrogate validation; classify Interface Builder objects by their declared superclass chains. fd728f2, #5806, 4526862, 14cd78c, #6990, #5805, #5228, #5218. Thanks @coygeek, @DeryFerd, @kaoru0822-kitauji, @Mangolycheematcha, @mhamzasakhi, @Shreyash021104.
  • Archives and files: Complete positional ZIP reads, preserve bounded ASAR signatures, report stable symlink loops as resolution failures, retain target applicability, and report unknown traversal coverage. Retain reported integrity contradictions for members present in only one compared artifact. #4414, e8da7e1, #5571, #5763, #5867, #5521, #5731, #5837, #7076. Thanks @Afloat16, @coygeek, @jdotc1, @kaoru0822-kitauji, @WenyuChiou.
  • Extraction and file ownership: Restrict destination-case recovery to owned collisions, retain physical-read failures through late cancellation/cleanup, preserve cleanup capabilities for retry, and retain independent firmware extraction failures. 932fbb7, 9499667, 56679dd, b3c912a, 7298bd0.
  • Processes and cancellation: Retain partial samples and shutdown gaps, unresolved descendants and caller abort reasons; bind cleanup errors to their owners, propagate comparison contradictions, and report no normal exit code for signalled targets. ba866a2, #5270, #6144, a721c42, #6298, #6486, #5935, #5944, #6100, #6101, #6110, #6113, #6121, #6131, #6132, #6218, #6445. Thanks @agorevski, @coygeek, @gongfpp, @kwakhyun, @mhamzasakhi.
  • Provider cleanup: Preserve Windows native handles until close is confirmed, native/Inspector/Electron cleanup ownership, Kuna probe identity and cleanup, IDA registration configuration, and Hopper preparation ownership. #5772, 87ab054, ff78165, 04ae07a, dd0015a, b231c28, #4505, #5616.
  • Provider diagnostics: Give Ghidra restart recovery, stable Homebrew aliases, unsupported-host results for Linux-only integrations, correct IDA regex/readiness handling, and clear diagnostics when Windows refuses a verified native addon. #5356, 7c6142e, #5793, #4862, 99ccfb6, #6832, #5730, #4860, #5723. Thanks @coygeek, @dark13b, @gensokyo-dev, @jgt87, @jpmorris41488, @Lew1sWong.
  • MCP results: Preserve protocol envelopes on oversized errors, enforce and advertise absolute Evidence paths, retain typed output-filter errors and selected JSON paths, and give client/provider timeout recovery. Compact advertisements now normalize reported enum and union shapes for strict gateway translation. 562dab0, 3cf6206, 0e83d92, 4714c7e, 1bfa60a, #5608, #3806, #5598, #3800. Thanks @gensokyo-dev, @Hahaa909, @wang1xiang.
  • Browser lifecycles: Retain historical outcomes through cleanup, stop late navigation before session release, stop expired work, observe aborted fetch settlement, and mark later scenario actions skipped after failure or cancellation. 2e5171e, 599fdac, b2fad36, 13a8640, #6023, #5943. Thanks @coygeek, @kaoru0822-kitauji.
  • Browser comparisons: Preserve frame identity, default origin scope, unknown body/shape coverage, correspondence and uncertainty, and independent retained-observation budgets. #4040, #4413, #4476, a0c22ff, a0fcc60, #3878, #3910, #3941, #4385, #4477. Thanks @Adolanium, @coygeek, @eco-null, @gensokyo-dev, @kaoru0822-kitauji, @XY-code1.
  • Electron observations: Preserve listener callback ownership and count registrations by source callsite; block trash calls in the active hook, retain window handles through cancelled selection, and preserve cancellation during finalization. dfe8378, 5064007, 816a9dc, 1707d17, 4e2a566.
  • JavaScript source maps: Keep unmapped and missing mappings unknown, preserve partial indexed-map facts and section paths, propagate preparation capability errors, and retain observed worker failures through cancellation. a4dbb36, 2b2e362, 498a667, #6149, #6214, f01dcca, #6082, #6061. Thanks @coygeek, @diyasharma05, @kaoru0822-kitauji.
  • JavaScript semantics: Preserve overflowing timer uncertainty, unavailable-scope comparisons, directory-form URL/ESM path intent, and artifact confinement. Replaced globals lose built-in effects; erased imports no longer become runtime bindings. Treat a known truthy fork() silent option as piped stdio unless a string/array stdio override takes precedence; unresolved options stay dynamic. #3456, 8d198d6, #4646, #2700, #4565, #6994, #3400, #3882, #3367, #7083, #7084. Thanks @Adolanium, @amyanger, @coygeek, @gensokyo-dev, @HawkForge, @rohitg00, @viniciusdsandrade.
  • JavaScript routes and imports: Treat path data as route candidates, preserve route flag and lexical RPC identities, package-main trailing-slash selection, catch aliases, and factory parameter ownership. #6360, 38ecc02, #4219, 21097b1, f774dc4, #6349, #4189. Thanks @coygeek, @hemv-857, @kaoru0822-kitauji, @Nikhi00718.
  • Managed/IL2CPP: Preserve extension-only scope uncertainty and type discovery after member limits, nested names, ReadyToRun/declaration facts, selected type scope, valid shared-suffix strings, and truncated IL2CPP metadata prefixes. #5674, #5312, 87fa1b6, bc2d494, 1f0eb22, 4c5fae5, b3aadaf, #5467, #5146. Thanks @coygeek, @eco-null, @elricfd, @umi008.
  • Format boundaries: Preserve independent facts across malformed inputs in model, GPU, WASM, Rust, Android, and SQLite inspection; report optional metadata warnings without discarding core results. eb41f35, #5789, 00a9e95, fc63fe8, 39a91d4, 6c6e2ad, 929a0a7, d137a4c, ef475fc, #5749. Thanks @coygeek, @gensokyo-dev.
  • Capture decoding: Preserve malformed protobuf trailer facts and wire/schema identity, HTTP/2 URI and UTF-8 failure facts, WebMCP property coverage, and offline capture availability without a browser provider. Report invalid record ordinals as selection errors with actual bounds where available, and trim surrounding SP/HTAB from gRPC-web trailer values while preserving internal whitespace. 9cf7a7c, b3c3b21, 4cb1f1d, 51e5938, d23be5c, #6725, #3947, #7067, #7068, #7069, #7071. Thanks @Adolanium, @coygeek, @Sriram-PR.
  • Evidence and errors: Authenticate ledger Evidence before committing; preserve parent-schema diagnostics, canonical correction details and owned cleanup outcomes; identify the rejected function-Evidence side/kind. Fixed allowances now name their actual limits. 0407bbf, #6361, 1629266, #6969, #5860, #6034, #5932, #5847. Thanks @AyoubElleuch, @coygeek, @dhruvac29, @kaoru0822-kitauji.
  • ADB and firmware recovery: Report an unparsed push checksum as unverified, normalize absent installer-package sentinels, describe extraction-relative Unblob links, and avoid recommending a budget increase at its fixed ceiling. #6010, #4073, #4573, #6971, #5924, #4175. Thanks @coygeek, @Ganesh2325, @kaoru0822-kitauji, @Rinkia, @XiaoBinGan, @yankikucuk.
  • CLI formatting: Share Markdown report formatting, exclude inherited row values, and preserve arrays of empty objects as JSON. Render Markdown table headers and cells literally while keeping intraword underscores readable. b784912, #6984, #7058, #7057, #7073. Thanks @Plastic-time, @ShuaixinHuang, @viniciusdsandrade.
  • Format identity: Preserve Python marshal scalar/decode limits, empty optional BEAM chunks, PE resource branch identities and certificate alignment, unsupported compressed ELF notes, and codec-framed GPU bundle extents. 0603223, c46064c, 66671e8, 03077d5, #6721, 9fb8c11, f6a1e2c, #6694. Thanks @coygeek, @Deepak-Kambala.
  • WASM and APK metadata: Preserve ambiguous WASM identity and partial facts, glue URL query/fragment text across line terminators, APK signer identity, and raw issuer identity when comparison rules are unknown. af8f0ba, #6802, f783f0f, 115a78f, #6639. Thanks @coygeek, @gensokyo-dev, @gongfpp.
  • Source identity: Preserve Next route spelling, module grammar and loader request identity, directory package-main behavior, accessor effects, exact source targets, and resolver-discovery versus module-loading distinctions. ddd7ac7, 9974512, f2e5fd1, baf1678, 6e324b2, 75daf0c, f91b7f8.
  • Graphs and selected facts: Preserve JavaScript graph omissions/version facts, Electron native-loader facts, web JSON identity/coverage, module-path selection, feature-trace qualifications, selected native paths, endpoint context, and mixed Swift demangler outcomes. 30db499, 5a7bddb, 79805f2, f719dc4, 7784fdb, 76500f1, 676d29f, edf7b3d, 93de7bc.
  • Managed boundaries: Honor native platform symbol lookup, consume resolved IL2CPP ELF declarations, and attribute malformed comparison inputs to the supplied argument. 64fa1db, 87745af, 96ad94f.
  • Provider and worker recovery: Preserve output loss after successful command exit, physical refusal diagnostics, bounded worker control framing, JavaScript worker-phase/budget attribution, admitted ambiguity choices, and selected EVM limiter availability. Scope objdump debug-link limitations to DWARF requests and keep process-capture preparation nonexecuting. e639edf, 171b33b, 34563fc, 3f9357b, cec8f1e, a74d859, c284168, 4fb936f.
  • Setup and limits: Retain unknown environment-budget facts, selected-skill/maintenance uncertainty, Hopper URL admission and bookmark verification, and listener failure recovery that matches the system cause. a718037, d1fbebb, 60accad, fd7da77, 0c440bf.
  • State and Evidence: Retain export tarball ownership and SQLite primary outcomes through cleanup retry, count emitted SQLite schema names across encodings, scope display refresh to matching snapshot bindings, and report retained-result validation failures consistently. Reconstruction uses one effective completion scope and kind-based labels when names are blank. ab58edc, 1006714, a47788a, 8aa40e9, b8c1b45, a35b933, #6137, #6126. Thanks @carlogiovannineri-rgb, @mohithhhh.
  • Capture coverage: Name browser bundle budgets and deadline recovery, separate domain readiness from worker attribution, attribute rendered-frame omissions to their producing stage, share offline-capture host admission with discovery, preserve selected signal-file semantics, and retain short Flutter GNU build IDs. #6036, ba78133, 5934387, ad629b2, 928ba76, 678c4cf.
  • Additional boundary facts: Retain parser format/query occurrence identity and independent malformed-input facts, unresolved nested Swift identifiers, and completed signing-capture coverage; describe crash documents without assuming a provider. 5f702dd, 99d2d7a, 90e433d, #5548, ee12d51, #5538. Thanks @coygeek, @ShuaixinHuang.
  • Documentation: Add the Romanian README. #7026. Thanks @An3treiu.

Full contribution record: 1740 commits and 497 merged PRs.

Don't miss a new rea release

NewReleases is sending notifications on new releases.