Commit Graph

235 Commits

Author SHA1 Message Date
morluto e8c56e0c0a refactor(electron): retain complete active observations 2026-09-29 12:42:24 +08:00
morluto bd0e341572 refactor(tools): remove redundant limits and acknowledgements 2026-09-29 10:53:45 +08:00
morluto 7ba3580c86 refactor(artifacts): select extraction by logical path 2026-09-29 10:53:33 +08:00
morluto 7acac615ca refactor(contracts): simplify workflows and drop readiness tool 2026-09-29 09:22:44 +08:00
morluto 0fe96d92df refactor(artifacts): consolidate inventory into inspection 2026-09-29 09:22:24 +08:00
morluto a66e43a99d fix(ghidra): return complete native analysis results 2026-09-29 08:45:49 +08:00
morluto 5457f4a2bc refactor(schema): remove data-only version markers 2026-09-29 08:45:36 +08:00
morluto a2a3243ea8 refactor: return complete analysis results inline 2026-09-29 08:07:24 +08:00
morluto 81996df7a5 refactor: remove cross-version investigation workflow 2026-09-29 08:06:43 +08:00
morluto 0d96275b68 refactor: return complete tool results inline 2026-09-29 07:08:46 +08:00
morluto 2160d4fae5
fix: consolidate boundary ownership and cleanup failure paths (#477) 2026-09-08 10:59:13 +08:00
morluto e91c8c39c2
refactor(test): colocate pure-domain tests and reduce test debt (#471)
* refactor(test): colocate pure-domain tests and reduce test debt

Move focused immutable domain/contracts/adapter tests from
tests/composition/** beside their production owners under src/** as
colocated *.test.ts/*.fixture.ts, and relocate persistence-shaped
composition tests under tests/boundary/filesystem/**. Update import
paths, the Vitest project topology (shared worker context for pure
domain/contracts and recording-port service projects), the test
migration ledger, testing docs, and AGENTS.md to match.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* docs: remove test migration ledger

The cutover is complete and the ledger is no longer referenced anywhere
in source, scripts, or the docs gate. Drop the standalone artifact.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* docs: clean up stale migration artifacts

Remove empty directories left by the test migration and replace the
"final cutover" language in docs/testing.md with standing PR guidance
that no longer references the completed migration.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: repair CI failures from schema, knip, and stale generated artifacts

Three root causes fixed:

1. catalog-schemas.mjs: valuesAt only traversed anyOf from Zod's
   toJSONSchema, not oneOf. The webScreenshotDiffSchema change to a
   discriminated union produces oneOf, so the product catalog generator
   could not derive the web_screenshot_diff schema version. Add oneOf
   traversal.

2. conformancePackage.ts: the test rewrite removed the only imports of
   ScenarioManifest, ReplayPlan, ShimPlan, and ExpectedEvidence, making
   them unused exports that knip flags. Remove the dead type aliases.

3. Regenerate stale artifacts (product catalog, MCP tool catalog, skill
   metadata, conformance manifest) that drifted from the source changes.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-10 14:57:44 +08:00
morluto 1783bf6dfd
fix(npm): preserve explicit setup versions (#465)
* fix(npm): refresh stale setup bootstraps

* fix(npm): preserve explicit setup versions

* docs: distinguish first-run and refresh setup
2026-08-10 02:59:52 +08:00
morluto b8a9da0c0f
refactor(mcp): make analysis states unrepresentable (#468)
* refactor(config): parse capability settings into exact states

* refactor(runtime): encode replay and process outcomes exactly

* refactor: make analysis states unrepresentable

* refactor(mcp): register canonical schemas with SDK

* fix: preserve capability and catalog invariants

* fix(build): remove stale compiled modules

* fix(replay): update real verifier policy dependency

* fix(package): verify the complete MCP catalog

* fix(test): supply complete replay reload policy

* refactor(contracts): centralize output schema lookup

* refactor(mcp): delegate protocol boundaries to SDK

* fix(browser): approve real source capture

* fix(mcp): preserve catalog guidance
2026-08-10 02:28:11 +08:00
morluto 8f229ede70
feat(electron): add autonomous Electron runtime analysis (#464)
* feat: add autonomous Electron runtime analysis

* feat(electron): add lifecycle and boundary telemetry

* feat(electron): capture runtime boundary evidence

* fix(electron): package boundary hook helper

* feat(electron): report active capture coverage

* fix(electron): account for bring-your-own runtime

* feat(electron): expand agent-owned runtime scenarios

* fix(ghidra): keep fixture credentials out of argv

* perf(test): serialize local test and docs workloads

* fix(electron): harden active runtime capture

* fix(inspector): require exact runtime target authorization

* fix(docs): make managed manifest host independent

* fix(ci): make generated catalog portable

* fix: unblock autonomous command and electron flows

* fix(electron): close popup and detached helper gaps
2026-08-05 19:07:46 +08:00
morluto 51559245d2
Merge pull request #461 from morluto/agent/comprehensive-repository-audit
fix: harden evidence lifecycle and MCP contracts
2026-08-04 03:00:25 +08:00
morluto 1f8ad7bc68 test(package): verify npx upgrade on published releases 2026-08-01 15:10:12 +08:00
morluto ba098f24e5 test(eval): cover navigation and address tool routing 2026-07-29 17:36:51 +00:00
morluto 281e41f766 fix(verify): follow dynamic Hopper tool availability 2026-07-29 07:18:48 +00:00
morluto c4cd0330e0 fix(catalog): digest provider projections 2026-07-26 16:07:12 +00:00
morluto 7157ab0b70 test(mcp): stabilize lazy-loading verification 2026-07-26 15:26:41 +00:00
morluto fecddc0549 perf(mcp): reduce cold-start work 2026-07-26 15:02:58 +00:00
morluto 90bb1610f5 fix(setup): refresh stale local npx bootstrap 2026-07-26 06:39:28 +00:00
morluto 4716fa2ece test: add critical provider workflow coverage 2026-07-25 15:12:51 +00:00
morluto 521139d4a5 feat(native): inspect API boundaries with evidence 2026-07-25 14:29:28 +00:00
morluto 9522adf19a test(package): prove artifact cleanup and identity 2026-07-25 14:29:08 +00:00
morluto 095c75df23 fix(ci): allow slower real browser startup 2026-07-24 15:28:32 +00:00
morluto 1c9e50814e fix(ci): repair cross-platform package verification 2026-07-24 15:22:24 +00:00
morluto 24b3dc41df fix(browser): contain scenario pages and preserve inputs 2026-07-24 14:14:15 +00:00
morluto f0069cbee4 fix(browser): require storage fingerprint approval 2026-07-24 14:13:57 +00:00
morluto 035e1144b0 feat(server): advertise available tools dynamically 2026-07-24 13:18:58 +00:00
morluto 38ff7418ef feat(reconstruction): evaluate end-to-end readiness 2026-07-24 13:18:10 +00:00
morluto 8271650945 feat(runtime): add passive V8 Inspector observation 2026-07-24 13:16:35 +00:00
morluto 1ac3118aa2 feat(browser): capture controlled Playwright scenarios 2026-07-24 13:16:01 +00:00
morluto 8e7709d35a feat(analysis): add bounded memory and call tracing 2026-07-24 13:14:01 +00:00
morluto 13f3372a8b fix(test): use direct Node launcher on macOS 2026-07-24 03:31:26 +00:00
N0zoM1z0 0b7013134c test(package): stabilize fake Hopper ownership 2026-07-24 00:33:29 +09:00
N0zoM1z0 e0bc7fd973 fix(hopper): add bounded analysis recovery 2026-07-24 00:33:29 +09:00
morluto 508a9ccde9 feat(javascript): expose bounded semantic tracing 2026-07-22 23:22:55 +00:00
morluto d6f2007723 build: shorten local validation loops 2026-07-23 03:42:41 +08:00
morluto 76d3cd5d18 Merge branch 'origin/main' into codex/issue-386 2026-07-22 16:18:40 +00:00
morluto c08b9a7d6c build: streamline local and CI validation 2026-07-22 16:06:28 +00:00
morluto f236b95316 build: separate cached local and PR checks 2026-07-22 15:05:36 +00:00
morluto e4ee4c9635 fix(process): protect unrelated Hopper during cleanup 2026-07-22 14:04:00 +00:00
morluto 513fa294a4 feat(process): record provider and verifier run lineage 2026-07-22 14:01:47 +00:00
morluto f5b3e22e72 feat(evidence): generate verifier completion ledgers 2026-07-22 13:59:19 +00:00
N0zoM1z0 bb2e2432a5 test(browser): stabilize real shape capture 2026-07-22 22:09:12 +09:00
N0zoM1z0 d25e98c3f9 feat: complete REA remediation program 2026-07-22 22:09:12 +09:00
N0zoM1z0 74965d9088 fix(cli): route JavaScript applications from analyze 2026-07-21 23:42:28 +08:00
morluto 49ae23bde2 fix(ci): automate release version artifacts 2026-07-20 13:43:36 +00:00
N0zoM1z0 d7d6bdf474 fix: align session filters and Hopper verification 2026-07-20 17:33:25 +08:00
N0zoM1z0 3e3d45856e feat: streamline agent integration and MCP routing 2026-07-20 17:11:06 +08:00
morluto c379455da7 fix(ci): retry published package verification 2026-07-18 14:40:42 +08:00
morluto 31c52c77c7 merge: integrate package-name setup wizard 2026-07-18 06:15:36 +00:00
morluto 992ec505b2 fix(cli): require explicit setup selections 2026-07-18 14:02:28 +08:00
morluto b33ebb1627 test(package): align setup preflight contract 2026-07-18 05:49:15 +00:00
morluto 2bea40571d refactor: finish lint cleanup 2026-07-18 05:49:14 +00:00
morluto 3e61a63a10 refactor: split oversized analysis workflows 2026-07-18 05:49:14 +00:00
morluto 1a99a60a29 refactor(adapters): split oversized provider workflows 2026-07-18 05:49:14 +00:00
morluto 2e5b44365f refactor: simplify authorization boundaries 2026-07-18 05:49:14 +00:00
morluto 1b90e7f992 feat(cli): support package-name setup wizard 2026-07-18 13:37:19 +08:00
morluto a1a6b4200e feat(windows): define native authority boundary 2026-07-18 04:50:24 +00:00
morluto da1da3bfb8 test(hopper): add semantic runtime conformance 2026-07-18 04:50:23 +00:00
morluto 16002ff3c2 feat(cli): improve setup onboarding 2026-07-18 11:59:16 +08:00
N0zoM1z0 c52a8223c6 fix(managed): emit valid x64 conformance PE 2026-07-17 20:06:07 +08:00
morluto d4be3e7f9a docs(cli): describe every command input 2026-07-17 02:50:31 +00:00
morluto 8cf0dd2bf6 refactor(skill): remove legacy skill compatibility 2026-07-17 01:28:42 +00:00
morluto 4c69e6120a fix(skill): disclose retired skill cleanup 2026-07-17 00:49:48 +00:00
morluto 9356634ccb feat(skill): rename skill to reverse-engineer-anything 2026-07-17 00:35:19 +00:00
morluto 34252f55e9 fix(npm): use latest entry points without install scripts 2026-07-17 00:16:46 +00:00
morluto 194349683a feat: add managed characterization and coverage closure 2026-07-16 22:53:50 +00:00
N0zoM1z0 00a3078148 fix(build): preserve native generated-file line endings
Treat CRLF and LF as equivalent when checking committed text artifacts so Windows package lifecycles do not report false drift.

When real generated content changes, retain the existing artifact's line-ending convention and cover both check and update behavior with a focused regression test.
2026-07-17 03:05:19 +09:00
N0zoM1z0 43418ee911 fix(ci): validate packaged Windows CLI commands exactly 2026-07-17 03:05:19 +09:00
N0zoM1z0 0b3551076d ci(ghidra): add Windows P0 acceptance and real-engine lanes
Add a hosted Windows x64 lane for named host capabilities, portable provider tests, and packed CLI/MCP verification. Add a default-branch-only repository-dispatch workflow for a controlled self-hosted Ghidra 12.1.2 runner, backed by a deterministic source-owned native PE fixture and a verifier that exercises all 18 admitted operations, target digest linkage, authenticated loopback transport, and complete runtime cleanup.
2026-07-17 03:05:19 +09:00
N0zoM1z0 bc0fb45f16 feat(ghidra): launch bounded Windows headless sessions
Invoke analyzeHeadless.bat through an absolute cmd.exe with fixed interpreter switches, quoted arguments, delayed expansion disabled, and fail-closed metacharacter and length checks. Isolate Windows home and temporary coordinates, hide provider windows, and terminate the P0 launcher tree through bounded taskkill cleanup. Advertise explicit limitations that this preview does not provide Job Object ownership, DACL enforcement, reparse-point authority, or hostile-target safety.
2026-07-17 03:05:19 +09:00
N0zoM1z0 be19c3fd12 feat(ghidra): bind imports to admitted target bytes
Copy each selected target into the ephemeral Ghidra runtime and reject the snapshot unless its SHA-256 matches the provider-neutral target identity. Advance the Java bridge protocol to v4, require Ghidra's imported executable digest to match again, and include that digest in the authenticated session handshake and diagnostics. Preserve bounded streaming hashes and remove mismatched snapshots before launch.
2026-07-17 03:05:19 +09:00
N0zoM1z0 6b1fd166b0 feat(ghidra): define the Windows P0 admission boundary
Admit only native x86-64 PE applications when the Ghidra candidate runs on Windows while preserving the existing Linux format matrix. Add precise rejection codes for executable roles and managed targets, publish a machine-readable Windows capability report, and keep missing no-follow, ACL, Unix-socket, and PTY controls as independent observations rather than inferred support.
2026-07-17 03:05:19 +09:00
N0zoM1z0 735973b08b fix(dotnet): admit real CLI GUID and fat CIL bodies 2026-07-17 00:42:46 +09:00
N0zoM1z0 aa200ce8ca feat(dotnet): add BYO ILSpy oracle diagnostics 2026-07-16 23:56:40 +09:00
N0zoM1z0 a5e5c68d11 test(dotnet): verify managed app graph manifests 2026-07-16 21:52:21 +08:00
N0zoM1z0 77178bba54 feat(managed): project static evidence into application graph 2026-07-16 21:36:13 +08:00
morluto 1140d5637b
Merge branch 'main' into codex/rea-2-mcp-contract-hardening 2026-07-16 20:44:22 +08:00
N0zoM1z0 793a948c1b test(dotnet): verify managed app manifests 2026-07-16 21:44:09 +09:00
morluto 0aef572a26 chore: merge main and resolve MCP contract conflicts 2026-07-16 20:42:14 +08:00
N0zoM1z0 8cbc125b93 feat(dotnet): verify managed native boundaries
Add the verify_managed_native_boundaries workflow for comparing authenticated inspect_managed_native_boundaries Evidence with supplied native export or function Evidence. The workflow verifies only P/Invoke declaration names against observed native symbols, keeps verified, inferred, contradicted, unresolved, and unsupported-native states explicit, and does not translate managed metadata tokens or RVAs into native addresses.

Expose schema-identical MCP and CLI surfaces, update managed workflow contracts, product catalog facts, TypeDoc output, README/localized docs, ADR status, package verification, and the REA analysis skill metadata for the 90-tool/50-command inventory.

Verification: npx vitest run tests/managedNativeVerification.test.ts --coverage=false; npm run typecheck; npm run docs:generate; npm run check (first run hit a load-sensitive sessionMcp timeout, isolated rerun passed); npx vitest run tests/sessionMcp.test.ts --coverage=false; npm run check; npm run knip; npm run jscpd; npm run scan:todos; npm run verify:managed; CXX=/usr/bin/g++-13 CC=/usr/bin/gcc-13 npm run verify:package.
2026-07-16 21:26:38 +09:00
morluto 0f2d01300a fix(package): accept expected doctor diagnostics 2026-07-16 20:26:25 +08:00
morluto fd08025dcd fix(mcp): remove arbitrary schema byte gate 2026-07-16 20:09:14 +08:00
morluto 8a1c128b67 fix(deps): run freshness check from escaped paths 2026-07-16 19:51:25 +08:00
morluto b2d1f2affd feat(setup): verify installed skill catalog identity 2026-07-16 19:51:25 +08:00
morluto ee1cd40405 feat(mcp)!: harden contracts and evidence references
BREAKING CHANGE: comparison tools now require session-owned Evidence IDs or approved bundle paths, and structured Evidence results use compact references.
2026-07-16 19:49:58 +08:00
morluto ad398a17f5 chore(deps): detect stale direct dependency installs 2026-07-16 19:49:57 +08:00
N0zoM1z0 c506664744 feat(dotnet): import managed reconstructions 2026-07-16 20:37:42 +09:00
N0zoM1z0 5f66cfd57a feat(dotnet): add managed runtime correlation planning 2026-07-16 20:10:36 +09:00
N0zoM1z0 2b75fcfaac test(dotnet): add managed conformance verifier 2026-07-16 19:25:13 +09:00
N0zoM1z0 466b1bbebe feat(dotnet): add managed native boundary inspection 2026-07-16 18:57:56 +09:00
N0zoM1z0 55794d6083 feat(dotnet): add managed member comparison 2026-07-16 18:27:08 +09:00
N0zoM1z0 98cad3788d feat(dotnet): add managed member inspection 2026-07-16 17:44:36 +09:00
N0zoM1z0 c251c38aa2 feat(dotnet): add managed artifact triage 2026-07-16 17:05:03 +09:00
N0zoM1z0 d86231ad33 feat(application): add isolated JavaScript replay
Expose one plan/execute replay contract through both CLI and MCP with exact source, input, runtime, sandbox, limit, and export commitments.

Run selected ESM and extracted CommonJS/Rspack factories in a disposable Linux x64 Bubblewrap namespace with a content-addressed Node ELF closure, architecture-checked seccomp, delegated systemd cgroup limits, bounded protocol capture, cancellation, and observable cleanup.

Preserve left and right observations as Evidence, derive differential comparisons without erasing unknowns, add optional separately authorized reproducers, and fail closed on stale plans or unavailable host boundaries.

Add source-owned parser, sanitizer, clipboard, denial, timeout, OOM, protocol-forgery, and cancellation coverage; a real Linux verifier and workflow; regenerated catalogs and TypeDoc; and updated the packaged REA analysis skill for the 83-tool inventory.
2026-07-16 15:45:55 +09:00
N0zoM1z0 778b995bbf feat(application): add cross-layer graph workflows 2026-07-16 11:29:54 +09:00