mirror of
https://github.com/morluto/rea.git
synced 2026-10-18 20:10:13 -05:00
Retain received complete and unfinished Rizin command bytes with bounded UTF-8 capture, truthful completion uncertainty and exact launch provenance. Keep captures independent of cancellation, protocol and cleanup precedence; wait for bounded output settlement on exit and preserve active bytes across stdin failures. Validated353 focused tests (one existing skip), full CI static/docs checks, real official Linux Rizin0.9.1 interruption probes, paired completed public CLI/stdio MCP tasks, and focused mutation checks. Required CI passed; exact-head Codex review reported no findings and Greptile5/5. Fault cleanup uncertainty and partial-marker ambiguity remain explicit. Fixes #4015. Follow-up to #4227.
55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
import { mutationRanges } from "./scripts/lib/reverse-tools-mutation-targets.mjs";
|
|
|
|
const config = {
|
|
$schema: "./node_modules/@stryker-mutator/core/schema/stryker-schema.json",
|
|
testRunner: "command",
|
|
commandRunner: {
|
|
command: "npx vitest run --config vitest.reverse-tools-semantics.config.ts",
|
|
},
|
|
plugins: ["@stryker-mutator/typescript-checker"],
|
|
checkers: ["typescript"],
|
|
tsconfigFile: "tsconfig.reverse-tools-mutation.json",
|
|
typescriptChecker: {
|
|
prioritizePerformanceOverAccuracy: true,
|
|
},
|
|
coverageAnalysis: "off",
|
|
thresholds: { break: null },
|
|
ignorePatterns: ["/.cache/rea-command-locks/**", "/coverage/**"],
|
|
concurrency: 2,
|
|
timeoutMS: 30000,
|
|
reporters: ["clear-text", "progress", "html", "json"],
|
|
jsonReporter: { fileName: "reports/mutation/reverse-tools-semantics.json" },
|
|
htmlReporter: { fileName: "reports/mutation/reverse-tools-semantics.html" },
|
|
};
|
|
|
|
export default {
|
|
...config,
|
|
mutate: [
|
|
...mutationRanges("src/cutter/CutterBridgeClient.ts", [
|
|
{
|
|
kind: "expression",
|
|
text: "status.data.current_file === undefined",
|
|
},
|
|
{
|
|
kind: "expression",
|
|
text: "response.current_file === undefined",
|
|
},
|
|
]),
|
|
...mutationRanges("src/rizin/RizinDebugSessionManager.ts", [
|
|
{
|
|
kind: "declaration",
|
|
name: "isRizinCommandDeadlineExpired",
|
|
},
|
|
{
|
|
kind: "declaration",
|
|
name: "snapshot",
|
|
withinBlockWithBinding: "output",
|
|
},
|
|
{
|
|
kind: "declaration",
|
|
name: "createRizinCommandTimeoutEvidence",
|
|
},
|
|
]),
|
|
],
|
|
};
|