{
  "date": "2026-10-14",
  "runtime": "v24.19.0",
  "versions": {
    "node": "24.19.0",
    "acorn": "8.17.0",
    "ada": "3.4.4",
    "amaro": "1.1.10",
    "ares": "1.34.6",
    "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.69.0",
    "nghttp3": "",
    "ngtcp2": "",
    "openssl": "3.5.7",
    "simdjson": "4.6.4",
    "simdutf": "6.4.0",
    "sqlite": "3.53.3",
    "tz": "2026b",
    "undici": "7.29.0",
    "unicode": "17.0",
    "uv": "1.52.1",
    "uvwasi": "0.0.23",
    "v8": "13.6.233.17-node.51",
    "zlib": "1.3.2.1-motley-3246f1b",
    "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. Observations are fixture-specific, not general application tests.",
  "rows": [
    {
      "label": "Marked indent",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": " ​",
      "output": " ",
      "input_codepoints": "U+0020 U+200B",
      "output_codepoints": "U+0020",
      "status": "Removed 1 invisible character",
      "before": {
        "serialized": "{\n ​\"a\": {\n ​ ​\"b\": 1\n ​}\n}",
        "firstIndent": " ​",
        "indentUnits": 2,
        "parses": false,
        "errorName": "SyntaxError"
      },
      "after": {
        "serialized": "{\n \"a\": {\n  \"b\": 1\n }\n}",
        "firstIndent": " ",
        "indentUnits": 1,
        "parses": true,
        "errorName": null
      }
    },
    {
      "label": "Space indent",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "  ",
      "output": "  ",
      "input_codepoints": "U+0020 U+0020",
      "output_codepoints": "U+0020 U+0020",
      "status": "No selected invisible characters found",
      "before": {
        "serialized": "{\n  \"a\": {\n    \"b\": 1\n  }\n}",
        "firstIndent": "  ",
        "indentUnits": 2,
        "parses": true,
        "errorName": null
      },
      "after": {
        "serialized": "{\n  \"a\": {\n    \"b\": 1\n  }\n}",
        "firstIndent": "  ",
        "indentUnits": 2,
        "parses": true,
        "errorName": null
      }
    },
    {
      "label": "Non-whitespace indent",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "xx",
      "output": "xx",
      "input_codepoints": "U+0078 U+0078",
      "output_codepoints": "U+0078 U+0078",
      "status": "No selected invisible characters found",
      "before": {
        "serialized": "{\nxx\"a\": {\nxxxx\"b\": 1\nxx}\n}",
        "firstIndent": "xx",
        "indentUnits": 2,
        "parses": false,
        "errorName": "SyntaxError"
      },
      "after": {
        "serialized": "{\nxx\"a\": {\nxxxx\"b\": 1\nxx}\n}",
        "firstIndent": "xx",
        "indentUnits": 2,
        "parses": false,
        "errorName": "SyntaxError"
      }
    },
    {
      "label": "Long indent",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "123456789012",
      "output": "123456789012",
      "input_codepoints": "U+0031 U+0032 U+0033 U+0034 U+0035 U+0036 U+0037 U+0038 U+0039 U+0030 U+0031 U+0032",
      "output_codepoints": "U+0031 U+0032 U+0033 U+0034 U+0035 U+0036 U+0037 U+0038 U+0039 U+0030 U+0031 U+0032",
      "status": "No selected invisible characters found",
      "before": {
        "serialized": "{\n1234567890\"a\": {\n12345678901234567890\"b\": 1\n1234567890}\n}",
        "firstIndent": "1234567890",
        "indentUnits": 10,
        "parses": false,
        "errorName": "SyntaxError"
      },
      "after": {
        "serialized": "{\n1234567890\"a\": {\n12345678901234567890\"b\": 1\n1234567890}\n}",
        "firstIndent": "1234567890",
        "indentUnits": 10,
        "parses": false,
        "errorName": "SyntaxError"
      }
    }
  ]
}