{
  "date": "2026-10-07",
  "runtime": "v24.19.0",
  "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": "Cf selected",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "A​B",
      "output": "AB",
      "input_codepoints": "U+0041 U+200B U+0042",
      "output_codepoints": "U+0041 U+0042",
      "status": "Removed 1 invisible character",
      "before": {
        "format": [
          "U+200B"
        ],
        "nonspacingMarks": []
      },
      "after": {
        "format": [],
        "nonspacingMarks": []
      }
    },
    {
      "label": "Cf retained joiner",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "A‍B",
      "output": "A‍B",
      "input_codepoints": "U+0041 U+200D U+0042",
      "output_codepoints": "U+0041 U+200D U+0042",
      "status": "No selected invisible characters found",
      "before": {
        "format": [
          "U+200D"
        ],
        "nonspacingMarks": []
      },
      "after": {
        "format": [
          "U+200D"
        ],
        "nonspacingMarks": []
      }
    },
    {
      "label": "Cf retained direction",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "A‎B",
      "output": "A‎B",
      "input_codepoints": "U+0041 U+200E U+0042",
      "output_codepoints": "U+0041 U+200E U+0042",
      "status": "No selected invisible characters found",
      "before": {
        "format": [
          "U+200E"
        ],
        "nonspacingMarks": []
      },
      "after": {
        "format": [
          "U+200E"
        ],
        "nonspacingMarks": []
      }
    },
    {
      "label": "Mn selected",
      "stage": "direct string",
      "mode": "keep",
      "enabled": true,
      "input": "A͏B",
      "output": "AB",
      "input_codepoints": "U+0041 U+034F U+0042",
      "output_codepoints": "U+0041 U+0042",
      "status": "Removed 1 invisible character",
      "before": {
        "format": [],
        "nonspacingMarks": [
          "U+34F"
        ]
      },
      "after": {
        "format": [],
        "nonspacingMarks": []
      }
    }
  ]
}