Skip to content

Reverse Engine Anything Plus v0.8.0

Choose a tag to compare

@Alyhnte Alyhnte released this 14 Oct 10:42
· 6 commits to main since this release

Reverse Engine Anything Plus v0.8.0

Protocol release: the MCP surface grows up — resources, prompts, toolset
profiles, and typed outputs — while new security boundaries (workspace root,
tokenless HTTP, audit log) lock the server down. Long jobs get async + progress
pilots. 58/58 default tests green.

Highlights

  • Resources + prompts: two static read-only resources
    (rea-plus://server-info, rea-plus://capabilities-safety) and three
    side-effect-free triage prompts (packer-triage, dotnet-malware-triage,
    android-triage). Full surface is now 171 tools + 2 resources + 3 prompts.
  • Toolset profiles: REA_TOOLSETS filters registration to a slice
    (minimal = 8, static = 98, android = 27, dotnet = 20, web = 26,
    debug = 50; comma-separated union). Unknown names fail startup instead of
    silently falling back to all.
  • Typed outputs: 120 tools declare outputSchema and 169 carry
    annotations
    ; structuredContent mirrors the text JSON on plain-object
    results. Per-tool status lives in docs/TOOLS.md, generated from the real
    compiled server (node scripts/generate-tool-reference.mjs --check).
  • Workspace root: with REA_WORKSPACE_ROOT set, rea_* path arguments,
    conduit open_target/debug_open paths, and user-visible derived writes
    (.unpacked, .extracted, HAR output) must resolve inside a root —
    junction, UNC, drive-relative, ADS, and reserved Windows names rejected.
  • Tokenless HTTP lockdown: without DBG_BRIDGE_TOKEN, HTTP registers only
    a 44-tool read-only allowlist (fail-closed, intersected with REA_TOOLSETS).
    REA_AUDIT_LOG writes append-only JSONL with no arguments, tokens, or paths;
    defaults are 120 req/min/IP and 16 concurrent requests.
  • Async job pilot (opt-in): with REA_ASYNC_JOBS=1, five job tools
    (rea_job_start/status/result/cancel/list) run whitelisted tools (today:
    rea_process_run) with a 2-concurrent queue; cancel kills the process tree.
  • Roots + progress pilots: REA_ROOTS=1 narrows the workspace from client
    roots on legacy stdio; rea_process_run streams paced progress and honors
    notifications/cancelled.

Fixed

  • Registry identity: package mcpName and server.json name are now
    io.github.Alyhnte/rea-plus; npm bin paths and repository URL are in
    canonical form; lockfile version is synced.
  • Jadx honesty: manifest/class/decompile results are validated before
    success is reported; missing tool or broken input returns an error envelope,
    never a fake ok:true. Real jadx flags verified against the installed binary.
  • Frida exception honesty: exceptions outside the agent's own breakpoint
    slot return false to the real flow instead of being swallowed as fake hits.
  • Stale docs: README badge and lane counts re-synced (547 its, 58 files);
    ROADMAP/CHANGELOG carry the real 120/169 numbers.

Added

  • src/server/workspaceRoot.ts + tests/workspace-root.test.mjs,
    tests/workspace-derived.test.mjs (conduit + derived-write coverage).
  • src/server/toolMetadata.ts, src/server/conduitMetadata.ts (central
    outputSchema/annotations registries) + tests/sdk-surface.test.mjs,
    tests/conduit-surface.test.mjs.
  • src/server/toolsets.ts + tests/toolsets.test.mjs.
  • src/server/registerResourcesPrompts.ts + tests/resources-prompts.test.mjs.
  • src/server/httpPolicy.ts + tests/http-policy.test.mjs.
  • src/server/roots.ts + tests/roots.test.mjs.
  • src/server/progress.ts + tests/progress-cancel.test.mjs.
  • src/server/asyncJobs.ts + tests/async-jobs.test.mjs.
  • scripts/generate-tool-reference.mjs + docs/TOOLS.md +
    tests/tool-reference.test.mjs (drift gate: generated reference must match).
  • .github/workflows/publish.yml (manual-only, dry-run by default; real
    publish needs an explicit PUBLISH approval).
  • Frida exception regression test (tests/frida-agent-exception.test.mjs)
    and jadx bridge honesty tests (tests/jadx-bridge.test.mjs).
  • tests/publish-workflow.test.mjs, tests/version-sync.test.mjs
    (single-authority version sync across package/lock/server/sources).

Verification

  • npx tsc --noEmit clean; npm run build clean.
  • node scripts/generate-tool-reference.mjs --check passes (171/2/3).
  • Focused protocol suites: 201/201 (sdk, async-jobs, conduit, http-policy,
    workspace, roots, progress, toolsets, resources-prompts, tool-reference,
    publish, version-sync, publish-workflow, frida-exception, jadx).
  • Default lane npm test: 58/58 PASS, 0 FAIL (Windows + Ubuntu CI shape).
  • node scripts/publish-kontrol.mjs OK; npm publish --dry-run OK
    (314 files, no login — real publish not attempted).
  • Live-debugger/Frida injection suites stay out of the default lane (VM/CI only).

Upgrade notes

  • Default surface is unchanged in count (171 tools) unless you opt in:
    REA_TOOLSETS slices it, REA_ASYNC_JOBS=1 adds 5 job tools (176 total).
  • Setting REA_WORKSPACE_ROOT newly constrains path arguments — unset means
    no restriction, so existing setups are unaffected until they opt in.
  • Tokenless HTTP now serves only the 44-tool read-only allowlist; set
    DBG_BRIDGE_TOKEN for the full surface over HTTP. Stdio is unchanged.
  • npm registry publish is still the open gate; until then
    npx -y github:Alyhnte/ReaPlus remains the supported one-command path.