{
  "schemaVersion": 1,
  "reportId": "desktop-001",
  "recordedAt": "2026-09-27T12:06:12.781Z",
  "purpose": "Bounded desktop browser editing and integration regression evidence, not a language accuracy or performance score.",
  "source": {
    "baseCommit": "995909554efa84691f5a481a0d27def58e308d2f",
    "identity": "Modified working tree identified by file hashes; production src and linguistic benchmark files unchanged from baseCommit.",
    "fileSha256": {
      "src/index.js": "d7b2fc67ebc08c93534e09b16f64a998ecafb761c16bda096bcdf071ea84411d",
      "src/index.d.ts": "97fd8f3a1dbd76c591facf353fe59fc2edbf52270aa743b5f484bdeaaae4f7c5",
      "src/phonetic.js": "dec43061ce47d8456092b661a4b1ea7b5d366d2c7969a4f2b6f3b1b0c20ff1ff",
      "src/lexicon.js": "0e5c26111dcebac1fe43bc4ae2d14a236653b42e6f676f43dbc549983f6806c0",
      "src/text-policy.js": "3df92e5288f8b0a3cd1fff87d6dad2132b5f97c35fd24cebdabb54c2101fc5aa",
      "src/dom.js": "6e84385a02ec7a79b8550de417b701b23ea3c3b36ab46e6408f1c7dfa7c233b2",
      "src/dom.d.ts": "e2a93a70c49c7057dc52d995719ec5b22ee72453685bc519815bc0c67d85b0d1",
      "demo/index.html": "4ba3242626ae1d534b3b9d4fa08932801f31fe990bc9754f53e4f4db4d5c65b9",
      "demo/main.js": "58fc7e5262f4a1399447964c9c5dfe71dd9989096ebc147b8d90ea3db5abcab4",
      "demo/style.css": "7c6cdba73432cdc1983be2816984f08fa0ff3b726534425fee137e88923572f4",
      "browser/typing.spec.js": "b5ff124b9cdea55ff03277437f99fb078ea3f6ea2a2aebcfe3e922e51e5ce09a",
      "browser/fixtures/adapters.html": "cb92ae42d375b3782e6d42f46d9d54acb43797353ff0a81dd2213c413f79919e",
      "playwright.config.js": "63e7088707ab5629e1b7cc76975bcace6270778a4b60780e188f2b4d4800e96a",
      "package.json": "5c621e8838fa2d9c5cbac1453cc53046e45898b3f2f5715787b810b1f4f5d490",
      "package-lock.json": "b4b45e47d574ae0cab78cd152f6980d19defee4853ac4c883a02bc892ae8f422",
      ".github/workflows/browser.yml": "3236443963fbd406034d89637b76af0caa67e01c203960a00db6e49682fa4141"
    }
  },
  "environment": {
    "node": "v22.22.3",
    "platform": "darwin",
    "architecture": "arm64",
    "osRelease": "25.6.0",
    "playwright": "1.63.0",
    "headless": true,
    "workers": 2,
    "retries": 0
  },
  "command": "npm run test:browser",
  "totals": {
    "passed": 36,
    "failed": 0,
    "skipped": 0,
    "flaky": 0,
    "scenarios": 12,
    "projects": 3
  },
  "projects": [
    {
      "project": "chromium",
      "browserVersion": "153.0.8010.12",
      "passed": 12,
      "failed": 0,
      "skipped": 0
    },
    {
      "project": "firefox",
      "browserVersion": "155.0",
      "passed": 12,
      "failed": 0,
      "skipped": 0
    },
    {
      "project": "webkit",
      "browserVersion": "26.6",
      "passed": 12,
      "failed": 0,
      "skipped": 0
    }
  ],
  "tests": [
    {
      "title": "real keyboard keeps an active half consonant editable and notifies input listeners",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "real keyboard preserves the ra-ya joiner, Shift sounds, bindu and chandrabindu",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "addresses remain literal at every intermediate key after the first recognition cue",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "periods stay ordinary until a domain cue, and cue deletion supports undo and redo",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "the candidate dropdown and Alt shortcut preserve a selected reading through later edits",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "real keyboard edits an email at its caret and replaces a selected Nepali word",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "real keyboard separates URL punctuation neighbors and preserves decimals and query pipes",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "demo manager covers textarea, text and search while retaining English and email exclusions",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "real MutationObserver attaches dynamic fields, detaches exclusions and removals, and stops after destroy",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "synthetic clipboard paste restores an address prefix and emits converted input to host listeners",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "synthetic composition reconciles a final input after compositionend and undoes the composition together",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "synthetic native input fallback handles an active vowel and a mixed-text paste without beforeinput",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12"
    },
    {
      "title": "real keyboard keeps an active half consonant editable and notifies input listeners",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "real keyboard preserves the ra-ya joiner, Shift sounds, bindu and chandrabindu",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "addresses remain literal at every intermediate key after the first recognition cue",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "periods stay ordinary until a domain cue, and cue deletion supports undo and redo",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "the candidate dropdown and Alt shortcut preserve a selected reading through later edits",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "real keyboard edits an email at its caret and replaces a selected Nepali word",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "real keyboard separates URL punctuation neighbors and preserves decimals and query pipes",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "demo manager covers textarea, text and search while retaining English and email exclusions",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "real MutationObserver attaches dynamic fields, detaches exclusions and removals, and stops after destroy",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "synthetic clipboard paste restores an address prefix and emits converted input to host listeners",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "synthetic composition reconciles a final input after compositionend and undoes the composition together",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "synthetic native input fallback handles an active vowel and a mixed-text paste without beforeinput",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0"
    },
    {
      "title": "real keyboard keeps an active half consonant editable and notifies input listeners",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "real keyboard preserves the ra-ya joiner, Shift sounds, bindu and chandrabindu",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "addresses remain literal at every intermediate key after the first recognition cue",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "periods stay ordinary until a domain cue, and cue deletion supports undo and redo",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "the candidate dropdown and Alt shortcut preserve a selected reading through later edits",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "real keyboard edits an email at its caret and replaces a selected Nepali word",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "real keyboard separates URL punctuation neighbors and preserves decimals and query pipes",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "demo manager covers textarea, text and search while retaining English and email exclusions",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "real MutationObserver attaches dynamic fields, detaches exclusions and removals, and stops after destroy",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "synthetic clipboard paste restores an address prefix and emits converted input to host listeners",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "synthetic composition reconciles a final input after compositionend and undoes the composition together",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    },
    {
      "title": "synthetic native input fallback handles an active vowel and a mixed-text paste without beforeinput",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6"
    }
  ],
  "rawReport": {
    "path": "test-results/browser-results.json",
    "sha256": "36a2c295d161afb92c429a657dacb909625c2ea566ab6da4bda90bcdeb52c650",
    "committed": false,
    "retention": "Generated reports are ignored locally; GitHub Actions saves each engine report and failure traces for 14 days."
  },
  "regressionDetection": {
    "method": "Removed address preservation in a separate throwaway copy; working tree source unchanged.",
    "test": "addresses remain literal at every intermediate key after the first recognition cue",
    "project": "chromium",
    "expectedFailureCount": 1,
    "observedFailureCount": 1,
    "exitCode": 1
  },
  "otherChecks": {
    "nodeTests": {
      "passed": 212,
      "failed": 0
    },
    "seedBehaviorContracts": {
      "passed": 125,
      "total": 125,
      "excludedExploratoryCases": 2
    }
  },
  "limitations": [
    "Keyboard actions use Playwright in headless desktop engine builds; this is not installed browser application or device certification.",
    "Clipboard, composition, and input-without-beforeinput cases inject events; OS clipboard permissions and real IME/mobile keyboards are not covered.",
    "No assistive technology, accessibility conformance, framework-controlled fields, or rich-text/contenteditable support is established.",
    "Source hashes and the pinned dependency lockfile identify this run; later source/fixture changes require a separate record.",
    "Test durations are diagnostics and are not a performance benchmark."
  ]
}
