{
  "date": "2026-10-05",
  "runtime": "v24.19.0",
  "app_sha256": "b5b23e8c7028a1ee6ede9b41b459f5213af44661fc42f3d8c07b4a45f99c0644",
  "method": "Synthetic fixtures, not Claude samples. Actual homepage script in minimal DOM. Invisible checkbox on; dash Keep unless matrix says otherwise. Observations are fixture-specific, not general application tests.",
  "rows": [
    {
      "label": "Windows CRLF",
      "stage": "direct string",
      "mode": "keep",
      "input": "A​\r\nB",
      "output": "A\r\nB",
      "input_codepoints": "U+0041 U+200B U+000D U+000A U+0042",
      "output_codepoints": "U+0041 U+000D U+000A U+0042",
      "status": "Removed 1 invisible character",
      "before": {
        "crlf": 1,
        "cr": 1,
        "lf": 1,
        "ls": 0,
        "ps": 0
      },
      "after": {
        "crlf": 1,
        "cr": 1,
        "lf": 1,
        "ls": 0,
        "ps": 0
      }
    },
    {
      "label": "LF lines",
      "stage": "direct string",
      "mode": "keep",
      "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": {
        "crlf": 0,
        "cr": 0,
        "lf": 1,
        "ls": 0,
        "ps": 0
      },
      "after": {
        "crlf": 0,
        "cr": 0,
        "lf": 1,
        "ls": 0,
        "ps": 0
      }
    },
    {
      "label": "CR lines",
      "stage": "direct string",
      "mode": "keep",
      "input": "A​\rB",
      "output": "A\rB",
      "input_codepoints": "U+0041 U+200B U+000D U+0042",
      "output_codepoints": "U+0041 U+000D U+0042",
      "status": "Removed 1 invisible character",
      "before": {
        "crlf": 0,
        "cr": 1,
        "lf": 0,
        "ls": 0,
        "ps": 0
      },
      "after": {
        "crlf": 0,
        "cr": 1,
        "lf": 0,
        "ls": 0,
        "ps": 0
      }
    },
    {
      "label": "Unicode separators",
      "stage": "direct string",
      "mode": "keep",
      "input": "A​ B C",
      "output": "A B C",
      "input_codepoints": "U+0041 U+200B U+2028 U+0042 U+2029 U+0043",
      "output_codepoints": "U+0041 U+2028 U+0042 U+2029 U+0043",
      "status": "Removed 1 invisible character",
      "before": {
        "crlf": 0,
        "cr": 0,
        "lf": 0,
        "ls": 1,
        "ps": 1
      },
      "after": {
        "crlf": 0,
        "cr": 0,
        "lf": 0,
        "ls": 1,
        "ps": 1
      }
    }
  ]
}