6.9.0 (2026-11-11)
Highlights
- Build and test desktop tasks from recorded application state, including downloaded Linux apps, reusable build computers and multiple tasks per capture.
- Inspect more shipped artifacts offline: standalone application bundles, embedded firmware, NTFS acquisitions, API contracts and V8 code-cache containers.
- Keep native and runtime investigations grounded in retained Evidence, with paged results, explicit coverage and recoverable resource limits.
Changes
- Analyze targets and create private runtimes on fixed local ReFS volumes as well as NTFS, preserving persistent ACL, file identity, snapshot and cleanup checks. #10086. Thanks @QianNangong.
- Capture, export and witness desktop tasks inside a build computer; keep an agentenv computer available through MCP and prepare a build host from one command. #8954, #9041, #9045, #9049, #9199. Thanks @earakely-scale.
- Install desktop apps from SHA-256-pinned AppImages or upstream archives, retain selected package dependencies, and isolate explicitly declared build secrets. #9215, #9112, #9225. Thanks @earakely-scale.
- Choose seed/end checkpoints, open seed documents at launch, build several tasks from one capture, and evaluate unreadable app state through headless checks or a screen judge. #9037, #9054, #9216, #9217, issue morluto/rea#9676. Thanks @earakely-scale.
- Read gzip and XML desktop documents and draft assertions for nested fields, attribute text, child text and member counts. #9050, #9111, #9114, #9132, #9185. Thanks @earakely-scale.
- Inventory and extract .NET single-file, Bun standalone and Deno compile executables, with caller-selected entries and output destinations. #3787, #4031, #6998, #8527, issue morluto/rea#2352, issue morluto/rea#3490. Thanks @gensokyo-dev, @jsk1004ha, @matbrgz, @mvanhorn, @Rinkia, @Zhong-fan.
- Read UnityFS bundles, Godot 3 PCK archives, WeChat mini-program packages, Zstandard ZIP members and classic iNES regions. #7699, #7781, #8148, #7780, #2816. Thanks @blankym, @gensokyo-dev, @ShuaixinHuang, @XiaoBinGan, @Zhong-fan.
- Inspect and extract Intel HEX, Motorola S-record, U-Boot uImage/FIT, ESP flash, UF2 and DfuSe firmware regions while retaining their container declarations. #7136, #7234, #7771, #7498, #8228, #8230. Thanks @555aaditya, @Entrpi, @gensokyo-dev, @iamcipherdev.
- Inventory offline NTFS MFT records and paired USN journal acquisitions; retain source names, journal-version coverage and verified extension-attribute ownership. #9911, #9914, #9957, #10006, issue morluto/rea#9867. Thanks @2SinceJuly, @gensokyo-dev, @jayykernel, @N0zoM1z0.
- Inspect V8 code-cache headers and retained byte patterns without executing the cache; report Electron cachedData boundaries and custom URL protocol registrations. #8993, #9501, #2978. Thanks @2SinceJuly, @gensokyo-dev, @UnknownHacker1, @XiaoBinGan.
- Inventory local OpenAPI operations and GraphQL SDL fields/references; compare static JavaScript endpoints with HAR observations. #9104, #9140, #9090, issue morluto/rea#3591. Thanks @gensokyo-dev, @Y0UW1SH.
- Import saved Playwright v10 trace Evidence, page scenario summaries, reuse saved response values across steps, and validate browser scenarios offline. #9127, #7120, #7267, #7343, issue morluto/rea#5488, issue morluto/rea#6167. Thanks @debavelaerel, @earakely-scale, @gensokyo-dev, @jayykernel, @kaoru0822-kitauji, @z2Ace0107.
- Replay captured environment writes, including variable member sets, sorted creates, references, toggles and subsequent reads that explain the resulting state. #7260, #7274, #7332, #7539, #7600. Thanks @earakely-scale.
- Apply selected R8 mappings, inspect Android manifest component declarations, link static JNI candidates and trace callers of external DEX methods. #7456, #7379, #7472, #8154, issue morluto/rea#4448, issue morluto/rea#6329, issue morluto/rea#6403, issue morluto/rea#7811. Thanks @555aaditya, @coygeek, @gensokyo-dev, @harshjohiya, @jayykernel, @Rinkia, @xu91102.
- Expose managed field defaults, project retained member views, suggest Unity managed members and retain IL2CPP v108 header/string Evidence. #8015, #7968, #5511, #9925, issue morluto/rea#7282. Thanks @379061296, @8rulerstar, @dhruvac29, @Entrpi, @gensokyo-dev, @Henglie, @kaoru0822-kitauji, @ShuaixinHuang, @XiaoBinGan, @xu91102.
- Report ELF/PE/Mach-O hardening, per-slice Mach-O encryption, initializer/finalizer functions and ELF function ranges recovered from unwind tables. #8524, #5359, #9574, #9585, issue morluto/rea#4306. Thanks @chordpli, @coygeek, @gensokyo-dev, @mvanhorn.
- Read Linux core-dump process/mapping notes, kernel version/configuration data and Android ELF identity notes; join Apple IPS images to admitted Mach-O slices. #8830, #9573, #9502, #9570. Thanks @2SinceJuly, @mvanhorn, @rishikeshgowdakk, @saariuslystoned.
- Open native extension/framework/XPC/plugin bundles, retain LLDB source coordinates and recover bounded Go string literals from pointer/length headers. #8117, #2800, #9206. Thanks @kaoru0822-kitauji, @matbrgz, @saariuslystoned.
- Reuse Ghidra projects through verified copies and checkpoint owned Programs across sessions; add Windows P0 DOS MZ and RISC-V ilp32 admission. #7236, #9236, #7144, #8229, issue morluto/rea#1048. Thanks @akushonkamen, @corysutyak, @dark13b, @Entrpi, @gensokyo-dev.
- Retry failed Kuna or directory decompiles independently and preserve stored pointer references and decompile-export source facts. #8793, #8811, #8851, #8805.
- Read selected Evidence records and discover missing links without transferring whole bundles; aggregate retained comparison references and compare artifact inventories. #8528, #8633, #8267, #7869, issue morluto/rea#7678, issue morluto/rea#8214, issue morluto/rea#8307, issue morluto/rea#8454. Thanks @Entrpi, @gensokyo-dev, @kaoru0822-kitauji.
- Page retained native observations, procedure/instruction references, feature traces and batch decompile summaries instead of repeating complete results. #7134, #7146, #8585, #8588, #8591, #8594, #8629, #8631, issue morluto/rea#8498, issue morluto/rea#8510. Thanks @gensokyo-dev, @kaoru0822-kitauji.
- Expose guided workflows and installed guidance search through CLI/MCP, recover from common argument-name mistakes, and support CSV/TSV analysis views. #6995, #6996, #8305, #8649, #7254, issue morluto/rea#2146, issue morluto/rea#5482, issue morluto/rea#6916, issue morluto/rea#6918, issue morluto/rea#8290. Thanks @coygeek, @Deepak-Kambala, @gensokyo-dev, @HarsH-1877, @jayykernel, @kaoru0822-kitauji, @pablodiazjorge, @Tapraj-Pathak.
- Select MCP tool families and compact output schemas; refresh provider candidates without switching and inspect provider-selection/release-verification diagnostics. #7228, #7218, #8487, #8485, #9171, #9603, issue morluto/rea#2512, issue morluto/rea#3246, issue morluto/rea#8403, issue morluto/rea#9134, issue morluto/rea#9136. Thanks @0xLLVEL, @2SinceJuly, @akshad-exe, @codebuff-team, @gensokyo-dev, @Henglie, @phucicb-hub, @wu546526.
- Add non-executing process-scenario dry runs, opt-in command timings and caller-selected reference-source exclusions. #8469, #7042, #2630, issue morluto/rea#2443, issue morluto/rea#5484, issue morluto/rea#8398. Thanks @2SinceJuly, @dhruvac29, @gensokyo-dev, @jayykernel, @matbrgz, @trackoor, @YunzhouLi-hub.
- Make resource-budget failures actionable across CLI/MCP and read per-call limits from the selected operation snapshot. #9706, #9889, issue morluto/rea#9881.
- Ship self-contained Claude Code/Codex plugin installs and a Cursor Marketplace plugin; add CodeBuddy and LM Studio setup registration. #7514, #9878, #2492, #8611, issue morluto/rea#2490. Thanks @cainiao1992, @cpruijsen, @GamerDubz, @gensokyo-dev.
- Inspect Windows Shell Link files and qualify recognized Python 3.14/3.15 pyc headers; choose Rizin decoder and map address for one-shot commands. #7859, #8927, #8991, issue morluto/rea#8206. Thanks @Entrpi, @mvanhorn, @XiaoBinGan, @xuanhieu.
- Register REA with Cline through its native MCP client settings during setup. #10128, issue morluto/rea#10127. Thanks @bramrahmadi.
Fixes
- Keep UnityFS directory and payload reads within the declared bundle, reject undersized declarations, and prevent appended bytes from replacing the inventory or increasing its work budget. 58a0511660.
- Validate runtime configuration before doctor reports readiness or registration writes files; preserve the source of malformed stored settings and proposed overrides. #10102.
- Retry owned inspection descriptors before fresh process queries, preserve physical failures alongside cancellation, and retain cleanup authority until release succeeds. #10113, #10141, #10109.
- Keep distinct linker-map occurrences when source-map declarations overlap, including path spellings that normalize to the same location. aa017c61ff, f668c86271.
- Preserve remote OpenCode registrations and Hermes YAML anchor consumers instead of treating REA-like text as proof of local ownership. #5152, issue morluto/rea#3325. Thanks @coygeek, @gensokyo-dev, @xu91102.
- Reject malformed UTF-8 CDP discovery replies, preserve partial Playwright-import Evidence, and retain initial child scope when replaying WebMCP scripts. #4524, #9543. Thanks @Afloat16, @Plastic-time.
- Report unsupported filesystem paths and host-capacity failures at the responsible adb input boundary; retain local filesystem error provenance. #6188. Thanks @chordpli.
- Preserve uncertainty when JavaScript alias walks exhaust their budget, keep unisolated program-var routes unknown, and analyze first-party code before dependencies. #9387, #6778, #9341, issue morluto/rea#8201, issue morluto/rea#9321. Thanks @gongfpp, @mvanhorn, @Rfxan, @xuanhieu, @yaneyba.
- Resolve relative ESM backslash paths and exported/computed initializers; reject TLS versions and child-process literals Node itself refuses. #4323, #5387, #9557, #9594, issue morluto/rea#4269. Thanks @6eanut, @ahmed-husssain, @coygeek, @XiaoBinGan.
- Validate PE certificate alignment, name structures and RDN grouping, and distinguish legacy Windows targets before PE header admission. #9276, #9625, #10048, #10070, issue morluto/rea#10003, issue morluto/rea#9946. Thanks @AixSxT, @coygeek, @gensokyo-dev, @N0zoM1z0, @ShuaixinHuang, @wunianze666-netizen.
- Retain UTF-8 ZIP names in desktop exports, resolve nested desktop-entry IDs, and preserve reader inspection failures. #9431, #9563, #9773, issue morluto/rea#9449, issue morluto/rea#9558, issue morluto/rea#9766. Thanks @2SinceJuly, @ShuaixinHuang, @xu91102.
- Report the actual link-time kernel banner, list ELF initializers in images with COPY relocations, and leave cross-code-page shortcut-icon comparisons unknown. #9690, #10084, #9691, issue morluto/rea#9688, issue morluto/rea#9689. Thanks @Plastic-time, @thunderq10.
- Retain actionable debugger/provider failures: reconnect stale JEB MCP sessions, preserve GDB inferior-TTY checks, and report invalid IDA regex syntax. #3754, #5539, #9544, issue morluto/rea#5099. Thanks @akushonkamen, @coygeek, @flitzrrr, @Plastic-time.
- Keep missing native call-input bindings and exhausted MCP discovery pages distinct from absence. #10088, #10017, issue morluto/rea#8358, issue morluto/rea#9995. Thanks @coygeek, @gensokyo-dev, @N0zoM1z0.
- Preserve admitted EVM and pwntools replies and completed SQLite member facts through acquisition/finalization failures. d77cf61, e813c4c, 669e617.
- Attribute keyed-archive errors to the archive argument, distinguish launcher failures from registry errors, and validate capture limiters before starting work. #7731, #7843, #7947, issue morluto/rea#7292, issue morluto/rea#7597, issue morluto/rea#7630, issue morluto/rea#7638. Thanks @coygeek, @gensokyo-dev.
- Preserve unknown CDP coordinates and prior-hop response facts, deduplicate scenario guidance and recognize AppKit cell ownership. #7842, #7807, #7933, #7916, issue morluto/rea#7342, issue morluto/rea#7426, issue morluto/rea#7434, issue morluto/rea#7681. Thanks @coygeek, @gensokyo-dev.
- Read legacy Erlang atom tables correctly, exclude Harmony symlinks from unavailable files, and preserve uncertain JavaScript with-scope member writes. #7844, #7886, #7914, issue morluto/rea#7418, issue morluto/rea#7545, issue morluto/rea#7602. Thanks @coygeek.
- Preserve known artifact metadata without hashes, report missing Ghidra project programs as configuration errors, and retain unbacked file-offset diagnostics. #7932, #8222, #8308, issue morluto/rea#7341, issue morluto/rea#8216, issue morluto/rea#8244. Thanks @coygeek, @kaoru0822-kitauji, @macjayz.
- Scope Hopper recovery to the caller lifetime and preserve Mach-O host-slice, Godot digest, browser-resource and selected-slice distinctions. #9905, #10016.
- Retain partial OpenAPI Evidence, reject unrepresentable adb activity arguments, and preserve worker, Frida and owned-command failure/cancellation facts through cleanup. #9908, #9918, #10055, #9963, #9964.
- Decode escaped HAR, qlog and Playwright JSON strings without retaining the fragmented strings that inflated decoder heap usage. #10139, issue morluto/rea#10132. Thanks @fcumaoglu, @mecrimino.
- Preserve physical web-worker launch failures as the primary error when cancellation overlaps; retain cancellation separately from the exact launcher observation. #10145.
- Classify adb wireless-debugging mDNS serials as TCP while preserving USB precedence and unknown device kind. #10134. Thanks @rudycelekli.
- Normalize lipo’s i386 CPU spelling before Mach-O slice selection and recognize the
__chk_failFORTIFY handler import. #10136, #10036, issue morluto/rea#10025. Thanks @2SinceJuly, @coygeek, @rudycelekli. - Retain process CLI cleanup owners until delivery, preserve known local retry leases alongside unknown prior cleanup, and align lifecycle boundaries with tagged cancellation facts. #10147. Thanks @wunianze666-netizen.
- Count only syntactically valid CSP nonce/hash sources when reporting browser policy. #10135. Thanks @rudycelekli.
- Reject ELF tables inside the declared header and unmatched NT_FILE mapping pathnames; keep PE imports within their declared directory bounds. #10133, #10138, #10044. Thanks @rudycelekli, @ShuaixinHuang, @wunianze666-netizen.
- Classify private nested Swift types by their own kind rather than their enclosing declaration. #10085, issue morluto/rea#7501. Thanks @BeqaKs, @Rinkia.
⚠ BREAKING CHANGES
- Settings clients must replace
effect,rea_restart_required,restart_requiredandrestartRequiredwithupdate_mode(runtime,restart,parameter) andpending_restart. Parameter-supplied limits cannot be changed by the runtime setter; restart-mode values retain their startup value until restart. #9885, be20bdfb26f7, aee1178839dd. Thanks @gensokyo-dev, @N0zoM1z0. - Process and desktop callers must inspect
details.secondary_failures/secondaryFailures: mixed batches keep physical/provider failures primary and retain typed cancellation with its original cause. Retained descriptors can producecleanup_incomplete; follow the returned recovery instead of treating it as ordinary cancellation. Custom adapters must consume owner-issued inspection/sampling facts and retain their cleanup scopes until release succeeds. #10141, #10113, #10109. rea mcp add --commandnow accepts a local stdio launcher only: HTTP(S) executable URLs are rejected before settings writes, and package acquisition is removed. Configure remote transports in each client’s native settings and install/select the local launcher before registration. #10102.- Runtime-instance graph identities now require
identity.capture_evidence_idin addition to the capture digest and runtime key. Node IDs digest that identity, so regenerate reconciliation Evidence and rebuild node-keyed lookups even when the digest and runtime key are unchanged. #10063. - Retained process symlinks require their stored target bytes; recapture legacy observations that only described a link without retaining its target. #10082.
- Function dossiers must record Swift literal inventory and its omissions together. Regenerate one-sided observations through a canonical provider; both-absent unsupported observations remain valid. #10068.
- Conformance manifest schema v2 separates exact string markers from fragments and rejects the old ambiguous
stringsfield. Regenerate unversioned fixtures withnpm run build:fixtures. #9977. - Unavailable native/BEAM/Go/Rust view collections return
items.rows: null,coverage.status: "unavailable",coverage.total: nullandcoverage.exhausted: false; recorded empty collections still returnrows: []. Refresh schemas, stop paging unavailable data and inspectunknowns; older saved views retain their recorded facts. #9893, #8291, issue morluto/rea#8276. Thanks @Xinglan233. - Desktop witnessing requires the current generated verifier: re-export old bundles using their original Evidence/task inputs. Pre-6.9 captures missing required
state.baseline_non_filesare rejected before state inspection, drafting or export; capture the application again to obtain contemporaneous SQLite member facts. #9898, #9470. - New browser captures record
save: []for request actions that save nothing, changing scenario/Evidence digests. Keep historical digests with historical captures and use freshly recorded digests for new ones. #9896. - Selected SQLite rows require
row_offsetandnext_row_offset;rows.orderisrowid,primary_keyorunspecified. A null next offset means either no continuation or no stated order: an unordered sample can still havetruncated: true. Inspect bothorderandtruncatedbefore concluding the sample is complete. #9331, issue morluto/rea#8234. Thanks @2SinceJuly, @555aaditya. - Windows entropy Evidence now uses the admitted filesystem path spelling, so fresh analysis of a differently cased caller path can change
evidence_id. Invalidate or re-key cached associations against the fresh Evidence, retaining old IDs only for their original observations. #9393. Thanks @HusnainMaroof. caller_input_pathsvalues may be ordered arrays of strings as well as strings. Update strict consumers to preserve repeated selections. #9626, #9624.observe_javascript_runtimeadds requiredexecution_context_idfields to scripts and contexts.context_keyis an opaque capture-local lifetime identity, not a reusable protocol ID, and Evidence identities change. Refresh schemas and recapture when new lifetime associations are needed. #9471, issue morluto/rea#3382. Thanks @coygeek.- Refresh cached
inspect_address_contextschemas: unavailable facets may carry typed input or resource-constraint errors while successful sibling facets remain available. #8444, #8424, #8419. analyze_function/trace_native_valuesrequirenative_value_flow.limitationson available and unavailable variants. Ghidra memory effects cover explicit high-p-codeLOAD/STOREoperations only; empty effects do not prove no memory access. Thevalue_flow_effect_scopeprofile commitment invalidates older snapshots: retain embedded historical Evidence, reopen without the snapshot and save a fresh one. #8651.- Ghidra byte searches require
skipped_overlays; loaded overlays no longer count as not loaded, and adjacent initialized blocks are searched with explicit coverage. Reopen targets and save fresh analysis snapshots after the profile/search-policy changes; historical Evidence stays importable. #8608, #8376, #8840, issue morluto/rea#8374, issue morluto/rea#8563, issue morluto/rea#8607. compare_functionsaddsfunction_match.method: "same-evidence"when both inputs authenticate to one Evidence ID and entry comparison is unavailable. Accept the new matched variant, retain unknown dimensions and do not infer complete equivalence; one observation cannot have contradictory changed dimensions or hashes. #8442, issue morluto/rea#8367.- Kuna
analyze_functioncan returnnative_value_flow: {available: false, reason, limitations}instead of null. Checkavailableand preserve the provider reason; null means procedure-scoped unrecorded unknown, not confirmed absence. The workflow-profile digest changes: older trace Evidence remains history but must be rerun to satisfy current replay. #8785, issue morluto/rea#8783. - The opt-in hot/cold MCP catalog no longer preloads
inspect_analysis_view. Discover it before use or batch it with its producer; the default full catalog remains available. #9151. Thanks @gensokyo-dev. batch_decompileand retained batch views now useitems[].status: "unavailable"withreason: "no_pseudocode"for null pseudocode, replacing the formererror/capability_unavailableitem. Empty or non-text values remainstatus: "error"withunreadable_output. Both count towardfailed; preserve item limitations and accept historical error items. #8737, issue morluto/rea#8736.import_evidence_bundle/CLIevidence-importnow reject snapshot-shaped JSON withinvalid_requestinstead ofevidence_integrity_mismatch. Restore it withopen_binary.snapshot_pathor a compatible CLI--snapshot; bundle imports require a canonical bundle fromexport_evidence_bundle. #8867.- REA-launched Chromium keeps its sandbox. If launch fails on root/container hosts, first enable host sandbox support, such as a suitable non-root user or namespace/setuid facilities. The explicit
REA_BROWSER_NO_SANDBOX=truefallback disables Chromium’s sandbox and does not establish an REA isolation boundary. #8738, issue morluto/rea#8722. Thanks @chordpli, @hkeysai. - Fresh objdump Evidence changes provider identity from
gnu.objdump/GNU objdumpto{id: "objdump.command", name: "objdump command", version: null}; launch errors use the same ID and architecture-list subjects may be null. Update provider-keyed caches/readers and retain the selected executable parameters without assuming GNU semantics; historical Evidence stays readable. #8824, issue morluto/rea#8823. - Kuna verification policy is separate from analysis identity. Earlier snapshots and resumable directory exports are incompatible even with the same executable. Preserve old files, reopen without the snapshot and save a fresh one or choose a new export directory; the Kuna guide explains extracting/importing embedded Evidence as history. #8699.
inspect_analysis_viewrejects mismatched native parent predicates withinvalid_requestatsource.predicate_type: function/inventory/observation views requirerea.analysis, and matching views requirerea.native-function-matching. Select the original correctly typed Evidence or rerun its producer; patching an existing predicate invalidates its identity. #8451.trace_featurecan succeed when xrefs exist but owner lookup is unavailable. Acceptreferences[].containing_procedure.status: "unavailable"with provider/reason fields instead of requiring afoundmember, and inspectresidual_unknowns;truncated: falsedoes not establish resolved ownership. #8368.close_binaryretains investigation records; usereset_investigationto clear them. Cross-process recovery requires an explicitly acknowledged Evidence-bundle checkpoint. #8361, issue morluto/rea#8347. Thanks @gensokyo-dev.compare_functionsadds the matchedfunction_match.method: "same-entry"variant with requiredentry_addresswhen authenticated artifact, architecture, mapping, slice and entry commitments agree despite a rename. Refresh schemas and keep name/identity changes separate from entry correspondence. #8263, issue morluto/rea#8213. Thanks @gensokyo-dev.inspect_native_load_imageNativeAOTmetadata_recoveryuses a status-discriminated union: complete reports requirereason: null; partial/not-applicable reports carry{code, ...}instead of prose reasons. Branch on codes and their fields while preserving historical/optional-extension strings. Invalid budgets now produce typed input/resource errors. #8053.trace_javascript_semanticsaddsinfluencesedges and moves direct literal-argument seeds from call-site to expression nodes. Relevant unknown dependencies can changefoundtopartial: handle that status and inspect unknowns. Reanalyze retained application graphs to obtain the new edges; old graphs stay readable. #7939, issue morluto/rea#7500. Thanks @Rinkia.inspect_managed_memberschangessignature_resolutionfromtype-names-v1totype-names-v2and appends readable names to signature operands, such asclass:4 (Fixture.Program). Branch on the resolution version, accept annotated v2 strings and preserve historical v1/null displays. Signature digests are unchanged;InternalCallmethods remain runtime-provided boundaries. #5309, #9547, issue morluto/rea#5149. Thanks @elricfd, @gensokyo-dev, @ln-bodicherla, @Plastic-time.- MCP calls default to 1,024 combined array elements/object members; excess input is rejected before dispatch with nonretryable
resource_constraint,resource: "transport"andreported_limits.max_input_elements. For larger inline calls, setREA_MCP_MAX_INPUT_ELEMENTSto a digit-only positive decimal safe integer (1–9007199254740991) and restart, or select retained/file inputs. Fractional/exponent spellings are invalid; inputs are never truncated. #7905, issue morluto/rea#7882. Thanks @gensokyo-dev. inspect_machotext names/paths can be null for non-UTF-8 bytes, withname_bytes_hex,segment_bytes_hexandpath_bytes_hexalternatives; unsafe numeric sizes/offsets/alignments can be null with exact companion fields, and delayed-initoptionsare numeric. Refresh schemas and preserve these facts; absent byte fields in older Evidence remain unrecorded. #7952, issue morluto/rea#7391. Thanks @coygeek.- Environment file-source errors move from the generic
evidenceissue path tocaptureforenvironment-buildandsource.pathfor environment bundle build/export. Missing/non-file/invalid UTF-8/JSON sources returninvalid_requestwithinvalid_value/invalid_formatissues andinspect_input_contractrecovery; repair the selected file. #7900, issue morluto/rea#7523. Thanks @coygeek. - Selected unpaired UTF-16 surrogates now make TOON, Markdown, CSV and TSV output fail with
invalid_requestand a nonzero exit even after a successful operation; Markdown also refuses NUL. Use--format jsonor--format yamlto preserve these values rather than accepting substituted text. #7852, issue morluto/rea#7592, issue morluto/rea#7593. Thanks @coygeek. - Reconstruction
evidence_bundleinputs reject authenticated standalone records asinvalid_requestwith field-level issues instead of accepting/misclassifying them as damaged bundles. Bundle-file import/export/comparison reportsinvalid_request/invalid_inputwithdetails.reason: "wrong-kind". Supply a canonical bundle fromexport_evidence_bundle; tampered data remains an integrity failure. #7895, issue morluto/rea#7562. Thanks @coygeek. - Environment coverage can use
method-replayfor non-GET safe reads. Clock-generating write plans without a global clock anchor now returnserved: false,reason: "unknown-clock"instead of being served. Extend reason handling and recapture usable start times/completed durations before replaying those writes. #7834, 63220edcc3b4, issue morluto/rea#7387. Thanks @coygeek. - Ghidra returns
not-in-listingfor in-memory addresses lacking listed instructions or defined data, replacing the formerundecodableinterpretation. Accept the new status and recreate snapshots after the raw-profile change; retain old embedded Evidence as history. #7823, issue morluto/rea#7490. Thanks @Entrpi. capture_process_scenario/CLI process capture rejectscolumns: 1before target launch; update both initial terminal widths and every resize to at least 2. Sensitive interactiondatais empty withsensitive/input_bytes, and raw echoes are redacted. Recapture both sides before comparing older private-input Evidence. #7848, #7804, issue morluto/rea#7582, issue morluto/rea#7782. Thanks @coygeek, @gensokyo-dev.- Managed setup registrations bind the selected absolute runtime and REA entry script, including package-runner cache paths. Keep that installation available; unknown registrations need confirmed manual repair. Setup no longer returns
prewarmor emits its progress events. c77735fa83a6. Thanks @gensokyo-dev. - macOS Hopper launch paths/arguments reject double quotes, backslashes and line breaks before handoff. Select literal-safe prepared paths/loader arguments or a compatible provider. #7732, issue morluto/rea#7727. Thanks @gensokyo-dev.
- New JavaScript application graphs omit the derived package
rendererproperty. Userenderer_declarationsfor source fields and package-load edges for the selected candidate; historical Evidence remains readable. 5cf7133f823b. - Replace Cutter
--json=true/falsewith--json-output=true/false; bare--jsonstill selects CLI result formatting. Replacerea compare-bundleswithrea compare; MCPcompare_bundlesis unchanged. 567ea4b1e8bb, 3515b262218f. - JEB engine refusals report
execution_failurerather thanunsupported_target; inspect retained upstream diagnostics for recovery. c4cdb7658b0e. - ASAR file occurrences may contain
unpacked: false. Accept an optional boolean; absent historical fields remain unknown. 60834e391c3f. - Non-loopback MCP HTTP binds require
MCP_ALLOWED_HOSTSorrea mcp --http --allowed-hosts. Bundle names must be unchanged HTTP hostnames within the 63-octet DNS-label limit. #7172. Thanks @DeryFerd, @gensokyo-dev. binary_session {}is compact by default and omits provider availability diagnostics/remediation, target-support diagnostics/capabilities and tool-group surface/effects/annotations. Request{"detail":"complete"}for these facts and recovery guidance. #7127, issue morluto/rea#7109. Thanks @kaoru0822-kitauji.- Native input errors now include
details.operationand field-leveldetails.issues. Supply a nonemptytrace_native_values.procedure; CLItrace-native-valuesrejects an empty procedure before opening the target asVALIDATION_ERRORwithfieldErrors, while MCP reportsinvalid_requestatprocedure. #7889, issue morluto/rea#7572. Thanks @coygeek. - Readable JavaScript members that normalize to one logical path now stop
analyze_javascript_applicationwithartifact_operation_failed,details.reason: "path"and a partial inventory instead of selecting one occurrence. Inspect the inventory and analyze a copy without collisions; all-unavailable colliding sources remain unknown. #7864, issue morluto/rea#7626. Thanks @coygeek. trace_web_module_importswith an empty/relativeREA_BROWSER_EXECUTABLEnow reportscapability_unavailablewithinvalid_browser_executableinstead ofmissing_browser_executable, retainingdetails.diagnostics.executable. Set an absolute Chromium path; an unset selection still means missing. #7903, issue morluto/rea#7639. Thanks @coygeek.- Unresolvable
import-reference-sourceroots, capture scenario files and web-network capture/Protobuf descriptor paths (ELOOP/ENAMETOOLONG) now reportinvalid_request/invalid_inputwith responsible field/host-code issues rather than generic execution/unreadable-output failures. Repair the symlink chain or choose a shorter path. #7847, #7814, issue morluto/rea#7607, issue morluto/rea#7636. Thanks @Abelo9996, @coygeek. close_binarywithsnapshot_pathon a profileless/archive target now returns nonretryablecapability_unavailableinstead ofevidence_integrity_mismatch, writes no snapshot and leaves the session open. Export needed Evidence, then close again withoutsnapshot_path. #7837, issue morluto/rea#7311. Thanks @coygeek.- adb local-file refusals occur before device commands: missing/non-file/uninspectable
local_path/apk_pathand file-blockedoutput_directoryreturninvalid_requestwith field issues/host codes; output-producing calls formerly usedunreadable_output. Supply regular source files and a directory path whose parents are directories. #7885, issue morluto/rea#7549, issue morluto/rea#7550. Thanks @coygeek. - Evidence writes failing with
EFBIG,ENOSPCorEDQUOTnow report nonretryableresource_constraint,details.reason: "storage-limit", path and optionalsystem_codeinstead ofexecution_failure/io. Raise file-size allowance or free space/quota before retrying; a failed staged-file cleanup remainscleanup_incomplete. #7887, issue morluto/rea#7573. Thanks @coygeek. - PE signers add optional nullable
unsigned_attribute_oids: fresh null means absent, an OID array means present, and omission in old Evidence is unrecorded. Unsigned attributes producecoverage.status: "partial"because nested signatures/timestamp contents remain undecoded; accept the new field and limitations. #7920, issue morluto/rea#7767. Thanks @Rinkia. - Valid ASN.1 exceeding certificate nesting/OID allowances now returns nonretryable
resource_constraintrather thaninvalid_request/invalid_input, withmax_asn1_depth/max_oid_bytes. These format/resource bounds have no runtime override; retain the diagnostics and use an independently suitable parser when necessary. #9932. trace_call_path/build_call_pathrequire discovery and observed-result fields insearch_scope. An exhausted observed graph can still yieldgoal_status: "unknown"when provider discovery is incomplete. Refresh result schemas and workflow-profile expectations instead of equating graph exhaustion with complete discovery. #8443.inspect_native_instructionaddscontaining_instructionfornot-instruction-boundaryandcontaining_datafordata, with address/extent/identity/provenance. Accept these facts; omission in old Evidence is unrecorded. The Ghidra profile changes: reopen and save a fresh snapshot. #8777.trace_native_valuesadds requiredpage_truncatedand taggedtraversalcoverage.truncatedcombines page omission with traversal truncation; exactly filling a budget alone no longer proves truncation. Inspect page coverage before fetching another page and traversal reason before raising budgets. #8309, issue morluto/rea#8283. Thanks @kaoru0822-kitauji.batch_decompile.addresseshas a separate hard ceiling of 20,000 entries. Split larger batches into calls of at most that size; increasing the configurable MCP transport allowance cannot remove this operation limit. #5937, issue morluto/rea#5930. Thanks @dakjdakd.close_binarycan retire the target while retaining cleanup owners:cleanup_incompletemay haverecovery.kind: "retry_cleanup"despiteretryable: false. Keep the same connection open and callclose_binaryagain withoutsnapshot_pathto retry owned cleanup. #8329, issue morluto/rea#8211. Thanks @kaoru0822-kitauji.- Unconfirmed cleanup in
inspect_address_context,get_call_graphortrace_call_pathnow produces tool-levelcleanup_incompleterather than a successful partial result or cancellation. Keep admitted partial Evidence and follow the returned same-session cleanup recovery. #8417, #8516, issue morluto/rea#8369, issue morluto/rea#8416. Thanks @kaoru0822-kitauji. inspect_ntfs_journalomits detailedmftMetadata.record_headersby default and leaves continuation at the first omitted record. Selectmft_record_limitfrom 1 to 32 when those details are needed; inventory counts and explicit coverage remain inline. 1a8a9b749a. Thanks @gensokyo-dev, @N0zoM1z0.- Desktop state directories now use
application.state_directories[].exists_at_start: nullplusexistence_errorwhen inspection fails (for example, access denial). Accept the tri-state field and preserve unknown instead of treating it as absence. #9899.
Full contribution record: 1848 commits and 1073 merged PRs.