{
  "date": "2026-10-25",
  "runtime": "v24.22.1",
  "versions": {
    "node": "24.22.1",
    "acorn": "8.18.0",
    "ada": "4.0.0",
    "amaro": "1.1.11",
    "ares": "1.34.9",
    "brotli": "1.2.0",
    "cldr": "48.0",
    "icu": "78.3",
    "llhttp": "9.4.3",
    "merve": "1.2.2",
    "modules": "137",
    "napi": "10",
    "nbytes": "0.1.4",
    "ncrypto": "0.0.1",
    "nghttp2": "1.70.0",
    "nghttp3": "",
    "ngtcp2": "",
    "openssl": "3.5.9",
    "simdjson": "4.6.11",
    "simdutf": "6.4.0",
    "sqlite": "3.53.4",
    "tz": "2026e",
    "undici": "7.30.1",
    "unicode": "17.0",
    "uv": "1.52.1",
    "uvwasi": "0.0.23",
    "v8": "13.6.233.17-node.58",
    "zlib": "1.3.2.1-motley-285e94b",
    "zstd": "1.5.7"
  },
  "app_sha256": "b5b23e8c7028a1ee6ede9b41b459f5213af44661fc42f3d8c07b4a45f99c0644",
  "method": "Synthetic fixtures, not Claude samples. Actual homepage script in minimal DOM. Checkbox state and dash mode recorded in each row. Browser observations are saved separately; this Node harness reads those observations and reruns only the actual homepage callback. Native-control reproduction uses reproduce-browser.html.",
  "rows": [
    {
      "label": "Marked line",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "A​\nB",
      "output": "A\nB",
      "input_codepoints": "U+0041 U+200B U+000A U+0042",
      "output_codepoints": "U+0041 U+000A U+0042",
      "status": "Removed 1 invisible character",
      "before": {
        "input": "A​B",
        "inputUnits": 3,
        "lineFeedRemaining": false,
        "sourceUnits": 4,
        "unicodeSeparatorRemaining": false
      },
      "after": {
        "input": "AB",
        "inputUnits": 2,
        "lineFeedRemaining": false,
        "sourceUnits": 3,
        "unicodeSeparatorRemaining": false
      }
    },
    {
      "label": "CRLF line",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "A\r\nB",
      "output": "A\r\nB",
      "input_codepoints": "U+0041 U+000D U+000A U+0042",
      "output_codepoints": "U+0041 U+000D U+000A U+0042",
      "status": "No selected invisible characters found",
      "before": {
        "input": "AB",
        "inputUnits": 2,
        "lineFeedRemaining": false,
        "sourceUnits": 4,
        "unicodeSeparatorRemaining": false
      },
      "after": {
        "input": "AB",
        "inputUnits": 2,
        "lineFeedRemaining": false,
        "sourceUnits": 4,
        "unicodeSeparatorRemaining": false
      }
    },
    {
      "label": "Unicode separator",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "A B",
      "output": "A B",
      "input_codepoints": "U+0041 U+2028 U+0042",
      "output_codepoints": "U+0041 U+2028 U+0042",
      "status": "No selected invisible characters found",
      "before": {
        "input": "A B",
        "inputUnits": 3,
        "lineFeedRemaining": false,
        "sourceUnits": 3,
        "unicodeSeparatorRemaining": true
      },
      "after": {
        "input": "A B",
        "inputUnits": 3,
        "lineFeedRemaining": false,
        "sourceUnits": 3,
        "unicodeSeparatorRemaining": true
      }
    },
    {
      "label": "Plain value",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "AB",
      "output": "AB",
      "input_codepoints": "U+0041 U+0042",
      "output_codepoints": "U+0041 U+0042",
      "status": "No selected invisible characters found",
      "before": {
        "input": "AB",
        "inputUnits": 2,
        "lineFeedRemaining": false,
        "sourceUnits": 2,
        "unicodeSeparatorRemaining": false
      },
      "after": {
        "input": "AB",
        "inputUnits": 2,
        "lineFeedRemaining": false,
        "sourceUnits": 2,
        "unicodeSeparatorRemaining": false
      }
    }
  ]
}