{
  "schemaVersion": 1,
  "reportId": "desktop-006",
  "recordedAt": "2026-10-03T09:45:08.534Z",
  "purpose": "Headless desktop editing and installed local alpha.2 package integration evidence for full consonant defaults, explicit backtick halants, and the demo consonant setting.",
  "source": {
    "baseCommit": "987e31f7ec4e49680d7a001c078debce3d7fb326",
    "identity": "Modified checkout identified by runtime, declarations, tests, configuration, demo, and consumer source hashes.",
    "engineRuntimeChangedFiles": [
      "src/dom.js",
      "src/index.js",
      "src/phonetic.js"
    ],
    "hashedFilesChangedFromBase": [
      "browser/typing.spec.js",
      "demo/index.html",
      "demo/main.js",
      "demo/style.css",
      "package-lock.json",
      "package.json",
      "src/dom.js",
      "src/index.d.ts",
      "src/index.js",
      "src/phonetic.js",
      "test/consonants.test.js",
      "test/digits.test.js",
      "test/dom-mixed-text.test.js",
      "test/dom.test.js",
      "test/engine.test.js",
      "test/loanword-suffixes.test.js",
      "test/loanwords.test.js",
      "test/mixed-text.test.js",
      "test/months.test.js",
      "test/native-spelling.test.js",
      "test/review-batch.test.js",
      "verification/consumer/core.ts",
      "verification/consumer/runtime.mjs"
    ],
    "fileSha256": {
      ".github/workflows/browser.yml": "df80077b2f8f6b96588c9b9dab8537bd4c543257986285dd3ffba977221d4c10",
      ".github/workflows/ci.yml": "be01dfef79aa7b56e1a99dcab72e375f357766f617c24ab21cdbd6a3dc8626cf",
      "LICENSE": "84abe5cb282f83d7da4f1bc92e19b28f64e89036877cad5fe5cb9b8f35ee84ad",
      "LICENSES/Unicode-3.0.txt": "220ba0e1c43b99530d2d5bdb892a99dca0989414f51ab695ecd90163eaa1ec3b",
      "NOTICE": "56f72e63edd18ecb0708c7e2d8afb057e98c7014c3d510bd8888d138ce05eda5",
      "browser/developer-examples.spec.js": "7ce276f6bfe63871914fa89908cbc6e2b569f0d5c621dbd099abca14001f7afb",
      "browser/fixtures/adapters.html": "016c31fad9739619847b7fdcfb9f9042cc7575d4cdf4274a878139981019c0fd",
      "browser/typing.spec.js": "d3292eb185e54017b01e297af5f1e2d12945437f1122dc1128a024996e046883",
      "demo/index.html": "441b1588d2b0ba40c8fa90461e38cebd285e641ece0a6699ffbd8c927310a67d",
      "demo/main.js": "977f4eb5973b409ae5dd6c4045295bbf2ca575d37a660f60a587d44569e1a598",
      "demo/style.css": "c19534117d21ec1c61486d3d7cdb979757c0386f400f0e7e17e168e1a4a61f96",
      "examples/react/NepaliInput.tsx": "2e2f68329c13e2be52c3e447273ac962be9fd2857cc64a4df6338e7343cd5055",
      "examples/react/index.html": "944e3a2c86be09a8469b59a669422dd2500609739ef80da95f15d1d39aff8c0e",
      "examples/react/main.tsx": "e0dc98294e8912c32902aa0c05fab8a329a8c0742cf4df94ef17232fb2bf48b9",
      "examples/typescript/browser.ts": "3709682c135b4d6ce027db50ddc3f84f37ecbe7c95b1e8326b2f83ac59ff2839",
      "examples/typescript/core.mts": "65a0d0a3c2b54821eb424a3ce95e2d0f058624fbb2c458acaa1b6650c0fddb17",
      "examples/vanilla/index.html": "ac7bfbaf05c158fdc33c8f3b6ce3d83ddd3d3cd227bd69797aee58a78e595e46",
      "examples/vanilla/main.js": "4c9e9f56c07fe56c20b7f96d2f86dfcd070f23ec15466ce1c19e6cc1abe2fdb1",
      "package-lock.json": "430cebbf4d5526159e49c630daf0dc3f222519860c209932fa08439313641f0f",
      "package.json": "ad512b50f43f2fc186511252a65a662b0720a7dca3b0dfecd7a35a29fbbcf324",
      "playwright.config.js": "63e7088707ab5629e1b7cc76975bcace6270778a4b60780e188f2b4d4800e96a",
      "src/dom.d.ts": "e2a93a70c49c7057dc52d995719ec5b22ee72453685bc519815bc0c67d85b0d1",
      "src/dom.js": "a264f11888f8a611d116a065fa10191aec029fcce75ee7e797c3dad4342fb9ac",
      "src/index.d.ts": "7b8c9969df0326e6b3fbfbd97713b60cb38931840c1da696b6fea6ac52d5d77a",
      "src/index.js": "01f3fb9fc0fb8f60617d5af81e96ef7c8752fdada3ef5153a89dbe22577b1152",
      "src/lexicon.js": "e325edef9cd9e2ebef42700ef9aeb6033b130e9a7c459b407820c31297d9448d",
      "src/loanwords.js": "aa74e688d3b77980b5ee7e9fb89ce2c0a61fd27568d3230048bef91a8379e446",
      "src/phonetic.js": "ac571d6f4c94c5b48baa1558973d4d27ad6c7f2c5ff15fc7bed36ecdb2d29bf9",
      "src/text-policy.js": "3df92e5288f8b0a3cd1fff87d6dad2132b5f97c35fd24cebdabb54c2101fc5aa",
      "test/consonants.test.js": "44bfebd3fdb19b66831bd8e2db5c391f428e5144147d46d4d75b104561ef43d8",
      "test/digits.test.js": "f6d770e56bcaa6b3b11367d8a00b6d056ee1fcd7719bc9ac371c54574892687b",
      "test/dom-digits.test.js": "770b9103e7abcfb272c5d08b71d3fc010f89b96a57cf0cf8555352a60f04ce54",
      "test/dom-manager.test.js": "b4c700c42caaf3c14153dbc7583bc162fdc54df6c70b34914986cb80272e9174",
      "test/dom-mixed-text.test.js": "170eb3e14cde04247e4e190f8ff69cd6824bb9c0d3644f19157532bdf00f0460",
      "test/dom.test.js": "59245ea08ed32b0614f126f173652394468a012ff958819f2bce467b510105e3",
      "test/engine.test.js": "8383d6034334c09715a01a0a183fc52c811331b4b3495309f42ccec661dc874a",
      "test/external-benchmark.test.js": "4a9845c3ef6afa2a86259846db0ad8c1974d58a8021058c4f2c016d419515435",
      "test/loanword-suffixes.test.js": "1da339e102728c9aa7899c686807be04a08ea58dc7236c07c45fef876e2733ff",
      "test/loanwords.test.js": "d999e51e361b13beefd52808ffb2ed0e472cf11fc8afeac86b25cb8d5ecde6f1",
      "test/mixed-text.test.js": "bfff8a7f0a8fcd02f11567f1334e1caa4d1a6687fcd756c8d54d5ff5a7e1c205",
      "test/months.test.js": "9c9b237bb965046ac5a2243debbf5a6340a82fef7d370b714eb2d3008424d596",
      "test/native-spelling.test.js": "673bba746e070d3af1a59cdb147c83fa9cfced00140d1d4086fde278a12f8744",
      "test/review-batch-cli.test.js": "984dcf37504c581fef85bb48f60e62e469f05cf37d15cc222ed74a1610ab8160",
      "test/review-batch-output.test.js": "ac9dfe679d58201c0bdd2da5d53cd3650a3d51748cdbcdded66e98d71f414042",
      "test/review-batch.test.js": "75c2a2a1070acb6f7e108451b2539082a73ac92d81c368dafda5e39405579fd9",
      "test/ry.test.js": "4ed16f2f4a3b40efc3c4cbaaad3f2151e00ed88de860dde1026b6be79fa8e1e4",
      "test/source-reviewed.test.js": "192cb3ace0bcdbac866f4042e237fd2f37437e83e702a9112c769056f35df28c",
      "tools/build-examples.js": "48daa41e9c5cd1b2d0669707574609070ceae9673595f91d3c1dccfebf7f6526",
      "tools/verify-package.js": "b841b5d31ce34f2f91dba7b24e183e943b2301e83243b7b5bcbec8b09faa0a33",
      "verification/consumer/browser.ts": "149bc638c4bf11cb09bbb7ff9e65635d5e9402f08dea5ffe3c20ba31c3c2c36e",
      "verification/consumer/core.ts": "f7a47b063bccdc44691d5ab4f8cbae66ed6e46c93c832710f1e567697b22ca9e",
      "verification/consumer/runtime.mjs": "9c2acee83dcecca51352ad251ae6428490d2380944d7ca2743286a00cdd0f786"
    },
    "documentationScope": "README and documentation are outside fileSha256. Later prose edits can change a subsequent tarball without changing the tested runtime or tests; no tarball equality with a later checkout is asserted."
  },
  "environment": {
    "node": "v22.22.3",
    "platform": "darwin",
    "architecture": "arm64",
    "actualWorkers": 2,
    "osRelease": "25.6.0",
    "playwright": "1.63.0",
    "typescript": "5.9.3",
    "react": "19.3.0",
    "reactDOM": "19.3.0",
    "esbuild": "0.28.2",
    "headless": true,
    "workers": 2,
    "retries": 0
  },
  "command": "npm run test:browser",
  "totals": {
    "passed": 66,
    "failed": 0,
    "skipped": 0,
    "flaky": 0,
    "retries": 0,
    "testErrors": 0,
    "reportErrors": 0,
    "scenarios": 22,
    "typingScenarios": 19,
    "installedPackageScenarios": 3,
    "projects": 3
  },
  "projects": [
    {
      "project": "chromium",
      "browserVersion": "153.0.8010.12",
      "passed": 22,
      "failed": 0,
      "skipped": 0,
      "typingScenarios": 19,
      "installedPackageScenarios": 3
    },
    {
      "project": "firefox",
      "browserVersion": "155.0",
      "passed": 22,
      "failed": 0,
      "skipped": 0,
      "typingScenarios": 19,
      "installedPackageScenarios": 3
    },
    {
      "project": "webkit",
      "browserVersion": "26.6",
      "passed": 22,
      "failed": 0,
      "skipped": 0,
      "typingScenarios": 19,
      "installedPackageScenarios": 3
    }
  ],
  "testMechanisms": {
    "playwright-keyboard-and-browser-actions": "Playwright keyboard, focus, selection, controls, assertions, and DOM actions in headless desktop engines; not a physical keyboard certification.",
    "injected-clipboard-event": "Constructed ClipboardEvent with an injected text/plain payload; no operating system clipboard integration.",
    "injected-composition-events": "Constructed composition/input events; no installed IME or mobile keyboard use.",
    "injected-native-input-events": "Constructed InputEvent after direct field changes, without beforeinput.",
    "injected-paste-input-event": "Constructed insertFromPaste InputEvent; no operating system clipboard use."
  },
  "tests": [
    {
      "title": "installed vanilla consumer converts marked fields, exposes candidates, and preserves English",
      "file": "developer-examples.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed vanilla consumer teardown leaves text literal and disables its controls",
      "file": "developer-examples.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed React uncontrolled consumer handles StrictMode, callbacks, mode, and remount cleanup",
      "file": "developer-examples.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed vanilla consumer converts marked fields, exposes candidates, and preserves English",
      "file": "developer-examples.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed vanilla consumer teardown leaves text literal and disables its controls",
      "file": "developer-examples.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed React uncontrolled consumer handles StrictMode, callbacks, mode, and remount cleanup",
      "file": "developer-examples.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed vanilla consumer converts marked fields, exposes candidates, and preserves English",
      "file": "developer-examples.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed vanilla consumer teardown leaves text literal and disables its controls",
      "file": "developer-examples.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "installed React uncontrolled consumer handles StrictMode, callbacks, mode, and remount cleanup",
      "file": "developer-examples.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard forms full consonant clusters and backspaces through their Roman keys",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard commits and edits explicit backtick halves with undo and redo",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "demo consonant settings preserve existing text and configure typing and paste across marked fields",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "real keyboard preserves the ra-ya joiner, Shift sounds, bindu and chandrabindu",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "addresses remain literal at every intermediate key after the first recognition cue",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "periods stay ordinary until a domain cue, and cue deletion supports undo and redo",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "the candidate dropdown and Alt shortcut preserve a selected reading through later edits",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard edits an email at its caret and replaces a selected Nepali word",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard separates URL punctuation neighbors and preserves decimals and query pipes",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "demo manager covers textarea, text and search while retaining English and email exclusions",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real MutationObserver attaches dynamic fields, detaches exclusions and removals, and stops after destroy",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "synthetic clipboard paste restores an address prefix and emits converted input to host listeners",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "synthetic composition reconciles a final input after compositionend and undoes the composition together",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-composition-events"
      ]
    },
    {
      "title": "synthetic native input fallback handles an active vowel and a mixed-text paste without beforeinput",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-native-input-events",
        "injected-paste-input-event"
      ]
    },
    {
      "title": "real keyboard uses Nepali digits, keeps decimal separators and restores numeric address prefixes",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "digit configuration and English exclusions apply consistently to typing and synthetic paste",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "real keyboard converts reviewed loanword suffixes and selects a spelling before an address cue",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "loanword suffix editing preserves its Roman source and English mode keeps later input literal",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "reviewed native word preferences retain Roman editing, undo and English mode",
      "file": "typing.spec.js",
      "project": "chromium",
      "status": "passed",
      "browserVersion": "153.0.8010.12",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard forms full consonant clusters and backspaces through their Roman keys",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard commits and edits explicit backtick halves with undo and redo",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "demo consonant settings preserve existing text and configure typing and paste across marked fields",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "real keyboard preserves the ra-ya joiner, Shift sounds, bindu and chandrabindu",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "addresses remain literal at every intermediate key after the first recognition cue",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "periods stay ordinary until a domain cue, and cue deletion supports undo and redo",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "the candidate dropdown and Alt shortcut preserve a selected reading through later edits",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard edits an email at its caret and replaces a selected Nepali word",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard separates URL punctuation neighbors and preserves decimals and query pipes",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "demo manager covers textarea, text and search while retaining English and email exclusions",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real MutationObserver attaches dynamic fields, detaches exclusions and removals, and stops after destroy",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "synthetic clipboard paste restores an address prefix and emits converted input to host listeners",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "synthetic composition reconciles a final input after compositionend and undoes the composition together",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-composition-events"
      ]
    },
    {
      "title": "synthetic native input fallback handles an active vowel and a mixed-text paste without beforeinput",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-native-input-events",
        "injected-paste-input-event"
      ]
    },
    {
      "title": "real keyboard uses Nepali digits, keeps decimal separators and restores numeric address prefixes",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "digit configuration and English exclusions apply consistently to typing and synthetic paste",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "real keyboard converts reviewed loanword suffixes and selects a spelling before an address cue",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "loanword suffix editing preserves its Roman source and English mode keeps later input literal",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "reviewed native word preferences retain Roman editing, undo and English mode",
      "file": "typing.spec.js",
      "project": "firefox",
      "status": "passed",
      "browserVersion": "155.0",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard forms full consonant clusters and backspaces through their Roman keys",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard commits and edits explicit backtick halves with undo and redo",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "demo consonant settings preserve existing text and configure typing and paste across marked fields",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "real keyboard preserves the ra-ya joiner, Shift sounds, bindu and chandrabindu",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "addresses remain literal at every intermediate key after the first recognition cue",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "periods stay ordinary until a domain cue, and cue deletion supports undo and redo",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "the candidate dropdown and Alt shortcut preserve a selected reading through later edits",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard edits an email at its caret and replaces a selected Nepali word",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real keyboard separates URL punctuation neighbors and preserves decimals and query pipes",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "demo manager covers textarea, text and search while retaining English and email exclusions",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "real MutationObserver attaches dynamic fields, detaches exclusions and removals, and stops after destroy",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "synthetic clipboard paste restores an address prefix and emits converted input to host listeners",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "synthetic composition reconciles a final input after compositionend and undoes the composition together",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-composition-events"
      ]
    },
    {
      "title": "synthetic native input fallback handles an active vowel and a mixed-text paste without beforeinput",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-native-input-events",
        "injected-paste-input-event"
      ]
    },
    {
      "title": "real keyboard uses Nepali digits, keeps decimal separators and restores numeric address prefixes",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "digit configuration and English exclusions apply consistently to typing and synthetic paste",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions",
        "injected-clipboard-event"
      ]
    },
    {
      "title": "real keyboard converts reviewed loanword suffixes and selects a spelling before an address cue",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "loanword suffix editing preserves its Roman source and English mode keeps later input literal",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    },
    {
      "title": "reviewed native word preferences retain Roman editing, undo and English mode",
      "file": "typing.spec.js",
      "project": "webkit",
      "status": "passed",
      "browserVersion": "26.6",
      "methods": [
        "playwright-keyboard-and-browser-actions"
      ]
    }
  ],
  "packageCandidate": {
    "name": "sahajlipi",
    "version": "0.1.0-alpha.2",
    "publicationStatus": "Unpublished source candidate; local checks do not establish registry publication or availability."
  },
  "packageConsumer": {
    "tarballSha256": "b1c3bb6dc673ad55a574ef8d95ce19daddc9c5a38f403f0c2defc449adc35fd5",
    "packageFiles": [
      "LICENSE",
      "LICENSES/Unicode-3.0.txt",
      "NOTICE",
      "README.md",
      "package.json",
      "src/dom.d.ts",
      "src/dom.js",
      "src/index.d.ts",
      "src/index.js",
      "src/lexicon.js",
      "src/loanwords.js",
      "src/phonetic.js",
      "src/text-policy.js"
    ],
    "method": "The example builder packs and installs a local tarball in a standalone temporary app, strictly compiles React TSX, and validates bundle inputs against installed public package exports.",
    "browserChecks": {
      "scenariosPerEngine": 3,
      "projects": 3,
      "passed": 9
    },
    "reactMode": "development StrictMode; uncontrolled textarea",
    "manifest": {
      "path": "browser/.generated/manifest.json",
      "sha256": "bca4e38a302de4c790ca523fd71441e141f01c048c802f82cc293ce838a937b2",
      "committed": false
    },
    "generatedFileSha256": {
      "browser/.generated/manifest.json": "bca4e38a302de4c790ca523fd71441e141f01c048c802f82cc293ce838a937b2",
      "browser/.generated/vanilla/index.html": "d4a5205c3f33d3ae837605f533a37d10817ad73411367db9b98d7fc01c7196d9",
      "browser/.generated/vanilla/main.js": "d0fbdabe8aaca8cca5ee0c82d1ce6c9d59757387080462b56d73b0f019f1506d",
      "browser/.generated/react/index.html": "944e3a2c86be09a8469b59a669422dd2500609739ef80da95f15d1d39aff8c0e",
      "browser/.generated/react/main.js": "1d3596a132eb81b7470452f68c8efd99da40e258b44d3a858db2c0c64d7c8e76"
    },
    "tarballScope": "Checksum copied from the actual generated example manifest for this browser run. The temporary tarball is cleaned up; later checkout documentation is not assigned this checksum."
  },
  "otherChecks": {
    "packageVerification": {
      "command": "npm run verify:package",
      "version": "0.1.0-alpha.2",
      "passed": true,
      "checks": [
        "JavaScript public ESM imports, server-safe DOM import, conversions, options, isolation, and blocked internal exports",
        "Strict TypeScript NodeNext core without DOM, DOM fixtures and tutorials, and Bundler fixtures and tutorials",
        "Emitted TypeScript core tutorial executes in Node with the documented output"
      ],
      "evidence": {
        "kind": "Observed separate root command stdout",
        "sha256": "62ed21b5d98e0a5498246509113e991dc3ea88a8139e421e5ead4eeab88fea3b",
        "committed": false
      },
      "evidenceScope": "Separate local JavaScript/TypeScript verification; not part of the 66 browser outcomes and not registry publication evidence."
    }
  },
  "consonantCoverage": {
    "scenarios": [
      "Full k and kr, vowel attachment kri, Roman-source Backspace, and input listener notifications",
      "Backtick explicit halant, following independent vowel, backtick-equals joiner, boundaries, and undo/redo",
      "Demo full/half setting, existing text and selection retention, all marked fields, English mode, and injected paste"
    ],
    "lexicalScope": "Exact dictionary preferences retain priority; browser outcomes are selected editing regressions rather than a linguistic accuracy measurement."
  },
  "rawReport": {
    "path": "test-results/browser-results.json",
    "sha256": "cf98113fe325366205beef25f4221b28635106cf36eb6b74b8e387fe8e4f81fc",
    "committed": false,
    "runStartedAt": "2026-10-03T09:40:42.747Z",
    "durationMs": 15322.772,
    "retention": "Generated reports are ignored and replaced by later runs; CI artifacts are retained for 14 days."
  },
  "limitations": [
    "Headless desktop engine builds on the recorded macOS arm64 environment only; no installed Chrome, Firefox, Safari, physical device, or cross-platform certification.",
    "Injected clipboard, composition, and native-input scenarios do not establish operating system clipboard, real IME, or mobile keyboard behavior.",
    "React development StrictMode with an uncontrolled textarea only; no controlled-value, SSR/hydration, form-library, or general framework support claim.",
    "No assistive-technology or accessibility-conformance evidence.",
    "Selected software checks only; no general linguistic accuracy or independent human spelling verification claim.",
    "The locally packed alpha.2 source candidate remains unpublished. No npm registry version or dist-tag claim follows from these checks.",
    "Runtime, declaration, integration, test, configuration, and demo source hashes identify the tested bytes. Later documentation changes are outside this source-hash scope."
  ]
}
