Files
rea/CHANGELOG.md
github-actions[bot]andmorluto a56f7bb668 chore(main): release rea-agents 6.4.0 (#1399)
* chore(main): release rea-agents 6.4.0

* docs(release): write contributor-aware 6.4.0 changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: morluto <[email protected]>
2026-10-11 11:57:29 +08:00

299 KiB
Raw Permalink Blame History

Changelog

6.4.0 (2026-10-11)

Highlights

  • Android: added device inspection, split-APK acquisition, logs, screenshots, file transfers and explicit app lifecycle actions through ADB, plus manifest and localized-string decoding with Apktool. (#1552, #1556) Thanks @3QL.
  • JEB: browse project units and decompile selected items through a caller-started local JEB MCP server. (#1536) Thanks @3QL.
  • Large analyses: discover retained Evidence without loading every payload, and inspect JavaScript graphs, binary layouts and function dossiers through summaries and selected views. (#1682, #1568, #1570, #1345, #1507, #1247) Thanks @jhuang-tw, @kaoru0822-kitauji, @N0zoM1z0.
  • JavaScript: isolate source analysis in an owned process with configurable heap and timeout limits; retain completed facts and explicit unknowns when analysis runs out of resources. (#1651, #1563, #1565) Thanks @N0zoM1z0, @peter-research.
  • Ghidra: configure import language/compiler specifications and seed functions, code and labels before auto-analysis. (#1667) Thanks @sqmagellan.
  • RPC discovery: recognize supported tRPC calls, HTTP-link URLs and named GraphQL operations in JavaScript applications and web bundles. (#1670) Thanks @pompiliodonatoapp.

Changes

  • Added Ghidra support for Windows PE DLLs and bounded MIPS ELF analysis, including carved MIPS inputs with incomplete section tables. Windows P0 remains read-only. (#1303, #1362, #1629, #1290, #718, #1619) Thanks @bqw371, @jaelliot, @kvalls, @N0zoM1z0.
  • Enabled set_address_name and set_addresses_names for Ghidra sessions with mutation authority, including namespace-aware data labels and per-address batch results. (#1635, #1634) Thanks @giri256.
  • Recovered additional signed AArch64 relative jump-table patterns. (#1592) Thanks @RishTheFish21.
  • Added PE resource inspection and read-only NativeAOT metadata parsing for supported x64 PE32+/.NET 8 RTR 9.1 inputs. The NativeAOT parser’s Windows-host Ghidra workflow remains unverified on a real Windows host. (#1482, 76d8f68, #1254) Thanks @N0zoM1z0, @thangldw.
  • Added Pi, Hermes and Qwen Code setup, including Hermes active-profile support. (#1376, #1403, #1415, #1409) Thanks @rasatpetabit, @yiliang114, @zaydiscold.
  • Added REA_MCP_INPUT_SCHEMA_PROFILE=compact for size-capped MCP clients such as Kimi/Moonshot, while retaining canonical runtime validation. (#1514, #1580, #1484, #1581) Thanks @haythemsellami, @N0zoM1z0.
  • Added live process-capture progress and optional finalization_ms to capture shutdown output before timeout escalation; cancellation remains immediate. (#1483, #1583, #1252, #1253, modelcontextprotocol/typescript-sdk#2997) Thanks @N0zoM1z0, @nikolay-dementiev, @sathariels.
  • Improved Codex onboarding and recovery from observed client, PATH and provider blockers. (#1613) Thanks @N0zoM1z0.
  • Reduced redirected JSON and terminal output size, and deferred heavy imports until their commands need them. (#1413, #1450, #1439, 21dbcf7) Thanks @kaoru0822-kitauji.

Fixes

  • Electron analysis: follow renamed and default-imported APIs and optional calls, ignore overwritten identities and media preload attributes, and resolve packaged app.asar pages and unpacked companions. (#1391, #1393, #1400, #1664, #1673) Thanks @kaoru0822-kitauji, @marnixpluim, @N0zoM1z0, @suninrain086.
  • JavaScript data flow: preserve returned/yielded reference uncertainty, invalidate property-stored aliases correctly, and retain bundled-module runtime scope. (#1437, #1445, #1471, #1577, #1428, #1442, #1449, #1576) Thanks @CassieFox23, @dakjdakd, @N0zoM1z0.
  • JavaScript packages: resolve exact exports subpaths, preserve trailing-slash directory requests and exact CommonJS keys, and respect shadowed require bindings. (#1424, #1615, 5485483, 8b2f851, f998fcb, 1e51c73, #1365) Thanks @akshitkhokhani, @AWUQAQ, @immanuwell, @rudycelekli.
  • Large JavaScript inputs: handle oversized inline source maps, deep returns and reassignment loops; avoid argument expansion limits and yield during large analysis passes. (#1386, #1368, #1390, #1539, #1525, #1542, #1545, #1557, #1380, #1401, #1538, #1462) Thanks @cold-atom, @KadirJeager, @kaoru0822-kitauji, @marnixpluim, @N0zoM1z0, @rudycelekli.
  • JavaScript receivers: expand escaped methods once, index returned-object targets, and avoid replaying earlier writes or duplicating retained graph allocations. (#1517, #1537, #1444, #1601, #1495) Thanks @CassieFox23, @geekwolf, @kaoru0822-kitauji, @N0zoM1z0, @zeynelacikgoez.
  • Browser captures: retain WebSocket URLs, empty connections and frame order; compare only common known payload coverage and preserve incomplete WebMCP replay coverage. (db4e360, aa257ea, e52c0a7)
  • Browser scenarios: seed storage in the correct partition, normalize loopback attach identities, retain declared-secret redaction and require verified lineage before Windows Electron signals. (#1604, #1590, #1588, 8b4c3de, #1497, #1591, #1589) Thanks @Adolanium, @akushonkamen, @dakjdakd.
  • Added Termux Android browser-scenario support. (#1655) Thanks @tyloryang.
  • Web inputs: accept BOM-prefixed HAR, preserve the first duplicate DOM attribute and resolve SVG/XLink URLs in HTML and XHTML. (#1509, #1516, #1602, #1683, #1496, #1586) Thanks @CassieFox23, @kaoru0822-kitauji, @sathariels, @taljeri.
  • Screenshot comparisons: validate PNG chunks, distinguish corruption from unsupported encodings and bound comparison memory. (4e4b15b, b3e977e) Thanks @rudycelekli.
  • Archives: preserve case-distinct names, report collisions at their diverging segment, detect nested formats from bytes and reject Windows alternate-stream extraction paths. (#1480, #1505, #1553, 573598c, #1470, #1491) Thanks @CassieFox23, @kaoru0822-kitauji.
  • Cleanup: retain failed readers, ASAR handles, output trees and provider workers for retry without discarding completed output or partial observations. (ffe0574, de0d341, 3f8c51e, d1235fa, 026126e)
  • Providers: canonicalize IDA workspace roots before identity checks, respect IDA cancellation, serialize JEB acquisition and correct Ghidra no-return/imported-symbol recovery. (#1481, #1419, 5f30ea6, f88c990, 49e6f00) Thanks @AS9929, @JonahSimon, @Y0UW1SH.
  • Binary metadata: respect PE/.NET section extents, bound binary-plist expansion, scope keyed-archive traversal and decode app Info.plist files without plutil. (#1678, #1515, #1378, #1476, 975dff2, 76296c5) Thanks @jayhemnani9910, @kaoru0822-kitauji, @rudycelekli.
  • Windows runtimes: preserve drive-root paths when creating private provider directories. (ee46323)
  • Compatibility: load Windows native controls under Node-API hosts with renamed executables, preserve dylib directory requirements, support Wakaru 1.x and reject directory-valued Hopper launchers. (#1531, #1623, #1540, #1426) Thanks @evenafterallisaid, @Fazmin, @pionxzh, @xeropresence.
  • Reference imports: normalize internal symlink lookup consistently, preserve exact paths and exclusion provenance, report root access failures and reject FIFO replacements without blocking. (#1535, 2ca3ad2, 6636045, 3967cfa, f1c58cc) Thanks @anujsingh-cse.
  • Setup: honor active configuration and skill roots, preserve configured MCP environments, validate Hermes/OMP profiles before writing, recognize Omarchy and retain recovery backups. (#1504, #1607, #1528, #1562, #1662, a011485, #1606, #1521, #1561) Thanks @Adkid-Zephyr, @CassieFox23, @LuisTaffelli, @N0zoM1z0, @peter-research.
  • Process capture: retain descendant lineage after launcher exit, preserve identity uncertainty before signaling and release terminals after observation failures. (80896a1, c916850) Thanks @Y0UW1SH.
  • CLI/MCP errors: accept JSON files for web comparisons, preserve native option help and union correction details, remove invalid aliases and validate doctor against its discovered output contract. (#1397, #1395, #1425, #1461, 8b4c96e, #1421, #1454) Thanks @Fazmin, @kaoru0822-kitauji, @N0zoM1z0.

⚠ BREAKING CHANGES

  • WebSocket results: use network.websocket_connections instead of network.websocket_events. Connections contain request_id, url and events; allow payload_bytes: null when size is unknown. No legacy alias remains. (db4e360)
  • Direct resource APIs: pass a caller-owned ArtifactResourceScope to inventory/extraction, JavaScript analysis, reference imports and web exports; retain it through cleanup/shutdown. For readJavaScriptArtifactFiles, scope is argument three and abort signal is argument four. Keep each root inventory source’s single cleanup owner. Use OwnedFileHandle owners, injected ASAR fd/read handles instead of createReadStream, VCS Result values, and WebScriptExportError’s options object. CLI/MCP inputs for the scoped operations are unchanged. (ffe0574, 53e7fad, 684199b, be75ed5, be6272f, e0e49e9, 95a77b6)
  • Saved reference graphs: exclusions require their matching pattern and distinguish project-ignored from default-ignored. Re-import graphs missing that provenance. (6585293)
  • Terminal captures: keep initial and resized buffers within 1,000,000 cells using columns × (rows + scrollback); oversized scenarios are rejected before launch. (f9ea9a9)
  • Optional agent-verification reports: accept schema version 4, nullable expectedFirstTool and targetClarificationPassed. Production CLI/MCP contracts are unchanged. (#1613)
  • Capture comparisons: recapture both sides with matching literal-replacements-v1 semantics when custom normalization patterns are used. Legacy unversioned pattern captures remain readable but cannot be compared with new pattern captures; captures without patterns are unaffected. (#1456, 2b6f14f) Thanks @Madhavan006, @N0zoM1z0.
  • Artifact graph edges: read child artifact IDs and paths from the occurrence selected by occurrence_id, not edge fields child_artifact_id/logical_path. Earlier inventory Evidence no longer validates against the new commitment. (#1493) Thanks @kaoru0822-kitauji.
  • Semantic graph schema: nodes and relations no longer include identifier_strategy, and relation IDs no longer hash it. Earlier Evidence no longer validates against this schema. (#1474) Thanks @kaoru0822-kitauji.
  • Semantic identities: select IDs from the parent graph; read exact event names from event_name, endpoints from endpoint and literal values from properties.value. New analyses use digest-based IDs for long/reserved event and endpoint names and value-sha256 literal role keys, with shorter labels; string literal labels now read string literal. Previously stored graphs retain their original IDs and remain valid workflow inputs. (#1427, #1423, #1407) Thanks @N0zoM1z0.

Contributors

  • Thanks also to @BaaRai, @commit-regrets, @coygeek, @Franky100-pig, @inii-sayaa, @jopemachine, @JosephDemarest, @keemsisi, @Totopo27 for contributions included in this release.

Full contribution record: 336 commits and 163 merged PRs.

6.3.0 (2026-10-09)

⚠ BREAKING CHANGES

  • captures: Historical captures without current producer accounting or transaction identity, and web diffs missing accessibility or storage dimensions, are rejected. Preserve original captures and recapture with the current producer; update comparison consumers to include every dimension rather than synthesizing missing observations. See the process capture guide and browser scenario contract. (3283a45)
  • browser: JSON shape paths now contain typed property and array-element segments. WebMCP input_schema_shape is replaced by input_schema and input_schema_sha256, retaining declared examples and defaults.
  • process: Filesystem digest omission entries now require system_code; budget and changed-file omissions use null, and unavailable-file omissions preserve the operating-system error code.
  • contracts: Provider analysis outputs must explicitly supply metadata previously repaired with defaults; unsupported nullable facets must be reported as null.
  • javascript: Semantic graph facts now store evidence context IDs and locations. Graph and semantic trace results require an inline evidence_contexts table.
  • contracts: source-map URLs now live in target observations selected by declared_url_sha256, and doctor skill identity no longer emits installed_catalog_digest. Use the documented observation join and identity.skill.state instead.
  • javascript: remove the never-incremented truncated_scopes statistic from JavaScript application analysis results and schemas.
  • native: Objective-C attribute tokens now contain only name and value. Properties report nullable atomicity and readonly facts; class flags, ivar counts, and method requirement flags are nullable when unobserved.

Features

  • setup: register OMP during setup (#1301) (8b4c359)
  • javascript: record Electron integrity mismatches (7915ee5)

Bug Fixes

  • inspector: retain observations after capture failures (dea3498)
  • artifacts: bind ASAR interpretation to owned snapshots (d79317c)
  • artifacts: infer legacy Mach-O simulator platforms (5aa2002)
  • artifacts: preserve archive facts and Unicode path identity (5751f5c)
  • artifacts: reject incomplete inventoried extraction (5e8fb53)
  • artifacts: retain DMG ownership through uncertain attachment (a27794c)
  • artifacts: validate only active extraction entries (cfb12e4)
  • browser: follow only HTTP redirect statuses for source maps (82bbe74)
  • browser: preserve payload shapes and WebMCP declarations (4951a89)
  • browser: release attached viewport overrides without resizing the external page (f6cfbfc)
  • browser: retain attached scenario emulation until cleanup (a0523b3)
  • browser: retain malformed redirect diagnostics (617cd84)
  • browser: serialize attached scenarios through cleanup settlement (cfce91d)
  • ci: scope verification and reuse native runners (#1344) (d5cb8ae)
  • cli: avoid duplicate primary cleanup diagnostics (37fcea7)
  • cli: classify JSON input permission denials (08daf05)
  • cli: classify oversized JSON inputs (f7cf4c8)
  • cli: stream JSON inputs beyond the whole-document string limit (#1360) (6ce3288), closes #1331
  • cli: stream JSON results at the shared command boundary (810107a)
  • contracts: advertise NUL with a portable hex escape (3f59a84), closes #1329
  • contracts: require observed provider output metadata (a4ba8ae)
  • electron: preserve unrepresentable numeric option evidence (41a228c)
  • evidence: order canonical projections independently of locale (614fb76)
  • files: reject nonregular capture and JSON inputs (5f16124)
  • filesystem: reject unstable artifact targets (7829b1a)
  • ghidra: reject a native decompiler built for another host (#1280) (3728c82), closes #1192
  • ghidra: retain process ownership after failed launch rollback (07675f7)
  • ghidra: verify dense jump tables on an optimized fixture (#1374) (73a664b)
  • hopper: allow restart after verified owned-provider shutdown (1c12349)
  • hopper: probe interior navigation from multi-byte instructions (#1285) (bf934d5)
  • ida: compare admitted document paths consistently (890bb66)
  • javascript: avoid positive-zero evidence for signed zero (9055bd6)
  • javascript: decline source-map UNC references with an unusable host (#1372) (f504c2a)
  • javascript: distinguish prefix-only builtins from packages (2b4abbf)
  • javascript: honor module-sync package exports (#1361) (d0e6069)
  • javascript: parse declaration artifacts in ambient mode (4896adc)
  • javascript: preserve agreeing module provenance (db171be)
  • javascript: preserve capture-time guards and ordering (001851f)
  • javascript: preserve semantic evidence through satisfies (e995b19)
  • javascript: preserve uncertainty after references escape to calls (#1292) (355a292)
  • javascript: reject invalid package exports configurations (7a4f268)
  • javascript: resolve exported callables through lexical bindings (#1351) (a9f5dad)
  • javascript: resolve query-only HTML references to their document (55a46f7)
  • javascript: retain array identity after length mutations (4bcea1a)
  • javascript: retain conditional mutation ordering uncertainty (b8a8190)
  • javascript: retain distinct module provenance path components (2bd7de6)
  • javascript: retain unresolved value frontiers in provenance queries (3e19875)
  • javascript: store source map URLs once (ed8fcae)
  • json: preserve runtime limits across JSON file readers (#1350) (9c4a68b)
  • managed: bind graph facts to their source Evidence (cc7b5af)
  • mcp: admit composed analysis through result bookkeeping (e11f4d3)
  • mcp: advertise object roots for union input schemas (#1373) (39dabd0)
  • mcp: advertise primitive semantic literal seeds (f62b449)
  • mcp: preserve JavaScript workflow identity validation (#1366) (53ed942), closes #1364 #1065
  • mcp: retry failed shutdown resources and retain failure reasons (e64678e)
  • native: distinguish symbol definitions from metadata (70bad53)
  • native: preserve unknown Objective-C metadata (b112d44)
  • native: refuse to list architectures of non-Mach-O targets (#1325) (1b73b5a)
  • native: retain LLDB cleanup ownership through client close (7ad353f)
  • process: keep unobserved file contents unknown (#1358) (f91f279)
  • process: retain per-file digest open failures (415145d)
  • reference: report malformed UTF-8 before import parsing (f166a2a)
  • report malformed application evidence as input errors (218c131)
  • retain completed observations when later analysis steps fail (35f121f)
  • setup: install the skill for Claude Code (b4a1919)
  • setup: recognize supported Nobara hosts (f0dc233)
  • skill: pin packaged commands to the shipping package version (2793672)
  • skill: pin packaged commands to the shipping package version (#1346) (f39e71c)
  • snapshot: preserve complete investigation revision histories (#1354) (1c0cc8a)
  • targets: cancel resolution before provider admission (f3c4a33)
  • update: preserve disabled client registrations (abf5e24)

Performance Improvements

  • javascript: index version relationships once per comparison (#1347) (b1e85ad)
  • javascript: validate the version change graph once (#1370) (037709a)
  • json: encode streamed JSON iteratively (#1322) (56598be)

Code Refactoring

  • use canonical implementations and types directly (765e809)
  • artifacts: remove unused root classifier (5291bca)
  • artifacts: test inventory changes at materialization boundary (750fb65)
  • browser: open scenario sessions without a factory wrapper (d1983a4)
  • catalog: import CLI metadata from its owner (8c96baa)
  • consolidate boundary semantics and prune redundant tests (392f1f3)
  • javascript: normalize erased expression syntax once (b628bba)
  • javascript: parse runtime evidence into one verified owner (006b295)
  • javascript: remove obsolete scope truncation statistic (449d570)
  • javascript: share Babel child traversal (0f10499)
  • javascript: share semantic evidence at fact construction (e3bbb9a)
  • process: remove duplicate observation and trace entry points (070339a)
  • providers: use canonical artifact and managed identities (87f0051)
  • reference: simplify malformed UTF-8 handling (377df71)
  • remove obsolete source exclusions and identity wrapper (44c92f8)
  • remove single-use forwarding helpers (4144e45)

Documentation

  • keep license sections text-only (e10f1f0)
  • align translated README artwork and layout (ccfbe87)
  • add README artwork and refine closing sections (4b8e744)
  • add repository-local REA tool design skill (7738c1f)
  • celebrate 40,000 GitHub stars 🎉 (3edb217)
  • celebrate 40,000 GitHub stars 🎉 (5ecc98a)
  • consolidate agent guidance around ownership and boundaries (ba44222)
  • contracts: explain canonical URL and skill metadata ownership (e36afa1)
  • correct MCP error and capture import guidance (077d6c4)
  • correct README setup and runtime guidance (5b3715e)
  • explain CI scope and native runner reuse (#1348) (6c9161d)
  • prune repeated contributor and tool design instructions (5d79387)
  • remove retired architecture and migration artifacts (7a0c800)

Tests

  • share the client registration command to restore the jscpd gate (#1317) (5d16be2)
  • mcp: remove arbitrary schema inventory thresholds (24673aa)
  • android: allow provider readiness under load (961c3c3)
  • artifacts: verify extraction races with real filesystem changes (1ac8389)
  • browser: avoid duplicating source-map listener setup (9367dc1)
  • browser: report redirect status cases independently (5a61562)
  • cli: remove duplicate malformed JSON assertion (5d32e42)
  • exercise source test selection through Git and Vitest (25711ad)
  • filesystem: bound FIFO regressions at consumers (0bfb6e0)
  • ghidra: allow rollback tests to reach spawned process (d761d73)
  • javascript: share primitive expansion producer fixtures (c867bcd)
  • javascript: share semantic graph test facts (ac356c4)
  • javascript: verify distinct module origins through reconstruction (96b2b24)
  • json: remove assertions covered by CLI output consumers (a959a83)
  • managed: include shared dossier fixture in artifact inputs (66a20a2)
  • native: retain trace diagnostics when observed hits differ (048b798)
  • package: share validated native dossier fixtures (ca90109)
  • process: publish capture readiness atomically (74be526)
  • process: report cleanup details on cancellation failures (79d5b9a)
  • process: use owned CLI and workspace fixtures (4940a86)
  • share snapshot replay and managed graph fixtures (d83cbd2)

Continuous Integration

  • enforce architecture guards with portable checkout paths (ecc67ca)

6.2.0 (2026-10-09)

⚠ BREAKING CHANGES

Read the 6.1 to 6.2 migration guide before upgrading. REA's always-bump-minor policy includes breaking changes; 6.2 is not a backward-compatibility promise. Preserve original saved files and regenerate missing observations rather than fabricating identities or facts.

  • MCP / Evidence / snapshots / artifacts: Success results are direct canonical Evidence; read normalized_result rather than the old result/evidence wrapper. Evidence requires nullable analysis_profile, session provider aliases are removed, snapshots require complete profile-bound query records, and artifact roles/permissions belong to occurrences. Recreate incompatible saved data; adding fields without recomputing their semantic identity is invalid. (63bf914)
  • Process captures: Legacy v3 conversion is removed. Explicit executable identity and event_journal are required; retain old captures and recapture when current comparisons are needed instead of inventing launch identity or event order. (2a77469)
  • Cleanup and evaluation: A one-shot analysis reports cleanup failure while preserving the completed observation or primary diagnostic. Handle cleanup_incomplete and retained observations/resources. Configured agent-evaluation fixtures require Evidence-backed correctness, not routing or answer wording alone. (#1211, 27a9cea)
  • JavaScript: Return-field projections require explicit presence; export-shape changes carry both sides' presence and property inventory coverage. Semantic object operations retain complete property_path segments. Regenerate old analysis and distinguish unknown values from unknown presence. (475a0f8)
  • Function comparisons: Remove the unreachable truncated dimension state and summary.truncated counter; update enum and display consumers while retaining explicit unknown facts. (5510b27)
  • Historical sources: Unreadable/unknown symlink targets require target: null; external targets retain the observed absolute target. Reimport graphs containing display placeholders such as <outside-root> and handle nullable targets. (b7b4333)

Features

  • javascript: report observed export property presence (#1160) (45e3edc)
  • mcp: select views of retained analysis results (#1180) (db675f1)
  • website: add an Aegis APK code-generation showcase (0270dd5)
  • website: add an Android showcase and clearer project prompts (6cc817e)
  • website: add beginner examples and synchronized publishing (0fec65d)
  • website: add beginner examples and synchronized publishing (#1203) (0fec65d)
  • website: add Discord link beside GitHub badge (cc39fc5)
  • website: add homepage navigation and faster reading paths (863674b)
  • website: add homepage navigation and faster reading paths (c94f06d)
  • website: add homepage navigation and faster reading paths (#1213) (863674b)
  • website: add search metadata and automatic sitemap (99f257b)
  • website: add search metadata and automatic sitemap (b8851cb), closes #1283
  • website: clarify reverse engineering and showcase goals (e750c26)
  • website: explain REA through a first investigation (5160d9b)
  • website: explain REA with Calculator and a playable dinosaur lab (11b9f03)
  • website: lead with the playable dinosaur example (19c52f5)
  • website: show manual analysis beside a one-prompt workflow (291bc6f)

Bug Fixes

  • dev: accept formatter-ignored staged documentation without failing the commit hook; malformed JSON remains rejected. (bd2db2f)

  • release: publish reviewed release-PR merges from their exact reviewed source. (c12bad7)

  • android: support owned JADX stdio on Windows (#1276) (636b245), closes #1262

  • android: validate engine archive prerequisites (#1145) (e9ebfb9)

  • apple: report unusable dylib-resolution roots as invalid input (6a1e558)

  • apple: report unusable dylib-resolution roots as invalid input (24a30fd)

  • artifacts: keep cancellation and the caller path in extraction refusals (37025cc)

  • artifacts: keep cancellation and the caller path in extraction refusals (eacf846)

  • artifacts: match lipo arm64e variant names to their FAT slices (de5bfec)

  • artifacts: match lipo arm64e variant names to their FAT slices (0b32577), closes #1168

  • artifacts: name only host-available workflows for non-archive plists (f4c99ab)

  • artifacts: name only host-available workflows for non-archive plists (2295855)

  • artifacts: recheck failed DMG detaches before reporting cleanup failure (#1155) (58a91f0)

  • artifacts: refuse unsupported extraction formats before scanning (8e74c9c)

  • artifacts: report encrypted archive entries as unsupported extraction (de43da7)

  • artifacts: report non-archive keyed-archive selections as unsupported targets (fef38e4)

  • artifacts: report non-archive keyed-archive selections as unsupported targets (8c5088c)

  • artifacts: report wrong target kinds as unsupported targets (b34bdcd)

  • artifacts: report wrong target kinds as unsupported targets (637bcb5)

  • browser: classify export-web-scripts capture selection failures by cause (ddaa183)

  • browser: classify export-web-scripts capture selection failures by cause (8c5e34c)

  • browser: report Windows HAR heap exhaustion (#1147) (1393507)

  • browser: retain scenario observations across failures (614e0c2)

  • browser: retain scenario resources until cleanup succeeds (88640f6)

  • ci: pass selected environment to Windows Ghidra fixture (#1281) (f085589)

  • cli: advertise defaulted inputs as optional in --schema and help (#1175) (b4927a0), closes #1169

  • cli: cancel routed JavaScript analysis in rea analyze (#1156) (089bbf5)

  • cli: complete cleanup after relayed interrupts (#1202) (911152a)

  • cli: list the read failure cause for an unreadable JSON input file (db0afce)

  • cli: list the read failure cause for an unreadable JSON input file (6020df5)

  • cli: resolve xrefs symbol selectors after address validation (#1209) (7e9c911)

  • config: name the rejected setting and its constraint in configuration errors (c3acc34)

  • config: name the rejected setting and its constraint in configuration errors (0a0244d), closes #1184

  • doctor: find the Homebrew Hopper cask without writing Homebrew caches (98b07d0)

  • doctor: find the Homebrew Hopper cask without writing Homebrew caches (a503376), closes #1165

  • domain: report target read-permission denials as access_denied (f36c10f)

  • domain: report target read-permission denials as access_denied (d0ff57a), closes #1188

  • electron: resolve effective preload after option overrides (#1286) (411498d)

  • emit v-mode-compatible patterns for tool schemas (#1220) (f0da05f)

  • errors: report caller-selected evidence path failures as invalid input (d4a598e)

  • errors: report caller-selected evidence path failures as invalid input (db177c9)

  • evidence: cancel exports before atomic publication (16624f1)

  • ghidra: classify modern Swift manglings in swift type analysis (#1208) (6935dc7)

  • ghidra: do not run Java from a relative JAVA_HOME in doctor and setup (04a516b)

  • ghidra: do not run Java from a relative JAVA_HOME in doctor and setup (c3f1698)

  • ghidra: keep and name a runtime directory that close could not remove (5b769d3)

  • ghidra: keep and name a runtime directory that close could not remove (b79d379), closes #1190

  • ghidra: keep the NativeAOT target refusal's own recovery advice (f198993)

  • ghidra: preserve decoded return flow evidence (b189c3c)

  • ghidra: preserve decoded return flow evidence (bcc8a77)

  • ghidra: reject relative installation and Java paths in doctor and setup (8998438)

  • ghidra: reject relative installation and Java paths in doctor and setup (5356856), closes #1183

  • ghidra: report NativeAOT host and target refusals as unsupported, not failures (cfb49eb)

  • ghidra: report NativeAOT host and target refusals as unsupported, not failures (42c276a), closes #1185

  • ghidra: resolve secondary symbols at function entries (#1195) (6fbdbd6)

  • ghidra: stop dereferencing the removed error payload in address verification (b80bd2d)

  • ghidra: stop dereferencing the removed error payload in address verification (59fbaa2)

  • ghidra: use dot-free private session paths (c3fc6c3)

  • hopper: keep the OS error when the FAT64 source cannot be reopened (9f5dc52)

  • hopper: reserve Linux demo application before launch (#1158) (33d5ae0)

  • javascript: allow cancellation during semantic graph commitment (#1218) (9405bd6)

  • javascript: classify application input selection failures by cause (fe5291e)

  • javascript: classify application input selection failures by cause (0a14bbb)

  • javascript: keep Wakaru version stderr out of the refusal message (6489d58)

  • javascript: match source-map originals that name parent directories (#1215) (889fb37)

  • javascript: omit self-referential static references with disclosure (#1157) (b620e2a)

  • javascript: preserve alias and container uncertainty (73e98b2)

  • javascript: preserve graphs with async chunk self-references (#1152) (7220166)

  • javascript: preserve property paths and uncertain slot presence (475a0f8)

  • javascript: reject encoded separators joined by HTML URL whitespace (2ddd945)

  • javascript: reject encoded separators joined by HTML URL whitespace (fb57c86)

  • javascript: report located sources with differing digests as modified (#1216) (01174c4)

  • javascript: resolve HTML script URLs after URL whitespace and percent decoding (d601b80)

  • javascript: resolve HTML script URLs after URL whitespace and percent decoding (502528c), closes #1236

  • javascript: resolve package exports targets only to the exact file (#1181) (2a620c0), closes #1174

  • keep the Ghidra session root free of dot-prefixed path elements (a8b8288)

  • managed: preserve literal library names during native matching (81b70bc)

  • managed: separate metadata and signature completeness (2f02eff)

  • mcp: advertise input patterns without look-around (1f099a6)

  • mcp: advertise input patterns without look-around (a8701ea), closes #1282

  • mcp: deliver tool errors within advertised schema contracts (da606ff), closes #1261

  • mcp: deliver typed errors without invalid structured output (#1277) (7e96f25)

  • mcp: emit portable Unicode NUL patterns (#1230) (aa5750c)

  • mcp: measure tool errors against their text-only delivery (fe34ec2)

  • mcp: measure tool errors against their text-only delivery (7b51121)

  • mcp: only recommend exporting retained evidence (5f749c2)

  • name host and tool requirements in optional adapter refusals (68cb02f)

  • name host and tool requirements in optional adapter refusals (170d0bf)

  • native: distinguish batch selectors from resolved entries (13c3b68)

  • native: distinguish batch selectors from resolved entries (bfaa5a6)

  • native: name the CLI flag that selects another plist (9b69503)

  • native: name the plist selection that works when Info.plist is missing (5612496)

  • native: name the plist selection that works when Info.plist is missing (a6fdf42)

  • native: refuse truncated executable headers at target admission (d39a450)

  • native: refuse truncated executable headers at target admission (0b04d38), closes #1189

  • process: apply one timeout rule to both execFileOutput modes (3d32819)

  • process: await cleanup on CLI and MCP cancellation (f6fe575)

  • process: keep ports before a chunk-final period (184ed97)

  • process: localize capture truncation diagnostics (#1284) (33bf585)

  • process: normalize ports that end a sentence (098d769)

  • process: normalize ports that end a sentence (db98a51)

  • process: preserve numeric output and original PTY evidence (c5c75c3)

  • process: preserve numeric output and original PTY evidence (00d8e44)

  • process: preserve unknown filesystem absence in partial captures (c8544b1)

  • process: refuse malformed timeouts for stoppable commands (136d4aa)

  • process: refuse malformed timeouts for stoppable commands (59c91c8)

  • process: require current captures and preserve cleanup failures (2a77469)

  • process: retain known events from incomplete captures (5eb0049)

  • process: stop cancelled Swift helper builds before removing their files (cf41561)

  • process: stop cancelled Swift helper builds before removing their files (c717204), closes #1173

  • process: stop timed-out commands with the caller's stop signal (4b38d18)

  • process: stop timed-out commands with the caller's stop signal (063de50)

  • process: treat non-ASCII letters as port continuations (ad813e4)

  • process: validate terminal byte totals against retained frames (69833fb)

  • process: validate terminal byte totals against retained frames (39eb058)

  • providers: preserve observations and primary cleanup failures (0696bde)

  • reference: represent unreadable symlink targets explicitly (b7b4333)

  • restore caching, preserve failures, and verify fixture claims (#1211) (27a9cea)

  • server: report 2025-era client identity and features in binary_session (e6abaef)

  • server: report 2025-era client identity and features in binary_session (b8312fa), closes #1167

  • session: require an open target for session-bound native and artifact tools (d8e314c)

  • session: require an open target for session-bound native and artifact tools (cf77d07), closes #1166

  • session: retain failed provider cleanup for lifecycle retries (#1260) (24a3aa0)

  • setup: keep Codex TOML comments when adding or removing REA (f5539cf)

  • setup: keep Codex TOML comments when adding or removing REA (e9c48a6), closes #1163

  • setup: preserve initial backups and Codex comments (#1204) (6051cb2)

  • setup: stop remaining uninstall removals after a client fails (fd975c7)

  • setup: stop uninstall before removals when a client config is unsafe (4fb2f3e)

  • setup: stop uninstall before removals when a client config is unsafe (5cc841d), closes #1164

  • snapshot: report query workflow and Evidence counts separately (04aef6d)

  • snapshot: report query workflow and Evidence counts separately (0e77953)

  • website: clarify Android host and JDK requirements (5691606)

  • website: identify publication verifier requests (e6905c1)

  • windows: retain runtime authority after cleanup failure (af7a439)

  • windows: retain unsettled jobs for cleanup retry (76b214e)

Performance Improvements

  • mcp: share repeated output schema definitions. (441813c)

  • hopper: resolve string search records once per query (#1229) (9426c3f)

  • mcp: reuse input schemas without losing caller guidance (#1162) (e1afbc1)

  • snapshot: avoid redundant result copies and serialization (552634d)

  • snapshot: avoid redundant result copies and serialization (569d2bc)

Code Refactoring

  • domain: remove obsolete comparison representations (5510b27)
  • enforce canonical evidence and provider boundaries (63bf914)
  • remove forwarding exports and redundant aliases (ad59531)
  • schemas: share portable identifier and base64 patterns (#1227) (954badb)

Documentation

  • add French README translation (84094af)
  • add French README translation (9664b2b)
  • celebrate 30,000 GitHub stars 🎉 (6987cb0)
  • celebrate 30,000 GitHub stars 🎉 (beca997)
  • clarify REA has no affiliated cryptocurrency or token (#1214) (c2d8146)
  • explain 6.2 contract and saved-data migration (#1304) (c267e99)
  • ghidra: explain supported heap and CPU controls (#1278) (0c6852b), closes #1255
  • keep the 30k milestone in Star History (#1217) (c399670)
  • require focused brittleness cleanup and executable examples (d6832c3)
  • thank feature request contributors (9db1fd0)
  • website: continue the Calculator example with reconstruction (4578647)
  • website: continue the Calculator example with reconstruction (18a1e8c)
  • website: explain SEO maintenance and indexing follow-up (bb8ff2c)
  • website: introduce the worked homepage examples (f6f5c16)
  • website: invite deeper projects and reader feedback (3fb9ffa)

Tests

  • apple: verify compiled Mach-O root occurrence facts (#1300) (4bb4c6f)
  • artifacts: assert asset-catalog target refusal only on macOS (44d5b4b)
  • artifacts: pin per-occurrence roles for direct Mach-O roots and shared bytes (701d90a)
  • artifacts: pin per-occurrence roles for direct Mach-O roots and shared bytes (b9e29c5), closes #1234 #1235
  • artifacts: read /bin/ls slice layout from its FAT table (#1223) (c89b3a0)
  • artifacts: verify compiled Mach-O roles and permissions (4bb4c6f)
  • consolidate redundant assertions into boundary workflows (b71a591)
  • ghidra: preserve selected verification resource limits (1c3766a)
  • ghidra: size oversized annotations for canonical delivery (1e34197)
  • ghidra: use host-native absolute session root fixtures (1e83d27)
  • javascript: expect the invalid input_path code in the streamed CLI failure test (d186ca7)
  • mcp: read bundle failures from public error content (69c3b32)
  • mcp: read typed errors in canonical Evidence regressions (fd46cff)
  • mcp: validate public error diagnostics in acceptance workflows (09058eb)
  • native: assert batch identity in production registration (933fcb3)
  • native: build the .app fixture executable with a complete Mach-O header (facaae8)
  • process: check malformed capture choices concurrently (6020a0b)
  • process: check malformed capture choices concurrently (48de11c)
  • remove duplicate workflow examples and self assertions (d6d1cd2)

Continuous Integration

  • website: allow explicitly requested Pages-only publication (796b65e)
  • website: allow explicitly requested Pages-only publication (864160d)
  • website: allow explicitly requested Pages-only publication (#1205) (796b65e)
  • website: publish Cloudflare and Pages from one artifact (761881c)

6.1.0 (2026-10-09)

⚠ BREAKING CHANGES

  • hopper: Hopper regex mode uses ECMAScript Unicode syntax instead of Python re. Matching runs in a cancellable worker with a five-second deadline; literal mode keeps Unicode casefold matching.
  • hopper: remove set_current_document. Use open_binary to switch targets; document arguments are scoped to the active target.

Features

  • clients: register Grok Build and Grok Bot during setup (#1134) (08561e0)
  • ghidra: make the startup deadline configurable (#974) (d84bc8f)
  • website: add GitHub link with live star count (2f59287)

Bug Fixes

  • analysis: bind overview document identity to the active target (#1094) (81b5104)
  • analysis: resolve procedure identities and preserve literal queries (d830cb7)
  • android: report actual provider readiness (c715af8)
  • android: report startup and selector failure causes (6c13fc8)
  • apple: account for repeated archive projections (e1df5e8)
  • apple: budget Interface Builder decoding and projection (dbcf8c3)
  • apple: classify empty dyld settings by consumer semantics (#1110) (fe297e5)
  • apple: decode bundle plist bytes before executable lookup (d575a73)
  • apple: decode Interface Builder XML byte encodings (#1095) (f8e143a)
  • apple: derive dispatch coverage from located decode facts (488f448)
  • apple: keep skipped catalog entries from reading as absence (a079af2)
  • apple: report apps without asset catalogs as empty inventories (e2f0378)
  • apple: report apps without asset catalogs as empty inventories (79e5a39)
  • apple: report missing keyed archive hierarchy references (#1104) (3b2ec69)
  • apple: validate dylib candidates and preserve search uncertainty (#1100) (7914e36)
  • apple: validate physical slices and dylib platform compatibility (15f92f2)
  • application: budget bridge candidate projection by bytes (3d450a2)
  • artifacts: preserve keyed archive integer precision (4034883)
  • artifacts: report keyed-archive selection mistakes as invalid input (5a55d5b)
  • artifacts: report keyed-archive selection mistakes as invalid input (25fb6d3)
  • artifacts: retain failed DMG cleanup state and diagnostics (#1103) (4bb056b)
  • browser: advertise zero-based units for runtime source coordinates (#1085) (6218d28)
  • browser: bind correlated replies to their selected session (96d3caf)
  • browser: bound aggregate source-map decoding before expansion (f983c71)
  • browser: bound script metadata and preserve omissions (faf209e)
  • browser: bound source-map fetches and retain predecessor requests (eaf5734)
  • browser: compose nested source-map column offsets (#1109) (8b08ec0)
  • browser: keep initiator callsites out of script coordinate guidance (#1096) (3c157b4)
  • browser: normalize selected script manifest roots on Windows (#1078) (b49beb4)
  • browser: preserve captures when response bodies are unavailable (96af2fa)
  • browser: preserve command failures and reject malformed replies (6b92002)
  • browser: treat module-import initiator positions as script positions (ae0630a)
  • browser: treat module-import initiator positions as script positions (99d31ee)
  • browser: validate and bound source-map evidence (0a0174b)
  • build: exclude the test-only generated catalog from packages (#1116) (d1c904b)
  • build: make catalogs and packaged skills generated outputs (#1086) (e613405)
  • capture: retain Electron observations and HAR resource failures (44fd183)
  • ci: align diagnostic regressions and format merged changes (67756da)
  • ci: restore generated shard inputs and cleanup assertions (5f93b4b)
  • cli: accept exact native names through explicit selectors (c313606)
  • cli: drive mcp doctor help from a single option schema (b7d803d)
  • cli: preserve blank JSON paths for input validation (#1068) (3dcb732)
  • cli: preserve web cancellation exit status (1d9b96a)
  • cli: support MCP doctor help (a69b833)
  • contracts: preserve local inputs and comparison uncertainty (70e8a8f)
  • docs: validate translated links to canonical product facts (34f7c4f)
  • domain: order canonical paths by code point, not UTF-16 unit (#1034) (b5c2954)
  • domain: preserve prototype-named JSON members through Evidence boundaries (#1049) (40e18b2)
  • domain: reject excessive JSON depth with actionable diagnostics (#1029) (bfbfc73)
  • electron: bound hook retention and report dropped coverage (02d0702)
  • evidence: name the failed constraint when a bundle is rejected (82a1a52)
  • evidence: name the failed constraint when a bundle is rejected (cf96ceb)
  • evidence: report missing evidence files instead of permission advice (e8b92a4)
  • evidence: report missing evidence files instead of permission advice (89252f1)
  • evidence: require a complete record before the single-record hint (38bbb65)
  • firmware: reject malformed UTF-8 producer reports (4a45c14)
  • ghidra: admit Linux arm64 with matching native tools (3e598b2)
  • ghidra: harden location resolution and provider lifecycle (1f5be75)
  • ghidra: make qualified function renames idempotent (4458128)
  • ghidra: parse long procedure selectors without recursion (480b16b)
  • ghidra: preserve function references and snapshot boundaries (84a17d5)
  • ghidra: preserve POSIX runtime paths with spaces (80c3d36)
  • ghidra: preserve source failures and snapshot ownership (704fa76)
  • ghidra: preserve Unicode boundaries without breaking sessions (bef234d)
  • ghidra: recover regex stack exhaustion without losing annotations (bc4aa46)
  • ghidra: reject address truncation before reads and edits (dcae3c6)
  • ghidra: resolve exact external function entries (549effa)
  • hopper: bind analysis to the active target and correct boundary contracts (2f71375)
  • hopper: bind file mappings to verified source bytes (82626c4)
  • hopper: diagnose MCP provider failures with stage, state, and request context (#1044) (5a67c7f)
  • hopper: enforce caller-supplied request deadlines (#1119) (e8939ca)
  • hopper: isolate regex matching from the native API thread (f201b04)
  • hopper: load verified FAT64 slices with native Mach-O semantics (0a49d5b)
  • hopper: normalize native block endpoints and retain terminal evidence (2847311)
  • hopper: preserve launcher evidence on readiness timeout (458771c)
  • hopper: preserve native navigation and annotation semantics (f2e22e1)
  • hopper: preserve owned basic-block endpoint instructions (#1118) (329cf20)
  • hopper: preserve partial native call and string evidence (2461702)
  • hopper: preserve typed string values and verify real searches (7d7b3f9)
  • hopper: report launcher failures before bridge timeout (#1105) (cd756b0)
  • hopper: resolve FAT loaders and original file coordinates (35f1ddd)
  • hopper: validate annotation destinations and symbol extents (b2d5bc1)
  • hopper: verify lease cleanup and repair the macOS test lane (#1111) (b743bd2)
  • inspector: bound retained metadata and preserve cancellation (e714fb0)
  • install: guard empty prefix_args expansion on macOS Bash 3.2 under set -u (#1061) (68b9fa4)
  • javascript: bound primitive string growth and repeated evaluation (4a1837d)
  • javascript: bound semantic expansion and resolve lexical receivers (16f4609)
  • javascript: classify direct defaults and argv elements (6495171)
  • javascript: honor cancellation before evidence publication (#1098) (cc0ee2e)
  • javascript: omit self-referential import edges with disclosure (#1130) (1d7115b)
  • javascript: parse plain TypeScript artifact dialects (#1102) (3db4681)
  • javascript: preserve HTML carriage return source ranges (#1092) (23862af)
  • javascript: preserve lexical open and exact template semantics (d6cc9ca)
  • javascript: preserve original BOM source coordinates (#1093) (83defc0)
  • javascript: retain NodeNext artifact source facts (#1087) (c1b370c)
  • javascript: use Node legacy package entry fields (1706005)
  • managed: bind inspection evidence to artifact identity (73b09f4)
  • managed: match exact method bytes without decoded signatures (17809ca)
  • mcp: flatten root union input schemas (#1062) (6a7650e)
  • mcp: preserve retained evidence on oversized delivery (0639a54)
  • mcp: retain complete application results across response limits (a1ed423)
  • mcp: retain oversized errors before transport delivery (b3f1b4e)
  • metadata: stop schema changes churning generated skill evidence (#1075) (d52f66d)
  • native: bind signature observations to registered target versions (#1099) (c789af0)
  • native: bound retained observations and preserve failure evidence (7c32387)
  • native: preserve bridge failure types during cleanup (1d0baa3)
  • native: resample tool identity for each invocation (14b19a0)
  • native: share command supervision and retain failure output (f2e9c49)
  • native: supervise LLDB and preserve bounded capture uncertainty (915855e)
  • process: avoid cold ownership helper deadline exhaustion (#1139) (65a809a)
  • process: derive executable names from the capture host (#1108) (34cc925)
  • process: identify unknown live processes in cleanup diagnostics (eb89a16)
  • process: name the reason two captures cannot be compared (#1080) (eb69763)
  • process: preserve observations after successful cleanup (2af12a1)
  • process: retain ownership after incomplete cleanup (e2fc249)
  • process: stabilize native capture and ownership prerequisites (2b27515)
  • process: stop failing captures on tokens macOS cannot expose (#1057) (5547c1e)
  • providers: validate ELF versions and preserve probe cancellation (8b01e0c)
  • release: always bump minor for releases (be783ef)
  • release: publish prereleases under the next npm tag (bfb7776)
  • release: publish reviewed release PR merges (cdddfdd)
  • release: recognize conventional titles in GitHub merge commits (f5009ed)
  • release: restore automatic release proposals on main (acb3e0f)
  • release: validate frozen checkpoint versions and breaking notes (8a31508)
  • release: validate frozen checkpoint versions and breaking notes (60825fb), closes #1063
  • select Node legacy package entry fields for import and require (#1035) (1706005)
  • session: serialize snapshot lifecycle with admitted requests (e44cb45)
  • setup: launch Windows npx registrations through cmd.exe (#1072) (ef30343)
  • setup: treat empty client config files as new documents (#1117) (9fd65ce)
  • snapshot: retain MCP workflow replay bindings (5e1afe4)
  • target: preserve app bundle filesystem failure reasons (d4c2c3c)
  • update: accept npm 12 release metadata (#1138) (567a82f)
  • verify: close both sides of the browser proxy (f7366a5)
  • verify: isolate package archives and published canary caches (3eb7dbd)
  • verify: remove stale mocked bridge package probe (826583d)
  • verify: report final success only after resource cleanup (ee043e2)
  • workflows: keep caller-input details in workflow input errors (#1089) (289aef6)
  • workflows: retain residual unknowns through CLI and MCP (0136ee8)

Performance Improvements

  • mcp: advertise each tool JSON Schema once per target (#1059) (5ccb924)
  • build: avoid duplicate documentation generation (c701376)
  • javascript: index configuration and module lookups (67252b2)
  • javascript: reuse validated immutable graphs (#1112) (ec6db0f)

Code Refactoring

  • artifacts: centralize stable inventory identities (135d102)
  • browser: charge source-map records before retention (e762e32)
  • config: prune unused format wrappers and launcher export (81ae838)
  • input: share schema issue error construction (65a6288)
  • setup: validate formats through canonical configuration (4b10665)

Documentation

  • add Persian README translation with full language navigation (7a7460f)
  • add ten README translations and expand language navigation (a61491a)
  • align translated READMEs and website links with English (d83f098)
  • celebrate 20,000 GitHub stars 🎉 (#1079) (9455e7c)
  • check surrounding cases when changing boundaries (46d195e)
  • clarify contribution scope and cosmetic suggestions (1f79002)
  • clarify evidence ownership and verification guidance (a9e00b8)
  • move Portuguese toward the end of language navigation (2a4979b)
  • move star milestone into history sections across readmes (6e6ff7b)
  • require partial native facts at provider boundaries (2b86ea9)
  • require surrounding boundary checks for review fixes (9833c94)
  • testing: prioritize real workflows and distinct regressions (9588482)
  • website: add a CTF showcase and FAQ (#1077) (a4d77f0)

Tests

  • acceptance: add application workflow MCP parity harness and scenarios (5ac3dc9)
  • artifacts: retire simulated mounts after detach failures (f591e37)
  • artifacts: verify native directory identity on supported Windows runtimes (#1069) (e94be95)
  • browser: pin DOM and source-map URL policy classifications (#1120) (c1d0002)
  • browser: reject unmodeled CDP commands in protocol fixtures (017297c)
  • classify application scenarios by their actual boundaries (0e0b386)
  • cli: verify self-import parity and cleanup (55c9ce2)
  • consolidate failure guards and trim unused fixture APIs (ffd9611)
  • hopper: cover real boundary failures and CLI parity (64717ad)
  • hopper: verify real boundaries and prune redundant happy paths (7005166)
  • mcp: serialize real process capture and report unavailable authority (8f9da25)
  • process: cover argv rewrites in native ownership inspection (09d7b9b)
  • process: distinguish native startup from producer verification (9a70fb4)
  • process: expose unavailable capture and unexpected teardown failures (90b06db)
  • process: report the cause of terminal capture failures (8a4c4b6)
  • process: retain cancellation checks under unverified host cleanup (9a5b077)
  • process: retire native caches at worker teardown (a0784c0)
  • process: serialize real CLI capture boundaries (82560eb)
  • prune redundant cases and promote configuration lifecycle coverage (5945915)
  • prune resource-recovery wording assertions (ae06dcf)
  • remove duplicate result assertions before throwing guards (a1b7d40)
  • session: preserve live binding after cancelled switches (1136ea8)
  • setup: scope removal regression to its fixture client (fe48e77)
  • workflows: verify residual questions in CLI snapshots (770d2f6)

Continuous Integration

  • run signature target binding regressions on native macOS (#1107) (1e63144)

6.0.0 (2026-10-08)

⚠ BREAKING CHANGES

  • contracts: MCP filesystem inputs now require absolute host paths, including target/snapshot paths, evidence bundle paths, managed and firmware inputs, browser/Electron launch paths and expected server paths. Calls such as open_binary({"path":"./app"}) must send an absolute path such as /home/analyst/app or C:\analysis\app. Optional paths remain optional. CLI operator-relative paths continue to work. See #948 and #1004.

Features

  • artifacts: trace Mach-O dylib resolution in bundles (78d594c)
  • browser: inspect historical web network captures (#992) (2bf3663)
  • evm: inspect offline bytecode interfaces through EVMole (#1051) (7af7bc8)
  • ghidra: support native x86 PE applications on Windows (#1030) (c6dad93)
  • native: inspect offline ELF layout through pwntools (#1037) (4fc6565)
  • native: inspect recorded crashes through pwntools and pwndbg (#1054) (163ee09)
  • native: observe function and Objective-C method calls under LLDB (1d13cef)

Bug Fixes

  • dotnet: validate managed metadata and CIL boundaries (#938) (bda4ada)

  • build: clarify generated-file check hint and drop redundant catalog step (#998) (6f0ef16)

  • release: extend npm propagation window and improve diagnostics (#943) (06b047a)

  • contracts: require absolute local paths for session filesystem inputs (#948) (5b172b1)

  • ci: generate source catalog before shard tests (#1002) (eb8f649)

  • contracts: require absolute local paths for remaining caller-supplied file inputs (#1004) (cbc0dd1)

  • cli: classify ENOTDIR JSON input failures (#1000) (a6132be)

  • browser: preserve authorized redirect hops (#986) (ae0f725)

  • mcp: reject unknown MCP tool inputs (#975) (fe64fd6)

  • release: publish from explicit source checkpoints (#1003) (64c7188)

  • release: publish from explicit source checkpoints (#1006) (b4fc0ec)

  • javascript: bound semantic node projection for resource safety (#966) (96a46ad)

  • ci: avoid slow Azure archive for the native cross compiler (#1016) (51956c1)

  • ci: decouple stdio smoke tests from Linux display probes (#1014) (93731e1)

  • cli: stream large JavaScript JSON results (#1024) (0e25bef)

  • javascript: complete large-ASAR analysis with file-local projection (#1055) (b9fb438)

  • javascript: recognize digits in artifact URI schemes (#1045) (03424ae)

  • javascript: reconstruct HTML script loads accurately (#1042) (1154f2f)

  • javascript: report application analysis progress on the CLI (#1008) (7b18c58)

  • javascript: resolve module URLs and reject invalid exports targets (#1031) (8d5c88f)

  • javascript: resolve root package exports arrays (#1046) (53409ab)

  • mcp: advertise JSON values without recursive schemas (#995) (7425f70), closes #919

  • mcp: bound capture comparison input schema depth (#1005) (6b55de0)

  • process: preserve partial evidence and verify detached cleanup (#1011) (63cf28f)

  • release: support built-in credentials and refresh release boundary (6a278a6)

  • release: support default credentials and record 5.0.0 boundary (#1012) (6a278a6)

  • release: sync 5.0.0 checkpoint back to main (966cca8)

  • snapshot: replay validated workflow evidence (#984) (1d62e54)

  • windows: allow Java to read retained target snapshots (#1027) (28d5c39)

Performance Improvements

  • artifacts: replace quadratic ZIP overlap checks (#1013) (76e7e51)
  • javascript: cache canonical export comparison sort keys (#1028) (63ba742)

Code Refactoring

  • build: generate MCP tool catalog at build time instead of committing it (#997) (35a4e18)

  • process: separate capture implementation from analyst workflows (#988) (6aa9afb)

  • artifacts: move inventory and extraction into provider owners (#1032) (6e4535c)

  • remove abandoned test-only analysis scaffolding (c93422a)

Documentation

  • improve Korean wording and particles (#1047) (c5d165b)
  • simplify the English README and organize guides (#1043) (28f10cf)

Tests

  • process: wait for observable snapshot ctime changes (#999) (161ed91)

  • browser: consolidate CDP workflows and colocate parser coverage (2682904)

  • ci: stabilize browser source identity fixture delivery (#1023) (ed725da)

  • cli: reduce repeated startup and filesystem setup (d88d6c1)

  • consolidate service and process fixtures (f8a53a8)

  • javascript: consolidate source analysis and export regressions (f517a5a)

  • javascript: cover plain long-line loader identities (#1025) (984fc27)

  • mcp: consolidate SDK schema checks and scenario ports (9c3479e)

  • providers: verify framing through client socket boundaries (1fd1989)

  • prune redundant conformance checks and document test priorities (aafdf8a)

5.0.0 (2026-10-07)

⚠ BREAKING CHANGES

  • native: preserve incomplete native UI captures (#991)
  • android: Android analysis now requires a full JDK 17 or newer with its compiler module for the packaged Java source bridge.

Features

  • apple: project macOS bundle anatomy in application graphs (88c940b)
  • apple: project macOS bundle anatomy in application graphs (dd3e7ae)
  • application: wire Android and Apple inventory graph tools (#852) (e0fd820)
  • browser: attribute native execution and listener sources (#917) (b5afa5f)
  • browser: capture correlated network content and lifecycle evidence (#797) (f9eaf05)
  • browser: trace captured website module imports (#879) (01be082)
  • browser: trace captured website source-map locations (#897) (f430c41)
  • javascript: recover readable modules with Wakaru (#848) (166dcd2)
  • native: decode chained fixups, binds, ObjC categories and properties (a657557)
  • native: decode chained fixups, binds, ObjC categories and properties (3e24a72)
  • native: open iOS-style and iOS-on-Mac wrapper app bundles (2ed89e6)
  • native: open iOS-style and iOS-on-Mac wrapper app bundles (aeebba3)
  • web: export captured scripts for JavaScript application analysis (#801) (472b72a)
  • website: add a shared back-to-top link (5047373)
  • website: introduce REA and the DX-Ball reconstruction (#906) (4e3953c)

Bug Fixes

  • address review nits from batch integration follow-ups (#818) (5a0e0ba)
  • android: align runtime suffix inference (#977) (fb3749a)
  • android: bound fragmented JADX MCP frame memory (#937) (9e39795)
  • android: preserve JVM settings and reuse metadata sessions (#908) (eab34a9)
  • apple: attribute only application-root components in macOS inventories (5524970)
  • apple: count only real framework version directories (2e81e86)
  • apple: pair bridge hypotheses within one application root (7acf4e7)
  • apple: pair bridge hypotheses within one application root (9226ade)
  • apple: traverse keyed archive hierarchy collections (#976) (71ac83f)
  • artifacts: accept APFS image disks ejected with their container (d93ebec)
  • artifacts: accept APFS image disks ejected with their container (b72c079)
  • artifacts: accept the bundle subject when extracting an app bundle (#891) (37d2eba)
  • artifacts: decode flat keyed-archive NIBs with data and shared references (b3f013f)
  • artifacts: decode flat keyed-archive NIBs with data and shared references (2a4667b)
  • artifacts: harden reader lifecycle boundaries (#951) (2366bda)
  • artifacts: keep the post-snapshot detach check out of provenance (62634e4)
  • artifacts: preserve reader failure diagnostics (#987) (fc4a9a0)
  • artifacts: project compiled AppKit actions from the control to its target (b08228d)
  • artifacts: project compiled AppKit actions from the control to its target (#905) (900d7c8)
  • artifacts: project UIKit runtime outlet and event connections (aa8082e)
  • artifacts: project UIKit runtime outlet and event connections (8b24387)
  • artifacts: read AppKit connectors from flat keyed-archive NIBs (#900) (27c272b)
  • artifacts: read keyed archive dictionaries keyed UID as dictionaries (cfd2b0c)
  • artifacts: read keyed archive dictionaries keyed UID as dictionaries (35c82b9)
  • artifacts: report which path constraint failed (#847) (3f1a77f)
  • browser: distinguish computed call keys from identifiers (#808) (02beb74)
  • browser: distinguish WebMCP registration frame owners (#813) (b3b44d8)
  • browser: fingerprint cookies at the selected page URL (#763) (78014e3)
  • browser: identify NodeNext TypeScript original source artifacts (#811) (e84ad86)
  • browser: preserve evidence through deep AST analysis (#924) (f826aa8)
  • browser: preserve form destinations and satisfies mutation uncertainty (#825) (6dd719e), closes #820
  • browser: preserve Link header value delimiters (#805) (dd36405)
  • build: validate installed dependencies before cache hits (#982) (a45fe86)
  • capture IndexedDB object-store record fingerprints (#809) (21a8bd0)
  • cli: align structured output guard with native flags (#777) (e9fac56)
  • cli: emit empty structured filter projections (#914) (2db668f)
  • cli: honor the selected native plist path (#773) (0374865)
  • cli: preserve output and comparison input validation (#981) (d5c43d6)
  • cli: preserve unsupported historical-source imports (#795) (911d580)
  • contracts: align CLI/MCP boundary contracts (#946) (4a60738)
  • deps: remediate smol-toml advisories (93091ab)
  • deps: remediate smol-toml advisories (c55ae3b)
  • dotnet: compare members with undecoded signatures by exact identity (28fd49f)
  • dotnet: compare members with undecoded signatures by exact identity (d52af3b)
  • dotnet: inspect native boundaries of non-managed and malformed PEs (d5f28fb)
  • dotnet: inspect native boundaries of non-managed and malformed PEs (d98dcfa)
  • dotnet: keep a decoded member unknown beside an undecoded counterpart (76b7020)
  • dotnet: keep admitted CLI header facts when metadata is unreadable (e5ba693)
  • dotnet: name the shared key in exact-signature ambiguities (7714e76)
  • dotnet: treat ambiguous undecoded members as possible counterparts (73370e1)
  • errors: report union input issues at the union's path (bddeb63)
  • evaluation: canonicalize Unicode argument keys (#980) (0a4caf4)
  • firmware: accept the verified Binwalk and Unblob release lines (#844) (bef4321)
  • firmware: retain multi-file extraction failures (#978) (8aaf9a1)
  • ghidra: admit the 12.1 line and the install's JDK range (#840) (5cbf06c)
  • ghidra: select exact packaged bridge scripts (#800) (894c30e)
  • ida: share concurrent session cleanup (#950) (f14b6a8)
  • installer: validate exact semantic versions (#954) (248972f)
  • integrate 24 reviewed browser/native/semantics corrections (#815) (3af3811)
  • javascript: advertise the exact empty seed rule and match empty API keys (35e5508)
  • javascript: analyze source maps with empty source names (58ef8ac)
  • javascript: analyze sources containing empty string literals (e7cbfe0)
  • javascript: analyze sources containing empty string literals (11fc3b9)
  • javascript: filter keyed-collection receivers only for get/delete (00f707b)
  • javascript: handle deep AST traversal and addition without stack overflow (#915) (62b3711)
  • javascript: handle deep static member paths (#939) (348c65c)
  • javascript: keep bare relative URLs for computed-method XHR (e32028d)
  • javascript: keep computed-method XHR request URLs (602d002)
  • javascript: keep exact empty env keys and method names (522c2d0)
  • javascript: keep exact empty env keys and method names (f7954a8), closes #783
  • javascript: keep exact empty require paths and request fields (ad1f6b5), closes #783
  • javascript: keep exact empty values in graph identities (f608127)
  • javascript: keep exact empty values in graph identities (63012ee)
  • javascript: keep keyed-collection reads out of endpoints (9075ce7)
  • javascript: keep keyed-collection reads out of endpoints (eb68761)
  • javascript: keep literal HTTP methods on storage-named receivers (9f48a76)
  • javascript: keep literal-method and URL-literal requests on aliased receivers (e3e7664)
  • javascript: keep mutated object initializer values unknown (#752) (6caa38a)
  • javascript: keep storage open versions out of XHR endpoints (4f51103)
  • javascript: keep storage open versions out of XHR endpoints (898b0f6)
  • javascript: keep XHR and client endpoints that receiver spellings hid (05f43ed)
  • javascript: leave empty application values unlabeled (527b76e)
  • javascript: match exact empty literal channels and seeds (e20da1f)
  • javascript: never read window or document open as XHR (ae849a7)
  • javascript: preserve computed Electron member uncertainty (3a4a63f)
  • javascript: preserve computed Electron member uncertainty (1260cac)
  • javascript: project decoded file URL paths (#810) (2572e1e)
  • javascript: read open() endpoints only from XHR method/URL pairs (63e0822)
  • javascript: read open() endpoints only from XHR method/URL pairs (1be3705)
  • javascript: read substitution-free templates as exact strings (c371d6e)
  • javascript: read substitution-free templates as exact strings (77cf757)
  • javascript: resolve bare source-map and worker URLs next to the script (#890) (45fcd28)
  • javascript: retain recovered call argument positions (#929) (e6ba9c3)
  • linux: improve Hopper reliability and CachyOS support (#963) (98b2b02)
  • mcp: advertise reserved process environment key (#949) (e0d76ae)
  • mcp: isolate optional observation adapter failures (#838) (be3cfbf)
  • mcp: preserve exact guided prompt context (#761) (66c26f2)
  • native-ui: handle incomplete accessibility child collections (#944) (ac3bae3)
  • native: inspect plists containing data, dates, and non-finite reals (bc2cd8b)
  • native: inspect plists containing data, dates, and non-finite reals (5ead2cf)
  • native: keep echoed codesign paths out of signature fields (#865) (4aa2b60)
  • native: keep echoed Mach-O paths out of load commands and symbols (ab985c6)
  • native: keep echoed Mach-O paths out of load commands and symbols (37fe105)
  • native: keep integral plist reals beyond the JSON range as reals (#860) (3b92a2b)
  • native: keep plist XML element types for large numbers (f85056d)
  • native: keep the resolved bundle plist and permission failures (418a556)
  • native: pass Swift symbols to swift-demangle as operands (dd90965)
  • native: pass Swift symbols to swift-demangle as operands (6c88094)
  • native: preserve incomplete native UI captures (#991) (9f496ef)
  • native: report exact plist integers beyond the JSON number range (c9f49db)
  • native: report exact plist integers beyond the JSON number range (430c297)
  • native: report plist permission denials as access failures (5738a0c)
  • native: report why a selected plist cannot be inspected (14f9b3d)
  • native: report why a selected plist cannot be inspected (0674fac)
  • plist: keep character references beyond Unicode literal (5afd8a8)
  • plist: read XML plists containing a proto key (faaee69)
  • plist: read XML plists containing a proto key (a08be51)
  • plist: report omitted proto entries in signatures and Interface Builder (15ab5db)
  • plist: report omitted proto entries in signatures and Interface Builder (6729ee7)
  • preserve native UI failure reasons and dedupe version literals (#854) (2d4a910)
  • process: clarify Windows capture support and recovery (#798) (50787b2)
  • process: harden filesystem snapshot identity and cancellation (#956) (93aa9eb)
  • process: retain provider output until streams close (#928) (b929251)
  • reference: retain partial imports for unreadable directories (#766) (cffc548)
  • release: drive checkpoint releases from frozen branches (fc58fa1)
  • release: publish from explicit source checkpoints (49887f0)
  • semantics: isolate named function expression bindings (#776) (ae81f64)
  • semantics: preserve direct promise ownership boundaries (#758) (e1ca412)
  • semantics: preserve empty string property keys (#764) (630bdaf)
  • semantics: recognize Node builtin default namespaces (#769) (24a0bf9)
  • semantics: retain trailing rest argument flows (#756) (4bfd803)
  • setup: accept the pinned Hopper RPM launcher (#933) (dda8e6a)
  • setup: read an OpenCode V2 server named type as a table entry (#866) (4e17be5)
  • setup: register OpenCode V2 configurations in mcp.servers (957069d)
  • setup: register OpenCode V2 configurations in mcp.servers (69d8afe)
  • target: decode app Info.plist executables with an XML parser (c57f1b7)
  • target: decode app Info.plist executables with an XML parser (c182f72)
  • test: disconnect Hopper fixture IPC on SIGTERM (b912b11)
  • windows: accept ordinary drive path separators (#791) (b62931f)
  • windows: remove cancelled snapshot outputs (#957) (d76f7d1)

Performance Improvements

  • artifacts: stream ASAR members without full buffering (#962) (abd7a5e)
  • call-path: prune dead ends and enumerate without recursion (#909) (e52fe97)
  • cli: defer catalog digests and use canonical cache scope (9a15525)
  • cli: defer unused catalog work during command startup (#920) (9a15525)
  • comparison: reuse canonical sort keys (#990) (ebb065e)
  • dotnet: index declaring-type ranges once per metadata table (#918) (7a9f587)
  • dotnet: index ordered declaring-type ranges once per table (7a9f587)
  • evidence: scale imports and dependency graphs (#941) (7dc40d3)
  • inspector: bound runtime script location authorization (#945) (58381ee)
  • javascript: analyze member chains without recursive copying (#932) (dcde958)
  • javascript: index Promise return-site ownership (#971) (2cedde9)
  • javascript: index semantic fingerprint relations (#942) (c92a344)
  • javascript: reduce analysis and source-map work (#955) (c7530f9)
  • providers: assemble fragmented responses once per line (#911) (df7151b)
  • reconstruction: index coverage evaluation (#983) (f26c8b5)
  • setup: reuse initial diagnostics during planning (#940) (118d43e)

Code Refactoring

  • add incremental capability migration safeguards (#819) (75f50d8)
  • android: group layered source and verification (#873) (8e8921d)
  • apple: group artifact producers and verification (#952) (ef1a0cc)
  • artifacts: isolate JavaScript file acquisition (#916) (f0a68dc)
  • binary: group session selection and snapshot ownership (#886) (dd114d3)
  • binary: move production composition outside application workflows (#965) (33d4761)
  • browser: align inspector exclusions with canonical vocabulary (#834) (de9593a)
  • cli: split core analysis command registrar (#858) (8b9940a)
  • colocate investigation record implementation (#867) (bb19c94)
  • compose investigation record ownership (#845) (ce73c3f)
  • declare auxiliary capabilities from source (#853) (4a6c17c)
  • domain: consolidate property-key extraction behind semanticStaticPropertyKey (#823) (764ff05)
  • domain: converge comparison mechanics on shared vocabulary (#824) (c13c9d4)
  • domain: extract artifact path syntax helpers (#830) (ef535b8)
  • domain: extract source-map envelope walk and disambiguate stringValue (#828) (64ebdf4)
  • domain: map validation taxonomies and add inventory Result seam (#833) (78f4848)
  • domain: split Interface Builder keyed-archive parse from graph builder (#859) (da09706)
  • firmware: group layered source and verification (#878) (507e8b3)
  • ghidra: extract createClient and load-image attestation (#856) (b7df5b7)
  • give Inspector its own capability directory (#869) (021ba69)
  • javascript: group application workflows and verification (#896) (0804722)
  • javascript: group domain semantics and contracts (#907) (f6a58f1)
  • managed: group capability workflows and verification (#926) (28713f9)
  • native: group analyst semantics workflows and contracts (#973) (ea4db4c)
  • native: split Apple dispatch metadata decode facets (#855) (676959e)
  • provider: declare deep capabilities from source (#892) (b808e2d)
  • share Android and firmware provider factories (#826) (3ed59b2)

Documentation

  • add concise lawful-use disclaimer (#888) (4037c65)
  • add DX-Ball reconstruction showcase (#876) (895079d)
  • add prominent website and showcase links to READMEs (2ccc86c)
  • add README star history chart (#850) (11f27de)
  • add website and showcase links to READMEs (#930) (2ccc86c)
  • apple: describe directory-based framework plist ambiguity (6d74992)
  • audit and improve localized readmes translations and wording (00a6ac3)
  • clarify NativeAOT scope and regenerate conformance ledger (c945931)
  • fix stale IDA roadmap item, mermaid paths, toolchain wording (d2aed17)
  • move quick start up and mark skill install optional (554e9b1)
  • note Cloud Agent Node.js toolchain (#837) (6aa6350)
  • publish VitePress documentation on GitHub Pages (c78fe69)
  • separate ambiguous and unavailable provider recovery (c3f2b8e)
  • show task-scoped readiness and provider preference in the quick start (880cca1)
  • show task-scoped readiness and provider preference in the quick start (5fd0db3), closes #726
  • update release boundary to npm 4.1.0 with Windows native bundle (69be514)
  • website: add Notion case study and improve onboarding (a6ba772)
  • website: add TH04 bullet-ring case study (f8d84da)
  • website: add worked guides and keep Pages publishing manual (#925) (4f25ee3)
  • website: clarify guides and case studies (5065fcd)

Tests

  • artifacts: report compiled connector records when a storyboard route is missing (d421d3f)
  • artifacts: report observed action routes when a compiled route is missing (c60b737)
  • artifacts: write the storyboard fixture's action in Cocoa syntax (53bfa7e)
  • eliminate fixture races and prune redundant scaffolding (#849) (f72931d)

Continuous Integration

  • consolidate macOS native baseline checks (#935) (810fe53)
  • verify native arm64 and Intel macOS workflows (#898) (4801a24)

4.1.0 (2026-10-06)

Features

  • android: integrate static APK analysis with headless JADX (#738) (904d03e)
  • evidence: accept exact retained application references (#734) (d0f3480)
  • firmware: integrate Binwalk and Unblob analysis (5a7c769)
  • ghidra: add atomic function annotation edits (#709) (9bab553)
  • ghidra: admit explicit DOS COM analysis (#702) (5bcb664)
  • ghidra: enable Windows x64 read-only analysis (#699) (26881da)
  • ghidra: integrate optional NativeAOT metadata recovery (#748) (fb679b6)
  • ghidra: verify DOS load images and expose memory evidence (#697) (a6a8f67)
  • ida: add read-only GUI and headless MCP providers (#754) (8238232)
  • setup: support Command Code MCP registration (#645) (7f1ae42)

Bug Fixes

  • android: validate explicit Java runtime (#742) (7390390)
  • artifacts: make extraction output tree work on Windows (#753) (c8e66c7)
  • browser: classify CSP host sources by their own origin (#707) (1d15bcb)
  • browser: keep bare module locations unresolved (#676) (8189081)
  • ci: upload Vitest blob reports from current path (77799e6)
  • cli: disable unmanaged skill synchronization (433ebda)
  • cli: disable unmanaged skill synchronization (2c1bf92)
  • cli: fail when JSON input files cannot be parsed (18c1829)
  • cli: fail when JSON input files cannot be parsed (3201f05)
  • cli: include build step in missing-runtime recovery (6a37346)
  • cli: include build step in missing-runtime recovery (ae72abd)
  • cli: report reference-source import failures (00eb03d)
  • cli: report reference-source import failures (431e8eb)
  • comparison: break function collection collation ties (c3d013b)
  • comparison: break function collection collation ties (3aaf7e2)
  • comparison: break JSON shape collation ties (217e8cf)
  • comparison: break JSON shape collation ties (805c338)
  • comparison: retain container-only export shape paths (a55b5bb)
  • comparison: retain container-only export shape paths (7864d66)
  • dotnet: preserve leading Unicode content in metadata strings (#667) (ddea063)
  • electron: respect computed option keys and overrides (af48fe8)
  • electron: respect computed option keys and overrides (98de338)
  • evidence: admit current process provider identity (ab5a1c6)
  • evidence: admit current process provider identity (d311940)
  • firmware: validate configured executables (#751) (9a4e6da)
  • ghidra: preserve request and shutdown failure diagnostics (#647) (19f8cdd)
  • ghidra: refuse ambiguous universal Mach-O imports (b1b687f)
  • ghidra: refuse ambiguous universal Mach-O imports (6582b24)
  • hopper: retain shutdown request diagnostics (8d7071d)
  • hopper: retain shutdown request diagnostics (7254871)
  • integrate 14 approved fix PRs (668,671,673,675,678-681,685-690) (#705) (cf06115)
  • javascript: count all source line terminators (e60aa11)
  • javascript: count all source line terminators (03bc6d3)
  • javascript: expose result schema failures (6d1f39b)
  • javascript: expose result schema failures (99263a7)
  • javascript: hash graph and evidence JSON incrementally (#646) (9f42495)
  • javascript: preserve path.resolve reset semantics (863ed47)
  • javascript: preserve path.resolve reset semantics (4177377)
  • javascript: preserve primitive addition coercion (#666) (94cc847)
  • javascript: preserve unknown branches in primitive unions (75a75cb)
  • javascript: preserve unknown branches in primitive unions (9a2f395)
  • javascript: read source-map directives only from comments (#672) (7f1fa64)
  • javascript: scope candidate ambiguity to query traversal (6ad62ce)
  • javascript: scope candidate ambiguity to query traversal (f94fc79)
  • mcp: retain shutdown failure diagnostics (09c249d)
  • mcp: retain shutdown failure diagnostics (fd008cd)
  • native: inspect mixed-signature Mach-O slices (1dccd0d)
  • native: inspect mixed-signature Mach-O slices (66f3cfa)
  • native: retain spaced symbols in dyld inventory (#669) (fa02df9)
  • native: select concrete arm64e Mach-O slices (f04445c)
  • native: select concrete arm64e Mach-O slices (fd3282a)
  • process: honor disabled PID normalization in samples (44b3627)
  • process: honor disabled PID normalization in samples (a4e5736)
  • process: scope comparison unknowns to their evidence (#732) (9dd6cef)
  • reconstruction: accept function comparison source parameters (c3bc38b)
  • reconstruction: accept function comparison source parameters (7a96391)
  • reference: bound Dockerfile language detection (132a3a4)
  • reference: bound Dockerfile language detection (53fa559)
  • reference: classify test suffixes before extensions (e828acc)
  • reference: classify test suffixes before extensions (8b228ae)
  • reference: distinguish computed require member names (ba35b55)
  • reference: distinguish computed require member names (df6e476)
  • reference: preserve unresolved absolute module specifiers (#670) (c8aed47)
  • reference: read linked worktree commit provenance (#677) (d565ecd)
  • reference: recognize CMake build manifests (#665) (1a24be5)
  • reference: retain dynamic import relationships (a5d2986)
  • reference: retain dynamic import relationships (b89de8f)
  • reference: retain recovered parser diagnostics (11d0ef2)
  • reference: retain recovered parser diagnostics (ed3a7f0)
  • setup: accept leading BOM in JSON client configs (a5b970c)
  • setup: accept leading BOM in JSON client configs (fe843ec)
  • setup: align Node runtime checks with package engines (5802ef8)
  • setup: align Node runtime checks with package engines (ea0b733)
  • target: explain the JavaScript directory analysis route (#733) (8d44b3e)
  • trace: match typed seeds against member arrays (65c8797)
  • trace: match typed seeds against member arrays (38ebd54)

Code Refactoring

  • app: split Setup and ProcessOwnership modules (#628) (3c84080)
  • cli: collapse duplicate CLI layer into src/cli (#630) (494d4db)
  • contracts: split tool contracts by family (#634) (5295d56)
  • domain: consolidate canonical ordering and digest helpers (#624) (ba3869c)
  • domain: split error taxonomy into thematic modules (#636) (735c100)
  • native: extract FAT header format switch in Mach-O slice selection (#632) (38b2933)
  • runtime: centralize safe JSON parsing and preserve error causes (#629) (e7f54b3)
  • runtime: name all silent catch causes without changing diagnostics (#637) (5f27e02)

Documentation

  • add the official Trendshift badge to README headers (b6c21b1)
  • add the official Trendshift badge to README headers (7d4ed59)
  • align MCP discovery and skill guidance with the stable catalog (#664) (39db9fe)
  • browser: add an interaction example that captures the visible result (#750) (91daaa6)
  • clarify onboarding and align provider guidance (#745) (5af1699)
  • correct CLI examples and documentation checks (#655) (fc80ea8)
  • fix architecture diagram and pretty-print tool catalog (#626) (5e7f35c)
  • ghidra: explain first-query deadlines and recovery (#736) (e2c23f3)
  • hopper: document HopperTargetLease realpath fallback (#711) (d3f498c)
  • installation: pin manual MCP registration to the release version (#658) (8dd1d84)
  • update Trendshift repository badge (3f6d6dc)

Tests

  • extract shared fixtures, drop knip carve-outs (#627) (55e5eb0)
  • hopper: synchronize startup cancellation with launcher readiness (#662) (88a3c3f)

4.0.1 (2026-10-05)

Bug Fixes

  • release: allow npm propagation time (2ef02ce)

4.0.0 (2026-10-05)

⚠ BREAKING CHANGES

  • Managed comparison metadata adds exact-signature matching and its count, and name_matching now reports exact-signature-fallback.
  • setup: unscoped setup refreshes only existing REA-owned registrations. Use --all-detected to configure every detected client. Setup JSON contains a compact doctor summary; use rea doctor for full diagnostics. Cancellation and successful dry runs now exit successfully.
  • Remove controlled replay, Node characterization, finite replay-machine, managed runtime planning, and redundant string-tracing tools. Retire process replay, shims, reactive scenarios, custom checkpoints, and active browser replay and origin-scope inputs.
  • tools: Removed permission configuration and policy commands, approval fields, filesystem scope inputs, and fixed confirmation options. Process capture inherits the host environment and accepts command names; callers must refresh tool schemas and migrate removed fields.

Features

  • ghidra: add DOS MZ analysis and complete function extents (#556) (4f099a1)
  • native: add inspection primitives, dispatch traces and approved UI observation (#500) (4fbc501)
  • setup: expand agent integrations and verify updates (#577) (6256b68)

Bug Fixes

  • artifacts: break directory child collation ties (#587) (b37e47c)
  • artifacts: exclude removed paths from unchanged counts (#569) (52bf709)
  • artifacts: expand nested ASARs on Windows (#582) (ebb4c45)
  • artifacts: interrupt ZIP extraction under backpressure (#594) (50f7e81)
  • artifacts: preserve archive entry types and host paths (#581) (28e0f4e)
  • artifacts: refresh cached ASAR headers for each inventory (#574) (f5013c5)
  • artifacts: resolve parents after archive enumeration (#578) (8eac290)
  • artifacts: respect XML plist byte-order marks (#514) (23c4eba)
  • artifacts: retain expanded ASAR container parents (#583) (00fa974)
  • artifacts: retain relative paths in directory identities (#580) (348323d)
  • browser: capture popup network and report early event gaps (#614) (f557207)
  • browser: capture selected events in popup pages (#600) (a3bf4a0)
  • browser: derive source-map imports from syntax nodes (#588) (bae87b4)
  • browser: distinguish duplicate screenshot frame events (#612) (1bd641d)
  • browser: ignore duplicate frame navigations and read block-form source map directives (#546) (828395d)
  • browser: keep subresource redirects out of page navigation scope (#524) (9c28f3c)
  • browser: preserve RGB PNG transparent samples (#595) (9997152)
  • browser: release cancelled CDP cleanup without waiting for responses (#517) (488fd5f)
  • browser: release discarded source-map response bodies (#611) (8642055)
  • browser: resolve redirected source map paths from final URL (#518) (056c123)
  • cli: fail commands returning projected analysis errors (#506) (2fd1196)
  • cli: reject invalid UTF-8 JSON file bytes (#613) (22acb0d)
  • comparison: account for unpaired records after explicit bundle pairing (#603) (12a2e37)
  • comparison: match generated names without swallowing symbol prefixes (#596) (5f3ba3e)
  • comparison: normalize CFG identity by numeric addresses (#593) (d1e5c0e)
  • comparison: require decoded signatures for structural method matches (#604) (4a98c3e)
  • conformance: preserve own JSON keys during comparison (#573) (3460eda)
  • correct native inventories and bridge error classification (#503) (405732a)
  • docs: allow README installation wording to vary (92617f9)
  • ghidra: avoid nested quotes in Windows Java options (a574b74)
  • ghidra: recover evidenced switch cases and default targets (#579) (b225b0f)
  • inspector: preserve lossy Node discovery locations (#542) (84e4361), closes #530
  • javascript: avoid invented computed destructuring properties (#507) (80777d9)
  • javascript: bind named class expressions in their class scope (#510) (55f0267)
  • javascript: classify assignment targets and retain compound-assignment reads (#537) (333d118)
  • javascript: correct lexical and dynamic scope analysis (#538) (6fa6f1f)
  • javascript: honor computed keys when naming callables, exports, requests and options (#536) (4c8dc39)
  • javascript: honor package exports condition order (#591) (8289595)
  • javascript: isolate lexical loop bindings (#511) (c30878f)
  • javascript: prefer package entrypoints over directory indexes (#575) (bb91abd)
  • javascript: preserve literal CommonJS path punctuation (#576) (063cd25)
  • javascript: preserve Node exports fallback stop reasons (#606) (adc07f5)
  • javascript: respect HTML base URL components (#589) (ffbde92)
  • javascript: respect lexical shadowing of require (#509) (6a431d8)
  • javascript: retain property reads during updates (#508) (6b7923c)
  • managed: classify truncated signatures as malformed (#598) (1b6f054)
  • managed: distinguish metadata handles from member accesses (#607) (c73742f)
  • managed: recognize PE Thumb and ARMNT machines (#605) (0ce529a)
  • mcp: emit valid schemas for empty arrays (#535) (4007b20), closes #528
  • mcp: return complete inline Evidence records (#585) (ea9c3da), closes #551
  • native: capture Mach-O header metadata alongside load commands (#525) (a8195ba)
  • native: decode little-endian fat headers (bede3e3), closes #592
  • native: decode Mach protection bits in their proper positions (#586) (6aba6ae)
  • native: inspect Apple dispatch metadata in FAT64 binaries (#590) (f3e6582)
  • native: inspect the selected universal Mach-O architecture (#601) (2b7bb3b)
  • native: match compound otool keys exactly and badge unknown thread entrypoints (#534) (d40502a)
  • native: normalize otool line endings and strip plist JSON BOM (#533) (3e4d4d9)
  • native: preserve text-valued load command metadata (#520) (bcfb407)
  • native: reject signal-terminated command captures (#608) (b81d18e)
  • native: reject trailing text in lipo integers and keep multi-word otool keys (#531) (9e30d93)
  • native: retain lazy dylibs, normalize version-min builds, limit thread entrypoints (#532) (0f77ada)
  • native: retain re-exported Mach-O library dependencies (#516) (4a5673e)
  • package: separate agent and Hopper setup support (#584) (205a977)
  • platform: accept absolute paths for any host and stop blaming the ceiling for a missing grant (#552) (e793e12)
  • process: align provider detach with configured platform (3fff74f)
  • repair boundary contracts across CLI and MCP (#597) (9c25dc4)
  • replay: keep proto own properties and reject symbol-keyed results (#540) (05bb630)
  • replay: link the complete ESM graph before evaluating (#515) (4200a42)
  • replay: preserve CommonJS object as ESM default export (#519) (2df6b51)
  • replay: preserve Date call and explicit constructor semantics (#512) (9975bd2)
  • replay: preserve sparse array positions in result projection (#522) (9d1c363)
  • replay: share one seeded generator and present builtins with real identity (#539) (5b51fa0)
  • repo: keep dependency links out of version control (#617) (b3223e3)
  • skill: remove obsolete grants and audit tool effects (2919def)
  • test: improve capture reliability and runner cleanup (#609) (d19686a)
  • tools: simplify direct invocation and harden boundary contracts (#555) (b5e9891)
  • web: retain uncertainty for incomplete capture inventories (#513) (d8c18f6)
  • win32: probe .cmd/.bat runtime shims via cmd.exe to avoid spawn EINVAL (#505) (31ed005)
  • workflows: preserve punctuation in filesystem source paths (#521) (5b28a8b)
  • workflows: retain container presence in export shape comparisons (#523) (3854458)

Code Refactoring

  • config: take the environment as an input at every configuration read (#554) (53fe7d6)
  • domain: consolidate duplicated semantic member and literal helpers (#550) (09830da)
  • domain: own digest and prefixed identifier shapes in one module (#547) (ea58834)
  • host: inject platform and environment instead of reading them ambiently (#549) (5b59b87)
  • simplify runtime tools and remove replay engines (#572) (e07b816)

Documentation

  • add boundary contract guidance (42e6a8a)
  • add Discord community links to README (79bf26f)
  • align roadmap with direct tool use (eba709e)
  • align translated READMEs and clarify support guides (5b383b2)
  • clarify README wording and analysis tool support (97822f2)
  • move README image above Discord community (ad86d39)
  • place community invitation below README navigation (69a45e0)
  • place Discord community below setup command (778e464)
  • place setup command above README image (c6d3bdf)

Tests

  • setup: isolate client fixtures across host platforms (f73bb0f)

3.2.1 (2026-10-03)

Bug Fixes

  • release: tolerate npm registry propagation delay (726b730)

Tests

  • release: accept guarded npm publishing (b7bc855)

3.2.0 (2026-10-03)

Features

Bug Fixes

  • artifacts: stabilize extraction approval (7eb1a95)
  • browser: reject unknown Electron input fields (1860d4f)
  • ci: retain artifacts for delayed reruns (07888ec)
  • cli: remove ignored result limits (f3645aa)
  • consolidate boundary ownership and cleanup failure paths (#477) (2160d4f)
  • contracts: align byte read schema with provider (f580d9d)
  • ghidra: return complete native analysis results (a66e43a)
  • managed: retain every source location (33b2099)
  • process: capture complete host probe output (6c68ff5)
  • runtime: make observed target role optional (593a8e1)
  • runtime: retain complete reconciled graph content (bedd55a)

Code Refactoring

  • analysis: remove caller-selected result caps (a8c58c6)
  • analysis: remove fixed result quotas (20152a9)
  • artifacts: consolidate inventory into inspection (0fe96d9)
  • artifact: simplify extraction and inventory results (07ff8b3)
  • artifacts: remove duplicate inventory wrapper (aa6eee1)
  • artifacts: remove selectors and traversal quotas (8c24272)
  • artifacts: select extraction by logical path (7ba3580)
  • browser: remove arbitrary capture ceilings (5dd3b46)
  • browser: return complete observation evidence (0e2738f)
  • browser: return complete scenario observations (e80fe41)
  • browser: share authorized main-frame polling (eec75ce)
  • browser: share canonical identity digest (a6d9e49)
  • contracts: remove duplicate schema aliases (4593c29)
  • contracts: simplify workflows and drop readiness tool (7acac61)
  • coverage: evaluate inline without workspaces (9e76054)
  • domain: encode comparison and lifecycle states exactly (#473) (d65730c)
  • domain: share AST property name reader (4f4cc59)
  • electron: retain complete active observations (e8c56e0)
  • errors: remove stale workspace failures (f570d40)
  • evidence: remove obsolete ID resolvers (a3920e2)
  • evidence: remove session ledger quotas (dca293a)
  • files: use caller paths for local evidence files (c34efca)
  • ghidra: remove redundant schema markers (c2a6f4b)
  • javascript: remove analysis ceilings (9aec690)
  • managed: derive inspection from PE CLI extents (dfad09e)
  • mcp: simplify evidence and workflows (6740ed5)
  • mcp: simplify tool inputs and inline results (f55c2b9)
  • mcp: simplify workflow and observation scope (34d00fd)
  • observation: internalize capture budgets (7b3c797)
  • observation: retain complete tool results (fa2b6c5)
  • observation: return complete inventories (c523c38)
  • permission: remove unused authorization helpers (1b0ab75)
  • process: remove fixed scenario ceilings (abf7c11)
  • process: remove redundant schema version markers (b3aca52)
  • process: remove request count ceilings (f2dc749)
  • process: remove unused paired experiment (e1d755f)
  • prompts: make tool workflows optional (3fd9650)
  • reference: share graph index projections (6ee87fb)
  • remove cross-version investigation workflow (81996df)
  • replay: share sandbox probe arguments (9fca6c0)
  • replay: simplify runtime value checks (60cb68a)
  • return complete analysis results inline (a2a3243)
  • return complete tool results inline (0d96275)
  • runtime: retain complete reconciliation outputs (79ea571)
  • schema: remove data-only version markers (5457f4a)
  • server: remove registration alias (8097ec4)
  • server: use canonical elicitation type (bb6a58c)
  • test: colocate pure-domain tests and reduce test debt (#471) (e91c8c3)
  • test: keep coverage at behavioral boundaries (#474) (d4dc940)
  • tools: remove arbitrary workflow ceilings (5f73cb0)
  • tools: remove artificial analysis ceilings (2f08c7c)
  • tools: remove redundant limits and acknowledgements (bd0e341)
  • tools: remove remaining arbitrary workflow caps (ecf3ed8)
  • tools: return complete analysis results inline (2a6eb41)
  • workflows: simplify evidence reference inputs (24e1fa9)

Documentation

  • add REA tool design guidance (#485) (36aeec9)
  • clarify aggregate context tools (c7e207c)
  • clarify MCP tool design guidance (36aeec9)
  • correct inline evidence and Hopper behavior (bf9cce1)
  • describe complete application analysis outputs (271b162)
  • generalize reverse-engineering workflow (#488) (4ecc7a7)
  • improve GitHub issue and pull request templates (c490d85)
  • prioritize reusable analysis primitives (#493) (9dd72c4)
  • refresh managed conformance manifest (23e56c5)
  • refresh tool catalog and cleanup audit fixtures (53db3a4)
  • regenerate tool and evidence catalogs (2f604a3)
  • regenerate tool and evidence catalogs (f2bbd59)
  • tools: clarify complete inline results (3b64c81)
  • tools: clarify complete inline workflows (4168174)
  • tools: describe uncapped tool behavior accurately (4cea84d)
  • tools: update inline workflow guidance (4ad937c)

Tests

  • artifacts: exercise argument-free extraction preflight (a6d5b3e)
  • browser: assert strict inputs without legacy fields (9ddf22e)
  • browser: cover complete screenshot output (3f547ea)
  • browser: remove stale input field assertion (60c110d)
  • cli: consolidate duplicate setup journey (9bd7e2c)
  • cli: remove duplicate browser discovery case (dcb0362)
  • conformance: remove fixture generator test option (ea853ce)
  • contracts: remove duplicate tool inventories (0ae3c08)
  • hopper: name regex search assertion accurately (9240bd8)
  • hopper: remove dossier identity assertion (b5c0b5b)
  • mcp: align workflow assertions with current guidance (f8bb113)
  • mcp: consolidate catalog inventory checks (3afcd64)
  • mcp: validate defaults at tool boundary (21241d2)
  • remove duplicate export schema acceptance (b783e7f)
  • remove obsolete schema version assertions (fe342fa)
  • remove stale limits and handoff expectations (acf33d6)
  • remove vacuous and duplicate assertions (56e2bf7)
  • remove Vitest config test exports (d6e545c)
  • replace brittle workflow and readme checks (b3529aa)
  • replace implementation lock-in with behavioural assertions (#498) (7ee3f23)
  • replay: remove duplicate schema coverage (4ec2343)

3.1.0 (2026-08-09)

Features

  • electron: add autonomous Electron runtime analysis (#464) (8f229ed)

Bug Fixes

  • ci: guard Release Please PR branch parsing (84cc819)
  • ci: guard release PR branch parsing (6838b6b)
  • harden evidence lifecycle and MCP contracts (5155924)
  • harden structured configuration comparisons (#467) (6901edc)
  • npm: preserve explicit setup versions (#465) (1783bf6)

Code Refactoring

  • mcp: make analysis states unrepresentable (#468) (b8a9da0)

Documentation

  • clarify agent reverse-engineering promise (ed4a628)
  • clarify the agent reverse-engineering promise (#466) (ed4a628)
  • npm: simplify current setup command (#469) (8b62b1a)

3.0.0 (2026-08-01)

⚠ BREAKING CHANGES

  • export_evidence_bundle now requires a filesystem path and no longer returns an inline bundle.

Features

  • make evidence bundles canonical MCP resources (1712e6d)

Bug Fixes

  • address MCP resource review feedback (f3b3fb0)
  • align aggregate tools with session capabilities (ede91ff)
  • ci: align Vitest project worker budgets (f47ee1a)
  • ci: allow documented public type aliases (97f6a0f)
  • ci: make coverage report merging composable (788f405)
  • ci: stabilize Vitest project routing and shards (f07acde)
  • errors: preserve actionable analysis diagnostics (0f96bf3)
  • mcp: clarify routing and advertise input examples (969519c)
  • mcp: clarify target routing and caller diagnostics (3e1e8cd)
  • test: bound boundary worker pressure (935721d)
  • test: honor boundary ownership and public aliases (92a1c33)
  • test: retain subprocess coverage and cleanup (7f46bb1)
  • test: retain subprocess coverage and cleanup (dae2b9c)
  • test: stabilize boundary timing (f0d8cda)
  • verify: follow dynamic Hopper tool availability (281e41f)

Code Refactoring

  • preserve provider-neutral runtime seams (a8161f0)

Documentation

  • document resource snapshot workflow (2a45d8d)
  • refresh generated SDK metadata (c824db1)
  • refresh managed completion manifest (59d4659)

Tests

  • contracts: cover validation branches (8ccdb33)
  • derive MCP SDK identity expectations (ab4193c)
  • eval: cover navigation and address tool routing (ba098f2)
  • overhaul deterministic suite architecture (48053d1)
  • overhaul deterministic suite architecture (513d9b1)
  • package: verify npx upgrade on published releases (7b6f7be)
  • package: verify npx upgrade on published releases (1f8ad7b)

Continuous Integration

  • document deterministic suite ownership (3c42403)

2.7.0 (2026-07-28)

Features

  • bytecode: add JVM and Python bytecode providers (1a75f8d)
  • bytecode: add JVM and Python bytecode providers (4e0127d), closes #367
  • conformance: add portable conformance export package format (91fb87d)
  • conformance: add portable conformance export package format (4ee30e4)
  • metadata: add deeper ObjC/Swift metadata and database save/licensing (4602efd)
  • metadata: add deeper ObjC/Swift metadata and database save/licensing (d7a0753), closes #353
  • mobile: add Android APK/AAB/DEX and iOS IPA static investigation providers (18624df)
  • mobile: add Android APK/AAB/DEX and iOS IPA static investigation providers (fdeeb27), closes #366
  • package: add MSIX/MSI/AppX package, resource, and signature analysis (0ef1b91)
  • package: add MSIX/MSI/AppX package, resource, and signature analysis (6c03f83), closes #363
  • pe: add broader PE/COFF/PDB static inspection (f942558)
  • pe: add broader PE/COFF/PDB static inspection (94e6600), closes #362
  • process: replace procfs sampling with event-backed process-tree capture (a5e355a)
  • process: replace procfs sampling with event-backed process-tree capture (d5d2e56), closes #332
  • protocol: add custom TCP/UDP/IPC/XPC and auth-flow capture (1fb22b4)
  • protocol: add custom TCP/UDP/IPC/XPC and auth-flow capture (6fa6f9b), closes #365
  • protocol: add gRPC/Protobuf and JSON-RPC/MessagePack capture (54153ed)
  • protocol: add gRPC/Protobuf and JSON-RPC/MessagePack capture (3f336fe), closes #364

Bug Fixes

  • catalog: digest provider projections (645668b)
  • catalog: digest provider projections (c4cd033)

2.6.0 (2026-07-26)

Features

  • complete evidence-backed roadmap workflows (1a0931b)
  • hopper: report bridge progress diagnostics (7a43420)
  • native: inspect API boundaries with evidence (521139d)

Bug Fixes

  • setup: refresh stale local npx bootstrap (6d37efe)
  • setup: refresh stale local npx bootstrap (90bb161)

Performance Improvements

  • mcp: reduce cold-start work (8ec9bb1)
  • mcp: reduce cold-start work (fecddc0)

Tests

  • add critical provider workflow coverage (4716fa2)
  • hopper: remove brittle diagnostic source assertion (40bf55b)
  • investigation: prove multi-version fixture closure (5184816)
  • mcp: stabilize lazy-loading verification (7157ab0)
  • package: prove artifact cleanup and identity (9522adf)

2.5.1 (2026-07-25)

Bug Fixes

  • ci: normalize generated release metadata (d43a461)
  • ci: normalize release pull request metadata (119954c)

Performance Improvements

  • browser: lazy-load Playwright sessions (305e729)
  • dotnet: reuse authenticated artifact snapshots (c5e8871)
  • eliminate repeated work in analysis hot paths (fbe442b)
  • evidence: validate ledger mutations incrementally (809dfbf)
  • javascript: reuse parsed source across analyses (adc4852)
  • server: cache advertised JSON schemas (6743644)

2.5.0 (2026-07-24)

Features

  • add runtime reconstruction roadmap workflows (1dbb157)
  • analysis: add bounded memory and call tracing (8e7709d)
  • artifacts: add provider-neutral inspection (d997728)
  • browser: capture controlled Playwright scenarios (1ac3118)
  • browser: compare scenario and storage evidence (f27dd74)
  • javascript: compare source with shipped bundles (697be94)
  • javascript: recover runtime semantic effects (38c883b)
  • process: support explicit stdin closure (205bf15)
  • reconstruction: add obligation ledgers (9d48ca7)
  • reconstruction: evaluate end-to-end readiness (38ff741)
  • runtime: add passive V8 Inspector observation (8271650)
  • server: advertise available tools dynamically (035e114)

Bug Fixes

  • analysis: report call-edge truncation (6039b92)
  • browser: close scenario containment gaps (1bd65f6)
  • browser: contain scenario pages and preserve inputs (24b3dc4)
  • browser: require storage fingerprint approval (f0069cb)
  • ci: allow slower real browser startup (095c75d)
  • ci: propagate readiness verifier failures (9f9f9c3)
  • ci: repair cross-platform package verification (1c9e508)
  • comparison: preserve uncertainty and v1 inputs (b9217dc)
  • hopper: add bounded analysis recovery (e0bc7fd)
  • javascript: keep digestless bundle matches unknown (5a76aaf)
  • process: expose launcher identity mismatch (62ac73c)
  • process: normalize macOS launcher identity (9c3aec8)
  • process: tolerate exit during ownership revalidation (a0f8b72)
  • reconstruction: authenticate obligation proof boundaries (7b1e3bd)
  • reconstruction: bind proof evidence to claims (83b3368)
  • runtime: preserve deterministic context identity (9bd2ac5)
  • test: use direct Node launcher on macOS (13f3372)

Performance Improvements

  • test: speed up local and CI validation (1546a8d)
  • test: speed up local and CI validation (42fbbb2)

Code Refactoring

  • application: reuse graph evidence resolution (4e8aa98)
  • browser: centralize scenario metadata budgeting (e79e367)
  • browser: clarify inspector capture identifiers (ca035a7)
  • browser: reuse CDP endpoint parsing (00abf45)
  • javascript: centralize source range comparison (c9500d3)
  • javascript: share semantic call-site lookup (94a2c60)
  • reconstruction: isolate ledger coverage (4f62695)
  • server: reuse availability policy type (eeb4349)

Documentation

  • document roadmap analysis workflows (f29f683)
  • refresh generated roadmap metadata (f904668)

Tests

  • browser: use neutral scenario fixture identifiers (fd25a7e)
  • package: stabilize fake Hopper ownership (0b70131)

Continuous Integration

  • verify runtime observation and readiness (9349ff5)

2.4.0 (2026-07-23)

Features

  • artifacts: support MSIX and AppX packages (6e6cce1)
  • expand reactive capture and package analysis (9da1794)
  • process: add reactive capture scenarios (69761e9)

Bug Fixes

  • capabilities: expose typed availability codes (b906def)

2.3.0 (2026-07-23)

Features

  • complete REA remediation program (d25e98c)
  • evidence: generate verifier completion ledgers (c02d33f)
  • evidence: generate verifier completion ledgers (f5b3e22)
  • javascript: add bounded semantic relation graph (b3939ea)
  • javascript: add bounded semantic tracing (56c1a66)
  • javascript: add local semantic call flow (a26a1c7)
  • javascript: expose bounded semantic tracing (508a9cc)
  • process: add bounded reactive scenario domain (42f3b9c)
  • process: add bounded reactive scenario domain (d34463c)
  • process: add direct replay machine runner (3df9a07)
  • process: compare declared concurrent traces (d81745c)
  • process: coordinate reactive capture effects (b874efd)
  • process: coordinate reactive capture effects (db9a831)
  • process: record global capture event order (8bcdb98)
  • process: record provider and verifier run lineage (02b01d4)
  • process: record provider and verifier run lineage (513fa29)
  • process: run finite-state replay during capture (820af60)
  • process: run finite-state replay during capture (34c583a)

Bug Fixes

  • browser: redact transitional target titles (f6095cb)
  • cli: retain bundled skill and bias setup wizard toward apply (5692b3f)
  • cli: retain bundled skill and bias setup wizard toward apply (fec5c3c)
  • cli: route JavaScript applications from analyze (737940c)
  • cli: route JavaScript applications from analyze (74965d9)
  • javascript: preserve candidate trace ambiguity (8678b57)
  • knip: ignore ps binary and in-file schema exports (9960982)
  • mcp: preserve investigation input policy (5a908a0)
  • mcp: preserve investigation input policy (f4156d9)
  • process: bound trace comparison semantics (b4df565)
  • process: normalize resize frame timestamps (74d1c7b)
  • process: normalize resize frame timestamps (77696df)
  • process: preserve nonconforming differences (f1cc485)
  • process: preserve replay event causality (d895e49)
  • process: protect unrelated Hopper during cleanup (81539c4)
  • process: protect unrelated Hopper during cleanup (e4ee4c9)

Code Refactoring

  • process: extract capture journal recorder (a32b988)
  • process: split trace comparison domain logic (75d5a87)
  • process: split trace comparison helpers (6d8ecd2)

Documentation

  • cli: clarify setup consent comment (e869137)
  • refresh Node 24 TypeDoc output (846193c)

Tests

  • browser: stabilize real shape capture (bb2e243)

Continuous Integration

  • remove redundant typecheck, lint, and format compatibility jobs (eb27f01)
  • remove redundant typecheck, lint, and format compatibility jobs (aeb5cb3)
  • shard coverage tests and skip docs-only suites (c736317)
  • shard coverage tests and skip docs-only suites (fa58082)

2.2.0 (2026-07-20)

Features

  • artifacts: project mobile application inventories (c6a1a93)
  • artifacts: project mobile application inventories (d36b385)
  • process: add bounded replay state machines (fea965b)
  • process: add bounded replay state machines (dc0c2e5)
  • process: compare repeatable paired experiments (e9899c0)
  • process: compare repeatable paired experiments (9ab7aa3)
  • streamline agent integration and MCP routing (02cb20b)
  • streamline agent integration and MCP routing (3e3d458)

Bug Fixes

  • align session filters and Hopper verification (d7d6bdf)
  • artifacts: align projection provider targets (560dbda)
  • artifacts: bound mobile projection candidates (0cc9d46)
  • ci: keep tool kind type internal (b9bead2)
  • ci: retry published package verification (0810486)
  • ci: retry published package verification (c379455)

Documentation

  • refresh generated API links (a2089a4)
  • update application projection API (b0cb28a)
  • update paired process experiment API (a222327)
  • update replay machine API (d74f897)

Tests

  • budget CLI output variant subprocesses (8d3587b)
  • cap workers across all hosts (bc80359)
  • inherit root options in Vitest projects (168100e)
  • isolate slow filesystem and CLI suites (c2e134b)
  • stabilize subprocess-heavy integration suites (a556e94)

2.1.0 (2026-07-18)

Features

  • add managed characterization and coverage closure (1943496)
  • add managed characterization and reconstruction coverage (02c913b)
  • cli: add explicit package-runner setup wizard (891a11f)
  • cli: improve setup onboarding (4851449)
  • cli: improve setup onboarding (16002ff)
  • cli: support package-name setup wizard (1b90e7f)
  • doctor: admit the Windows x64 Ghidra boundary (32dda0c)
  • dotnet: add BYO ILSpy oracle diagnostics (aa200ce)
  • ghidra: add authenticated Windows loopback transport (629ffc3)
  • ghidra: bind imports to admitted target bytes (be19c3f)
  • ghidra: define the Windows P0 admission boundary (6b1fd16)
  • ghidra: inspect Windows headless installations (86e44be)
  • ghidra: launch bounded Windows headless sessions (bc0fb45)
  • harden authority and runtime conformance boundaries (b537ebf)
  • javascript: add binding and constant-value semantic IR (3ea8523)
  • javascript: add binding and constant-value semantic IR (3d71bb5)
  • javascript: add webpack and rspack runtime adapters (7bccb7c)
  • javascript: add webpack and rspack runtime adapters (44c7017)
  • javascript: recover commonjs and esm module relationships (9766fc0)
  • javascript: recover commonjs and esm module relationships (6c41791)
  • permissions: add scoped process capture elicitation (e6cfce3)
  • skill: rename skill to reverse-engineer-anything (9356634)
  • target: classify Windows PE admission metadata (24274fe)
  • windows: define native authority boundary (a1a6b42)

Bug Fixes

  • build: preserve native generated-file line endings (00a3078)
  • ci: remove retired native rebuild steps (2d22731)
  • ci: validate packaged Windows CLI commands exactly (43418ee)
  • cli: require explicit setup selections (992ec50)
  • contracts: make agent-facing schemas self-describing (0df11dd)
  • dotnet: admit real CLI GUID and fat CIL bodies (735973b)
  • dotnet: correct CLI pointer and byref signatures (1387be0)
  • dotnet: correct CLI pointer and byref signatures (fb9ff56)
  • dotnet: downgrade truncated CIL identity and coverage (736a4e1)
  • dotnet: downgrade truncated CIL identity and coverage (dae6807)
  • electron: keep missing unpacked ASAR entries unavailable (fb6964a)
  • electron: resolve package and dirname entrypoints by context (4847fc4)
  • electron: resolve package and dirname entrypoints by context (1ac9a09)
  • ghidra: preserve native endpoint diagnostics (5970a71)
  • ghidra: preserve Windows batch invocation semantics (0ac418d)
  • ghidra: validate Windows control characters explicitly (4dccbec)
  • managed: emit valid x64 conformance PE (dcd94f1)
  • managed: emit valid x64 conformance PE (c52a822)
  • managed: preserve page incompleteness in graph and comparison (a6f02a0)
  • managed: preserve page incompleteness in graph and comparison (8ee0f04)
  • mcp: clarify advertised schema fields (1581e40)
  • npm: use latest entry points without install scripts (34252f5)
  • npm: use latest entry points, remove install scripts, and rename skill (bf85ee6)
  • preserve optional unknown filters (db1efef)
  • remove unused boundary exports (49f1ec1)
  • satisfy dead-code and generated-doc checks (b15a9ec)
  • setup: preserve onboarding after refactor (da48033)
  • skill: disclose retired skill cleanup (4c69e61)

Code Refactoring

  • adapters: split oversized provider workflows (1a99a60)
  • app: split session and CLI workflows (c6ee004)
  • domain: split analysis boundaries (e2c868c)
  • finish lint cleanup (2bea405)
  • managed: split metadata analysis (20c88dd)
  • setup: keep planner helpers private (2d1f961)
  • simplify authorization boundaries (2e5b443)
  • simplify doctor and error projections (37f4ac6)
  • skill: keep only the canonical skill identity (a7c1e87)
  • skill: remove legacy skill compatibility (8cf0dd2)
  • split oversized analysis workflows (af2399e)
  • split oversized analysis workflows (3e61a63)
  • windows: keep capability outcomes module-private (585f523)

Documentation

  • cli: describe every command input (d4be3e7)
  • ghidra: define the experimental Windows P0 (8b5ae41)
  • managed: align normalized CIL claims with shipped v1 semantics (9a92a79)
  • managed: align normalized CIL claims with shipped v1 semantics (3f788e9)
  • normalize inherited source paths (d33213a)
  • preserve generated source links (2ea375f)
  • prioritize agent usability in tool design (ad17fe7)
  • refresh Electron path resolution API (734a4ef)
  • refresh generated API reference (f5f653b)
  • regenerate managed coverage API with Node 24 (e47c00e)

Tests

  • add limit monotonicity and partial-evidence regressions (2cce98c)
  • add limit monotonicity and partial-evidence regressions (4afd970)
  • ci: guard Windows Ghidra workflow isolation (81ed68f)
  • ci: guard Windows Ghidra workflow isolation (98540c8)
  • cli: cover package-name binary alias (40e2f94)
  • hopper: add semantic runtime conformance (da1da3b)
  • package: align setup preflight contract (b33ebb1)

Continuous Integration

  • ghidra: add Windows P0 acceptance and real-engine lanes (0b35510)

2.0.0 (2026-07-16)

⚠ BREAKING CHANGES

  • mcp: require Evidence for managed reconstruction
  • mcp: comparison tools now require session-owned Evidence IDs or approved bundle paths, and structured Evidence results use compact references.

Features

  • application: add cross-layer graph workflows (778b995)
  • application: add isolated JavaScript replay (d86231a)
  • dotnet: add managed artifact triage (c251c38)
  • dotnet: add managed member comparison (55794d6)
  • dotnet: add managed member inspection (98cad37)
  • dotnet: add managed native boundary inspection (466b1bb)
  • dotnet: add managed runtime correlation planning (5f66cfd)
  • dotnet: import managed reconstructions (c506664)
  • dotnet: verify managed native boundaries (8cbc125)
  • electron: map static process and IPC boundaries (3fa2304)
  • electron: reconcile static artifacts with passive runtime (8c67dbd)
  • managed: project static evidence into application graph (6194c1a)
  • managed: project static evidence into application graph (77178bb)
  • mcp: harden contracts and evidence references (ee1cd40)
  • mcp: require Evidence for managed reconstruction (d36af5d)
  • setup: verify installed skill catalog identity (b2d1f2a)

Bug Fixes

  • deps: run freshness check from escaped paths (8a1c128)
  • mcp: align runtime unknown argument validation (d1e7220)
  • mcp: hide managed workflows without a session (412bbaf)
  • mcp: integrate managed contracts after rebase (9c4a93d)
  • mcp: normalize inferred field descriptions (a807471)
  • mcp: parse adapter inputs exactly once (37c0f39)
  • mcp: remove arbitrary schema byte gate (fd08025)
  • mcp: remove schema byte compaction (f728295)
  • package: accept expected doctor diagnostics (0f2d013)
  • test: make host fixtures portable (f23f529)

Code Refactoring

  • mcp: remove obsolete managed evidence parser (f7aa191)

Documentation

  • analysis: define managed-code evidence boundary (80faff3)
  • api: refresh managed reconstruction contracts (2b06433)
  • dotnet: refresh managed reconstruction api (cc1e47c)
  • refresh application workflow API links (4a30820)
  • refresh managed native verification api (849c052)
  • refresh managed runtime api docs (798631a)
  • refresh runtime reconciliation API (87b2348)
  • security: define controlled replay authority (461990d)
  • stabilize replay API source links (a8c1057)

Tests

  • dotnet: add managed conformance verifier (2b75fcf)
  • dotnet: verify managed app graph manifests (5be4051)
  • dotnet: verify managed app graph manifests (a5e5c68)
  • dotnet: verify managed app manifests (793a948)
  • hopper: avoid scheduler-sensitive exit timing (6e6827c)
  • mcp: cover strict compact wire contracts (8de25d0)
  • mcp: derive sessionless managed inventory (cab7c4a)
  • replay: use portable seam executables (3183f47)

1.7.0 (2026-07-15)

Features

  • artifact: reconstruct JavaScript application structure (aa46abf)
  • domain: add versioned JavaScript Application Graph (2ca5672)
  • ghidra: add function analysis and conformance (d8321de)
  • ghidra: add private headless provider session (f0e625d)
  • ghidra: implement read-only inventory operations (b1c07dd)
  • session: add explicit provider registry and target binding (941d710)

Bug Fixes

  • address setup, upgrade, and process test regressions (960d759)
  • address setup, upgrade, and process test regressions (02f12b9)
  • cli: make clean source checkouts start reliably (ed17e76)
  • cli: make clean source checkouts start reliably (6ba9765)
  • setup: replace managed Hopper on reinstall (0ca93f9)

Code Refactoring

  • domain: remove provider-specific target and snapshot state (21da71e)
  • process: extract reusable provider lifecycle primitives (70e1a0f)

Documentation

  • api: refresh profile source anchors (bd3cf96)
  • api: refresh provider source anchors (a7621c2)
  • architecture: define provider selection and analysis profiles (75f8696)
  • architecture: define provider selection and analysis profiles (f9f2fbe)
  • reconcile product documentation with shipped behavior (addc208)
  • reconcile product documentation with shipped behavior (54056a9)
  • refresh Ghidra inventory API links (a45de27)
  • regenerate JavaScript graph API with Node 24 (da4817a)

Tests

  • keep package setup verification read-only (acaf030)

1.6.0 (2026-07-14)

Features

  • add web and Electron reverse-engineering workflows (be76f80)

Bug Fixes

  • application: add explicit investigation replay (7112e1e)
  • application: add explicit investigation replay (a6b5ca4)
  • browser: keep page endpoint type internal (3743962)
  • browser: observe direct target disconnects (9be24f8)
  • browser: preserve operation-aware cancellation errors (0aac8aa)
  • browser: support page-scoped CDP transports (c4930f4)
  • browser: support page-scoped CDP transports (bf96192)
  • browser: support relative source map URLs (5231e95)
  • cli: confirm project grant revocation (6397e54)
  • cli: confirm project grant revocation (7a4cfb4)
  • cli: restrict production MCP dispatch (8bd0e5f)
  • cli: restrict production MCP dispatch (190e5d3)
  • doctor: honor explicit Hopper launcher (c69fe2c)
  • doctor: honor explicit Hopper launcher (9208592)
  • evidence: enforce the combined record limit (c791802)
  • evidence: enforce the combined record limit (834c70c)
  • hopper: cancel startup before closing (f471a63)
  • hopper: cancel startup before closing (6cc2fdf)
  • hopper: select verified Linux demo mode explicitly (46e4052)
  • hopper: select verified Linux demo mode explicitly (04c5fd6)
  • native: harden command capture edge cases (c2e64a4)
  • native: harden command capture edge cases (d39f98d)
  • preserve setup diagnostics and clean Knip config (2d1e021)
  • preserve setup diagnostics and clean Knip config (5a7ccef)
  • process: gate sampling on initialized PTY root (57938a8)
  • process: gate sampling on initialized PTY roots (e831a41)
  • process: keep validation detail internal (614a119)
  • process: restrict cleanup to captured group leaders (40c6f60)
  • process: settle exited zombie groups (072ce5a)
  • process: settle exited zombie groups (4828326)
  • process: stabilize and speed up the test suite (a3b7de9)
  • reference: preserve distinct parse failures (e02cb2f)
  • reference: preserve distinct parse failures (543510f)
  • rollup batch of fixes (b348b2c)
  • runtime: apply permission reloads atomically (49e843e)
  • runtime: apply permission reloads atomically (3ae7109)
  • runtime: serialize permission reloads (7e53dd6)
  • runtime: unregister shutdown handlers (71072d8)
  • runtime: unregister shutdown handlers (f9e3c23)
  • session: isolate availability observers (43766fd)
  • session: isolate availability observers (e5a80d4)
  • session: reopen replaced targets (e98413c)
  • session: reopen replaced targets (5c55999)
  • setup: configure every detected client (69744a4)
  • setup: configure every detected client (24f9a1f)
  • setup: omit aligned client configurations from plan (a86da4f)
  • setup: omit aligned skill from plan (d81687f)
  • setup: omit aligned skill from plan (2984fa7)
  • setup: preserve client config symlinks (85285f1)
  • setup: preserve client config symlinks (df87544)
  • test: adapt mainReload shutdown seam to registerShutdown signature (0a430c1)
  • tooling: isolate concurrent repository checks (fb17156)
  • tooling: isolate concurrent repository checks (ab8c5c1)
  • upgrade: prevent version downgrades (a204840)
  • upgrade: prevent version downgrades (1d1d234)
  • verify: reconcile PR-212/215/228 package E2E expectations (cfa110c)

Performance Improvements

  • application: scan version artifacts in parallel (528c05e)
  • application: scan version artifacts in parallel (c00739b)

Tests

  • application: verify packaged MCP replay (6601e0c)
  • browser: harden Chrome startup on CI (74c5121)
  • browser: route discovery sockets through proxy (e363f0e)
  • browser: verify page-scoped Chrome transport (c252536)
  • cli: verify packaged policy revocation (3d71737)
  • hopper: cover verified Linux rejection (db202c2)
  • hopper: retry after cancelled startup (6de726f)
  • hopper: verify alternate Linux launcher path (d93257b)
  • package: cover aligned setup plan (a597639)
  • package: cover config symlink lifecycle (d1ef7a5)
  • package: preserve unrelated symlink config (c50e51e)
  • reduce test suite runtime (2223da1)
  • reference: cover failure normalization (3d5041f)
  • runtime: cover idempotent handler cleanup (1bdb59e)
  • serialize subprocess-heavy integrations (f46fc7f)
  • session: reopen replaced target through MCP (1c32880)
  • setup: cover later clients after failure (8f73112)

1.5.0 (2026-07-14)

Features

  • add passive website reverse engineering (9986971)
  • add passive website reverse engineering (2c1ceab)

Bug Fixes

  • browser: drop disallowed redirect evidence (8481be9)
  • browser: scope CDP events and fail closed (5279d77)
  • browser: scope workers and binary frame sizes (dfc06cf)
  • harden PTY events and configured roots (ae8b1c5)
  • harden PTY events and configured roots (31b40f3)
  • permission: defer cache write grants (6a3fd5b)
  • permission: defer cache write grants (f840e70)
  • resolve triaged correctness issues (2575b30)
  • resolve triaged correctness issues (e8ed307)
  • resolve validation and artifact edge cases (2468682)
  • resolve validation and artifact edge cases (ef7f2f9)

Documentation

  • add Hopper screenshot to README (a699fdd)
  • add Hopper screenshot to README (08981a3)

Tests

  • cli: allow cold-start integration timing (7d5621d)

1.4.0 (2026-07-14)

Features

  • core: add typed policy and integrity contracts (190efca)
  • identity: derive MCP surface metadata (2722722)
  • mcp: expose progress resources and availability (da59299)
  • mcp: land policy, resources, and typed contracts (8f79ee7)

Bug Fixes

  • ci: keep generated error docs with their owner (3e60e38)
  • ci: preserve stacked integration changes (cf8e5cf)
  • cli: return nonzero status for operation failures (#121) (00c187e)
  • cli: return nonzero status for operation failures (#122) (964620a)
  • hopper: complete owned Linux shutdown (#116) (fb51874)
  • mcp: preserve migrated revisions and valid links (4149472)
  • preserve actionable artifact diagnostics (#119) (7385220)
  • workspace: migrate legacy integrity identities (d092d4c)

Tests

  • identity: defer live MCP integration proof (74db3fc)

1.3.0 (2026-07-13)

Features

  • add guided MCP workflow prompts (08d5b91)
  • add guided MCP workflow prompts (24c3adb)
  • add persistent cross-version investigation workspaces (c52eb46)
  • add persistent cross-version investigation workspaces (41366ed)
  • analysis: add provider-neutral persistent snapshots (c439b9e)
  • analysis: persist snapshots and close Hopper reliably (c6407ef)
  • errors: add caller-safe typed error projections (3be439c)
  • mcp: return structured typed tool results (eb38e4c)

Bug Fixes

  • bridge: bound regex search work (733a382)
  • bridge: bound regex search work (65682ee)
  • ci: remove unused setup type export (c5728af)
  • cli: render actionable analysis errors (af8c4ef)
  • copy: use agent terminology (12060f6)
  • errors: improve recovery guidance (77454dc)
  • errors: return actionable caller-safe failures (fb0da03)
  • hopper: cancel analysis and close documents reliably (179870e)
  • hopper: return addresses for procedure relationships (2c707ab)
  • linux: start Hopper demo sessions headlessly (32c5080)
  • linux: start Hopper demo sessions headlessly (75818d1)
  • security: restrict investigation artifact inputs (a2076b4)

Tests

  • linux: verify setup through CLI and MCP (67504d2)
  • package: preserve unsupported host verification (977119f)
  • strengthen MCP prompt acceptance coverage (05fb9b1)

1.2.0 (2026-07-13)

Features

  • artifacts: add approved native DMG traversal (24d000a)
  • process: add deterministic capture v3 (d0e21f9)
  • process: add deterministic capture v3 (5a361a6)
  • process: introduce evidence-safe capture v4 (ee4d284)

Bug Fixes

  • artifacts: diagnose unpacked ASAR integrity failures (a504342)
  • ci: remove redundant process exports (19bb231)
  • process: harden capture validation and cleanup (ac78de0)

Code Refactoring

  • artifacts: simplify inventory traversal (c8d762e)
  • setup: split setup and CLI registration (07e1b5a)

Documentation

  • document capture v4 and native mounts (aca518b)
  • document process capture v3 (50f4a29)
  • process: preserve capture invariants (841990b)
  • skill: document capture v4 and DMG mounts (f0a9a3c)

Tests

  • process: use deterministic hang fixture (ba15d16)

1.1.0 (2026-07-13)

Features

  • setup: make installation explicit and safe (29d92ca)
  • setup: make installation explicit and safe (3793889)

Bug Fixes

  • preserve requested evidence paths on macOS (0c0e2b8)
  • preserve requested evidence paths on macOS (3d0ad79)

Documentation

  • api: regenerate TypeDoc reference (0a66cae)
  • define REA contributor priorities (5df4ef6)
  • explain the installation workflow (1c83263)

1.0.0 (2026-07-13)

⚠ BREAKING CHANGES

  • contracts: batch_decompile, get_call_graph, and find_xrefs_to_name now return structured discriminated output shapes.

Features

  • cli: add self-upgrade command (c004220)
  • cli: add self-upgrade command (0d77a9f)

Bug Fixes

  • contracts: keep error schema internal (ac8cc66)
  • contracts: return structured workflow failures (4c54ff6)
  • native: classify pre-aborted analysis first (dfd598f)

Documentation

  • list upgrade in CLI reference (8a24088)

0.5.0 (2026-07-13)

Features

  • analysis: harden agent workflows and evidence boundaries (883db91)
  • cli: align terminal workflows with MCP (b1912b1)

Bug Fixes

  • analysis: accept valid final dossier pages (7c36f36)
  • bridge: harden bounded Hopper boundaries (f8e8ea3)
  • cli: preserve function provider provenance (c630f41)
  • lifecycle: validate owned Hopper process identity (898d6b0)
  • process: default capture networking to loopback (bce3398)
  • process: keep network approval fail-closed (9526389)

Code Refactoring

  • cli: share direct analysis tool types (329fdf6)

Documentation

  • correct pull request tool inventory (d806480)
  • document CLI safety and provider evaluation (efc9bd2)

Tests

  • docs: keep localized claims and tool counts aligned (a7b84a9)
  • verification: strengthen conformance and real-Hopper checks (0d36976)

0.4.0 (2026-07-12)

Features

  • add cross-platform installation lifecycle (cc6a955)
  • add cross-platform installation lifecycle (e651cb6)

Documentation

  • document installation and Linux support (034563a)
  • simplify REA onboarding (e1dfe86)
  • simplify REA onboarding (d85b661)

Tests

  • add package installation end-to-end coverage (993356b)
  • stabilize artifact pagination coverage (f56bdde)

Continuous Integration

  • enforce conventional pull request titles (07a0b98)
  • enforce conventional pull request titles (3a21f16)
  • verify installed package with Linux Hopper (4f97f69)

0.3.0 (2026-07-12)

Features

  • add evidence-backed process investigations (cc8681a)
  • cli: add guided local onboarding (8ca3db8)
  • evolve REA analysis platform (4f18e26)
  • identity: rename package and CLI to REA (3d70812)
  • mcp: add typed bounded analysis tools (893d2e2)
  • session: add dynamic binary lifecycle (f32e718)

Bug Fixes

  • boundaries: reject unsafe local inputs (15e8cf3)
  • doctor: require an executable Hopper launcher (aee9cb8)
  • hopper: launch analysis without stealing focus (ff321dc)
  • hopper: make loader selection non-interactive (2b7ef86)
  • keep execution options internal (167a824)
  • setup: persist detected Hopper launcher (b2866e4)
  • setup: preserve consent and startup target kind (a67054f)
  • setup: preserve invalid MCP configuration (88f5edc)
  • targets: cancel startup and probe PE offsets (66b8d6e)
  • verify: tolerate exited Hopper helpers (b167bd7)

Code Refactoring

  • cli: share runtime between CLI and MCP (97541d8)

Documentation

  • document frictionless binary workflow (ee6d539)
  • document the 43-tool workflow (1f235cb)
  • record runtime and release constraints (62ede51)
  • redesign and localize README (051b6db)
  • redesign and localize README (910eda6)

Tests

  • add source-built Hopper conformance fixtures (d648bcd)

0.2.1 (2026-07-12)

Documentation

  • redesign and localize README (051b6db)
  • redesign and localize README (910eda6)

0.2.0 (2026-07-12)

Features

  • cli: add guided local onboarding (8ca3db8)
  • identity: rename package and CLI to REA (3d70812)
  • session: add dynamic binary lifecycle (f32e718)

Bug Fixes

  • boundaries: reject unsafe local inputs (15e8cf3)
  • doctor: require an executable Hopper launcher (aee9cb8)
  • hopper: launch analysis without stealing focus (ff321dc)
  • hopper: make loader selection non-interactive (2b7ef86)
  • setup: persist detected Hopper launcher (b2866e4)
  • setup: preserve consent and startup target kind (a67054f)
  • setup: preserve invalid MCP configuration (88f5edc)
  • targets: cancel startup and probe PE offsets (66b8d6e)
  • verify: tolerate exited Hopper helpers (b167bd7)

Code Refactoring

  • cli: share runtime between CLI and MCP (97541d8)

Documentation

  • document frictionless binary workflow (ee6d539)
  • record runtime and release constraints (62ede51)