{
  "date": "2026-10-04",
  "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": "Unchanged reference",
      "stage": "direct string",
      "mode": "keep",
      "input": "Invoice 1042\n",
      "output": "Invoice 1042\n",
      "input_codepoints": "U+0049 U+006E U+0076 U+006F U+0069 U+0063 U+0065 U+0020 U+0031 U+0030 U+0034 U+0032 U+000A",
      "output_codepoints": "U+0049 U+006E U+0076 U+006F U+0069 U+0063 U+0065 U+0020 U+0031 U+0030 U+0034 U+0032 U+000A",
      "status": "No selected invisible characters found",
      "before": {
        "utf8Bytes": 13,
        "sha256": "3ea56962d95bd697e58e53b4b44d2bd7a69aaed1769eec176b1eb685d3e4d5fb"
      },
      "after": {
        "utf8Bytes": 13,
        "sha256": "3ea56962d95bd697e58e53b4b44d2bd7a69aaed1769eec176b1eb685d3e4d5fb"
      }
    },
    {
      "label": "Hidden word joiner",
      "stage": "direct string",
      "mode": "keep",
      "input": "Invoice⁠ 1042\n",
      "output": "Invoice 1042\n",
      "input_codepoints": "U+0049 U+006E U+0076 U+006F U+0069 U+0063 U+0065 U+2060 U+0020 U+0031 U+0030 U+0034 U+0032 U+000A",
      "output_codepoints": "U+0049 U+006E U+0076 U+006F U+0069 U+0063 U+0065 U+0020 U+0031 U+0030 U+0034 U+0032 U+000A",
      "status": "Removed 1 invisible character",
      "before": {
        "utf8Bytes": 16,
        "sha256": "e6fda7b4c3712523dca104bb21d8a8b55db1b79ae8cc8f5a2afbedf33bed8412"
      },
      "after": {
        "utf8Bytes": 13,
        "sha256": "3ea56962d95bd697e58e53b4b44d2bd7a69aaed1769eec176b1eb685d3e4d5fb"
      }
    },
    {
      "label": "Hidden soft hyphen",
      "stage": "direct string",
      "mode": "keep",
      "input": "In­voice 1042\n",
      "output": "Invoice 1042\n",
      "input_codepoints": "U+0049 U+006E U+00AD U+0076 U+006F U+0069 U+0063 U+0065 U+0020 U+0031 U+0030 U+0034 U+0032 U+000A",
      "output_codepoints": "U+0049 U+006E U+0076 U+006F U+0069 U+0063 U+0065 U+0020 U+0031 U+0030 U+0034 U+0032 U+000A",
      "status": "Removed 1 invisible character",
      "before": {
        "utf8Bytes": 15,
        "sha256": "fb00ff1f6d39452d8e58408acbc570d6323d56f934c230ae1a6f5140b983e45b"
      },
      "after": {
        "utf8Bytes": 13,
        "sha256": "3ea56962d95bd697e58e53b4b44d2bd7a69aaed1769eec176b1eb685d3e4d5fb"
      }
    }
  ]
}