)]}'
{
  "log": [
    {
      "commit": "52cc0e8ae0325cf2581c4f13010428d4645d1b44",
      "tree": "c01ec0b77b3ad0d8147e37d2a0229b93802a82bc",
      "parents": [
        "0aaee1e6a990a8383ae04dfb607924f2cd1bc19f"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Tue Sep 08 19:50:26 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Tue Sep 08 20:58:25 2026"
      },
      "message": "[build] update Selenium Manager pins to the arm64-named release\n"
    },
    {
      "commit": "0aaee1e6a990a8383ae04dfb607924f2cd1bc19f",
      "tree": "609fb0643f95ac94422526c740c633eabe0ef957",
      "parents": [
        "438558bea676913a4d901c9930678ef660d79799"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Sep 08 19:22:58 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 19:22:58 2026"
      },
      "message": "[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (#17999)\n\n* [build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings\n\n* [build] run the Ruby Selenium Manager smoke tests on a Linux arm64 runner"
    },
    {
      "commit": "438558bea676913a4d901c9930678ef660d79799",
      "tree": "5acea05dabda200f5f715466fcd7a84d4879d13b",
      "parents": [
        "e92d6a3eae5c015fa4fe539ccd1047e41d37c66b"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Sep 08 19:21:03 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 19:21:03 2026"
      },
      "message": "[build] run Rust tests and build Selenium Manager from source on Windows (#17998)\n\n* [build] use an msvc exec platform with the autoconfigured cc toolchain on Windows\n\n* [build] shorten rules_rs toolchain directory names to stay under Windows MAX_PATH\n\n* [build] build Selenium Manager from source on Windows again"
    },
    {
      "commit": "e92d6a3eae5c015fa4fe539ccd1047e41d37c66b",
      "tree": "98a822d1a8bd6c6a4e3660ed93af955da7cfc041",
      "parents": [
        "c7562874337c9a202a84dcc0fae215a811d95aa3"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Tue Sep 08 18:05:20 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Tue Sep 08 18:06:18 2026"
      },
      "message": "[build] verify Java releases by Sonatype deployment state instead of Maven Central sync\n"
    },
    {
      "commit": "c7562874337c9a202a84dcc0fae215a811d95aa3",
      "tree": "cc6d9bb2824132ae6d5abb1b67aeea643a231fff",
      "parents": [
        "59ea9e026420a20e952b734fc5e07d985f363af8"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Sep 08 17:27:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 17:27:40 2026"
      },
      "message": "[dotnet] only embed the git revision in SourceLink metadata when stamping (#18004)"
    },
    {
      "commit": "59ea9e026420a20e952b734fc5e07d985f363af8",
      "tree": "276ff1b5f6a5edfd186b1212af5fafa54edf189a",
      "parents": [
        "fb8ae461e1b213ae93fe9273ad49131c9a460878"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Tue Sep 08 16:37:27 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Tue Sep 08 16:38:06 2026"
      },
      "message": "[rb] stop serializing BiDi and DevTools specs under remote execution\n"
    },
    {
      "commit": "fb8ae461e1b213ae93fe9273ad49131c9a460878",
      "tree": "129c29123b09ff89f951d156acb9a773db7e3b3f",
      "parents": [
        "6147f47ca1bcc222f74722fb9f15d1cd5411ca7c"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Sep 08 16:33:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 16:33:38 2026"
      },
      "message": "[build] populate linux bazel cache from gh-cache workflow instead of RBE (#18003)"
    },
    {
      "commit": "6147f47ca1bcc222f74722fb9f15d1cd5411ca7c",
      "tree": "7afb295c21a70a9e583bb628ee9979e21abceec8",
      "parents": [
        "2914f739469c97ba179a023d2443d3ac801bb681"
      ],
      "author": {
        "name": "aayushisabharwal",
        "email": "aayushi.sabharwal@gmail.com",
        "time": "Tue Sep 08 15:00:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 15:00:21 2026"
      },
      "message": "[py] remove stale xfail markers from python tests (#18002)\n\n[py] remove stale xfail markers from window size/position tests\n\nThe xfail_edge markers on the window size/position tests were added in\n#15638 without a reason or linked issue, and the xfail_chrome,\nxfail_firefox and xfail_remote markers next to them cite a geckodriver\nwindow-positioning bug that no longer reproduces on CI.\n\nWith all of these markers removed, window_tests.py and\napi_example_tests.py pass on chrome, firefox and edge on Windows and\non chrome and firefox through a Grid on Linux, across several runs.\nThe Edge tests also pass locally on macOS.\n\nThe xfail_safari markers are untouched, as are the markers on the two\nlogging tests, which still raise AttributeError outside Chromium.\n\nCo-authored-by: aayushisabharwal \u003c174711043+aayushisabharwal@users.noreply.github.com\u003e\nCo-authored-by: Diego Molina \u003cdiemol@users.noreply.github.com\u003e"
    },
    {
      "commit": "2914f739469c97ba179a023d2443d3ac801bb681",
      "tree": "7a385cc191ea28c3375a9a01c203a68975745e58",
      "parents": [
        "6776d3704981cd39df18046739bfea3b1e6795fa"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Tue Sep 08 12:19:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 12:19:10 2026"
      },
      "message": "[build] Automated Browser Version Update (#18000)\n\nUpdate pinned browser versions\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: Diego Molina \u003cdiemol@users.noreply.github.com\u003e"
    },
    {
      "commit": "6776d3704981cd39df18046739bfea3b1e6795fa",
      "tree": "03042d053cc1f7428b8557934230a79b7fd98275",
      "parents": [
        "f4721fddc0158a20d0e31397e89ca1c1bbe72991"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Tue Sep 08 11:13:03 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 11:13:03 2026"
      },
      "message": "[build] Automated CDDL Spec Update (#17990)\n\nupdate cddl spec files\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: Diego Molina \u003cdiemol@users.noreply.github.com\u003e"
    },
    {
      "commit": "f4721fddc0158a20d0e31397e89ca1c1bbe72991",
      "tree": "d37be6ab6647bb26fb37a89972e33f380af16da2",
      "parents": [
        "1303bd5282e36adb47c4605792e48a61c12752c7"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Tue Sep 08 09:28:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 09:28:06 2026"
      },
      "message": "[build] Automated Dependency Update (#17991)\n\nupdate dependencies and pinned binaries\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: Diego Molina \u003cdiemol@users.noreply.github.com\u003e"
    },
    {
      "commit": "1303bd5282e36adb47c4605792e48a61c12752c7",
      "tree": "4fec8a75ae8d9022b2be8766c99b7f0fcdcef372",
      "parents": [
        "58ddb0356569f15c459feb17c37e6864ac13b4cb"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Sep 07 21:21:53 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 21:21:53 2026"
      },
      "message": "[build] bump rules_rs to 0.0.108 (#17997)"
    },
    {
      "commit": "58ddb0356569f15c459feb17c37e6864ac13b4cb",
      "tree": "7eb4b3503ece57b5955507c94de6657ed7e04a31",
      "parents": [
        "507b67e1634f0cba23c13d83346243ecf5aa88ea"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 19:20:16 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 19:20:16 2026"
      },
      "message": "[py] fix linting issue\n"
    },
    {
      "commit": "507b67e1634f0cba23c13d83346243ecf5aa88ea",
      "tree": "9d1d39834b2e866270fbb7f1fb81ea197d7acf29",
      "parents": [
        "4eaa35b280da8a53c0821205c4bd7c3f2d024eee"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 18:22:28 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 18:56:20 2026"
      },
      "message": "[rb] guard the Firefox Linux screencast failure to stable only\n"
    },
    {
      "commit": "4eaa35b280da8a53c0821205c4bd7c3f2d024eee",
      "tree": "28107607bf88bd55d626af106215b7f4dc7203e5",
      "parents": [
        "4704bc5ef277e56b541f18a71d136830b55d64f0"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 17:46:20 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 17:57:58 2026"
      },
      "message": "[rb] request the configured browser version when finding drivers\n"
    },
    {
      "commit": "4704bc5ef277e56b541f18a71d136830b55d64f0",
      "tree": "efda2ca31c5b714556ef7cad90fe533d1da3d7f3",
      "parents": [
        "825b0d175d0e2b6872fa0256d3e4a7b5bc98b71b"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 17:04:18 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 17:46:21 2026"
      },
      "message": "[py] tolerate Safari\u0027s mid-navigation window errors in click and window tests\n"
    },
    {
      "commit": "825b0d175d0e2b6872fa0256d3e4a7b5bc98b71b",
      "tree": "f322f044f9afd84274184a0d922ee9dec5490608",
      "parents": [
        "f7f60f942ee07238d9e31a37d1cfdb0cbd9c1f36"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 16:56:43 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 17:01:27 2026"
      },
      "message": "[java] give Grid deployments more time to become ready in router tests\n"
    },
    {
      "commit": "f7f60f942ee07238d9e31a37d1cfdb0cbd9c1f36",
      "tree": "9f48f640e458747a01e211ce0b713c95caa333d8",
      "parents": [
        "dc4fc25ac86b79379859f6a32aee2938b917a7c5"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 16:44:22 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 17:00:10 2026"
      },
      "message": "[rb] wait for both downloads to finish before listing them\n"
    },
    {
      "commit": "dc4fc25ac86b79379859f6a32aee2938b917a7c5",
      "tree": "9319faad91a909d3f170f255d07c67b650591f57",
      "parents": [
        "9461d1b98c5a6598dca93c1d963f090f977e79a7"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 16:44:22 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 16:46:23 2026"
      },
      "message": "[rb] give the Grid two minutes to become ready in remote specs\n"
    },
    {
      "commit": "9461d1b98c5a6598dca93c1d963f090f977e79a7",
      "tree": "84f1a0ba2d2eaa19e49eff7b6ea2802de603b14d",
      "parents": [
        "fa44e74a6ff1faaa6ff1ff2dd2bc976fa8095750"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Mon Sep 07 16:16:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 16:16:33 2026"
      },
      "message": "[build] Automated Browser Version Update (major) (#17923)\n\n* Update pinned browser versions\n\n* [rb] update BiDi guards for Edge 152 and Firefox 156 beta\n\n* [java] skip strict file interactability upload test on Chrome 154\n\n---------\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: Titus Fortner \u003ctitus.fortner@gmail.com\u003e"
    },
    {
      "commit": "fa44e74a6ff1faaa6ff1ff2dd2bc976fa8095750",
      "tree": "44657fb80f38dcbb185ef9e3aa8392ba499a0c35",
      "parents": [
        "cffe5d3a895be5a9e4494f02a5f75826baccdf42"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 12:32:17 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 15:20:57 2026"
      },
      "message": "[build] run beta browsers only in the scheduled RBE build\n"
    },
    {
      "commit": "cffe5d3a895be5a9e4494f02a5f75826baccdf42",
      "tree": "f15774fa12ea975a8b703468f345768c20a44b7e",
      "parents": [
        "580650fa40ec920f6602c98369d894d634d32a70"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 15:07:12 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 15:08:17 2026"
      },
      "message": "[build] run only Ruby smoke tests on browser pin PRs\n"
    },
    {
      "commit": "580650fa40ec920f6602c98369d894d634d32a70",
      "tree": "e4056b9a490005e844486502c9ef32cc4cd55315",
      "parents": [
        "a796c1effad6c66d2d31473e87f320eb1a36ae9e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 14:28:52 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 14:38:35 2026"
      },
      "message": "[rb] fix Edge guards in BiDi protocol specs\n"
    },
    {
      "commit": "a796c1effad6c66d2d31473e87f320eb1a36ae9e",
      "tree": "8ebda44a11ba1bed786aab9b06996ede975de674",
      "parents": [
        "8cbf4bfa2dc9bab3d11ec78c85a93bc3605ecb83"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 14:32:48 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Sep 07 14:35:20 2026"
      },
      "message": "[build] skip the release summary notification when no release ran\n"
    },
    {
      "commit": "8cbf4bfa2dc9bab3d11ec78c85a93bc3605ecb83",
      "tree": "fdf7bd9194cb32702f01d9504ae6ec961f14c054",
      "parents": [
        "396099a1d8ccae70d374418f25f75926c9717d7e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Sep 07 09:13:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 09:13:19 2026"
      },
      "message": "[py] raise typed WebDriver errors for BiDi wire error codes (#17952)\n\n* [py] raise typed WebDriver errors for BiDi from a generated error-code map\n\n* [py] generate BiDi error classes instead of minting them at import"
    },
    {
      "commit": "396099a1d8ccae70d374418f25f75926c9717d7e",
      "tree": "f0a1beb7ce1758fad828b4c797e22b76394b8105",
      "parents": [
        "3952c6bd017f2d6b0b5fd963766b49cc46c53022"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Sep 07 09:11:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 09:11:17 2026"
      },
      "message": "[py] fix flaky BiDi input tests that raced the page\u0027s autofocus (#17981)\n\nsingle_text_input.html focuses #textInput via autofocus. Firefox may apply that after the load event, so keys dispatched immediately after pages.load() can land on \u003cbody\u003e and the leading characters get dropped. That is why the failure rotated between the keyboard tests in the file instead of pinning to one assertion.\n\ntest_combined_input_actions was affected too: the pointer and key sources advance tick-for-tick, so keyDown(\"t\") fires alongside the pointer move, before the click that would have focused the input.\n\nRequest focus explicitly and wait for document.activeElement before performing actions, in both the generated _bidi mirror and the driver.input facade tests.\n\nFixes #17979"
    },
    {
      "commit": "3952c6bd017f2d6b0b5fd963766b49cc46c53022",
      "tree": "7aaadb3ea2f2f48864bdf3dea61ca3976fe990bb",
      "parents": [
        "5807971b70aa1171938fe899d1b35c02331621a6"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Sep 07 09:10:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 09:10:16 2026"
      },
      "message": "[py] run the BiDi tests against the Grid server (#17980)\n\n* [py] run BiDi tests against the Grid server\n\nAdd test-\u003cbrowser\u003e-remote-bidi targets for chrome and firefox, combining the\nBiDi test sources with the grid data/env wiring the other remote suites use.\nBIDI_TESTS was excluded from every remote suite glob, so the Python BiDi tests\nhad never run through Grid\u0027s websocket proxy.\n\nNo client change was needed: --remote and --bidi are independent code paths,\nLocalNode already rewrites webSocketUrl to /session/\u003cid\u003e/se/bidi, and\nProxyNodeWebsockets tunnels it to the node.\n\nKept out of the test-\u003cbrowser\u003e-remote aggregate for now, since this is new\ncoverage. No xfail_remote markers were added: the suite passes except for two\ntests that fail identically without --remote (a headless-Chrome\ndocument.hasFocus() artifact, and a pre-existing firefox wheel-scroll timing\nflake that fails 3/3 runs locally).\n\n* [py] wire the remote BiDi suite into CI and document it\n\nAdd a test-remote-bidi aggregate test_suite alongside test-remote, and a\nseparate remote-bidi-tests job in ci-python.yml that queries it. Keeping it as\nits own job means a red BiDi run cannot redden the established remote job while\nthis coverage is new.\n\nDocument the remote targets and the --remote / --bidi --remote pytest flags in\npy/TESTING.md, including the Grid jar prerequisite.\n\n* [py] set target_compatible_with on the remote test suites\n\nThe bidi and per-browser suites pass BROWSERS[browser][\"target_compatible_with\"]\nthrough; the remote ones did not. It is a no-op today because the value is empty\nfor chrome and firefox, but the divergence would silently drop the platform\nconstraint the first time a remote suite is added for a browser that has one\n(ie, safari, webkitgtk).\n\n* [py] collapse the duplicated xfail_remote and remote-directory guards\n\nThe \"skip unless --remote\" guard was written out three times (driver,\nfirefox_options, chromium_options) and the xfail_\u003cdriver\u003e/xfail_remote marker\ndance twice (driver, clean_driver). Extract _skip_unless_remote and\n_apply_xfail_markers.\n\nThe two marker blocks had drifted apart, so unifying them fixes two latent bugs\nin the clean_driver path:\n\n- it did not support the condition kwarg, and passed it straight to\n  pytest.xfail(), which does not accept it (TypeError)\n- neither block popped run before calling pytest.xfail(), so an explicit\n  run\u003dTrue raised TypeError as well\n\nThe `yield`/`return` after pytest.skip() in both blocks was dead code;\npytest.skip() raises.\n\nVerified against alerts_tests, which exercises all three marker paths\n(condition, run\u003dFalse, plain xfail): 20 passed, 1 skipped, 2 xfailed both\nbefore and after.\n\n* [py] give the remote test suites the COMMON_TAGS their siblings carry\n\nThe remote suites set tags \u003d [\"no-sandbox\", \"remote\", \"\u003cbrowser\u003e-remote\"],\nomitting BROWSERS[browser][\"tags\"] (COMMON_TAGS + the bare browser name) that\nevery non-remote suite carries. Compose from the sibling expression instead and\nkeep the two remote markers on top.\n\nbrowser-test and requires-network are inert here - nothing in .bazelrc*,\n.github/, scripts/ or the Rakefile filters on either, and requires-network is\nmoot anyway because no-sandbox already disables the sandbox. The tag that\nmatters is the bare browser name: py/TESTING.md documents\n\n    bazel test //py/... --test_tag_filters\u003dchrome\n\nand that silently matched no remote target. It now matches all 26 per-browser\nremote-bidi targets. Ruby already does this and says why in a comment\n(rb/spec/tests.bzl), so this aligns Python with the reference implementation.\n\nThe omission was incidental rather than deliberate: the per-browser remote\ntargets in b1904f8a89 (#16851) inherited the minimal tag set of the single\ntest-remote target they replaced, and no rationale for the tag choice is\nrecorded.\n\n* [py] make the focus and wheel-scroll bidi tests work headed and headless\n\nBoth tests read an asynchronous result exactly once, so they raced it.\n\ntest_activate_browsing_context asserted that creating a second window takes\nfocus off the first. Focus is handed over asynchronously, so poll for it. That\nalone is not enough: headless Chromium has no window manager and never hands\nfocus over at all, confirmed by a 5s wait timing out 5/5 runs. So skip in that\ncase only - gated on the new `headless` fixture, and only after the wait has\nactually expired. Headless Firefox does hand focus over and keeps the full\nassertions; headed runs still fail loudly if the handover regresses, because the\nskip cannot trigger outside headless.\n\ntest_wheel_scroll_with_duration spreads a 100px scroll over 500ms and then\nasserted pageYOffset \u003d\u003d 100 immediately; Firefox was reliably one pixel short.\nWait for the scroll to settle before asserting, keeping the exact assertion\nrather than widening it to a tolerance.\n\nVerified per browser and per mode:\n- test_activate: chrome headless skips (was failing), chrome headed passes with\n  full assertions, firefox headless passes with full assertions and 0 skips\n- test_wheel_scroll_with_duration: failed 3/3 runs at HEAD, 0/3 after\n\nBoth tests exist twice (bidi/ and _bidi/); both copies are updated.\n\nNote: py/test/selenium/webdriver/common/_bidi/input_tests.py has further\npre-existing firefox flakiness not addressed here - test_key_input_with_value_attribute,\ntest_key_input_special_characters and test_combined_input_actions each failed in\nsome runs, a different one each time, both before and after this change."
    },
    {
      "commit": "5807971b70aa1171938fe899d1b35c02331621a6",
      "tree": "e6baeecd00172d55fa936a7362d743fa28bb59f6",
      "parents": [
        "2df05d00d9d732c1af73eebddc8af228df7fc1ac"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 19:00:59 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 23:25:40 2026"
      },
      "message": "[build] stop uploading changes.patch as a GitHub release asset\n"
    },
    {
      "commit": "2df05d00d9d732c1af73eebddc8af228df7fc1ac",
      "tree": "3779edf5fbc451dc68ac79b9998f8d500d1d3e96",
      "parents": [
        "2e989902563b799b567e7e3e938a6a959a823dd4"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 22:57:34 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 22:57:34 2026"
      },
      "message": "[rb] report the driver version that actually served each spec run\n"
    },
    {
      "commit": "2e989902563b799b567e7e3e938a6a959a823dd4",
      "tree": "3663f3a6eb9a5f33b9a3876ffcbc6a654c7909fb",
      "parents": [
        "539dfe22011a00915ffb59b395123c05f7e4c872"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Sun Sep 06 21:58:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 06 21:58:35 2026"
      },
      "message": "[build] Automated Dependency Update (#17937)\n\n* update dependencies and pinned binaries\n\n* [py] override new ruff rule selection to keep existing checks\n\n---------\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: Titus Fortner \u003ctitus.fortner@gmail.com\u003e"
    },
    {
      "commit": "539dfe22011a00915ffb59b395123c05f7e4c872",
      "tree": "fe120c3ee9e9be712dd93cedca7157393ede4bd6",
      "parents": [
        "0a6ea445b37e0b9cdb0d96566c8b419ffd839339"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 21:55:11 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 21:55:11 2026"
      },
      "message": "[rb] fix local dev execution\n"
    },
    {
      "commit": "0a6ea445b37e0b9cdb0d96566c8b419ffd839339",
      "tree": "8a05df3cc4b008aa19148798224c7031b4359e16",
      "parents": [
        "77ea3d0652a7ae3e390e9a7e57aec61c6a5ef8ca"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Wed Aug 26 19:22:02 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 20:38:26 2026"
      },
      "message": "[rb] assert Safari returns a sharedId for a located node instead of failing on our own construction\n"
    },
    {
      "commit": "77ea3d0652a7ae3e390e9a7e57aec61c6a5ef8ca",
      "tree": "70cefaac489550342688eae0a421eb5d1871b5bb",
      "parents": [
        "ed2dda5a863c0fd7c09677cb765ff5a31f5729a3"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sun Sep 06 20:00:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 06 20:00:54 2026"
      },
      "message": "[build] build Selenium Manager Linux binaries natively and pin the Rust toolchain (#17988)\n\n* [build] build Linux binaries natively per architecture and drop cross\n\n* [build] pin cargo and Bazel to Rust 1.98.1\n\n* [build] rename the Linux arm64 artifacts to aarch64"
    },
    {
      "commit": "ed2dda5a863c0fd7c09677cb765ff5a31f5729a3",
      "tree": "14e5122951305689dc25657ce77be5cceea055d8",
      "parents": [
        "802accd24d0872faebdc7624b85c8820bcc0e5a9"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sun Sep 06 19:08:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 06 19:08:32 2026"
      },
      "message": "[rust] fix Windows architecture detection under WOW64 (#17987)"
    },
    {
      "commit": "802accd24d0872faebdc7624b85c8820bcc0e5a9",
      "tree": "7ea2ecf86c562c967f0c5e6dbc6054febe2a8cbc",
      "parents": [
        "50cc58f73d68555ac8cb953df596c3ded2b63d33"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:40:07 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:53:26 2026"
      },
      "message": "[py] remove no-op port self-assignment from the test web server\n"
    },
    {
      "commit": "50cc58f73d68555ac8cb953df596c3ded2b63d33",
      "tree": "6363a79869f955bbdb8418a18337d9e26d02165b",
      "parents": [
        "23c8a890e8505362f537c129e1ef13a61e8a0b82"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:40:07 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:50:59 2026"
      },
      "message": "[py] add missing assert in device serial options test\n"
    },
    {
      "commit": "23c8a890e8505362f537c129e1ef13a61e8a0b82",
      "tree": "ce15b72219e0e1789f17ffebdf5dde7e4fd3f7fc",
      "parents": [
        "f580b8dc6b8a13c5a70693207da5876bc1e7b6cf"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:40:07 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:49:22 2026"
      },
      "message": "[py] fix swapped assert arguments in async script array tests\n"
    },
    {
      "commit": "f580b8dc6b8a13c5a70693207da5876bc1e7b6cf",
      "tree": "41d94bebd7169fbd1418b15cdba562be3ad0f7e6",
      "parents": [
        "56e5c616d88a3de5eed3cac3a5031608b11a200e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:40:07 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:45:02 2026"
      },
      "message": "[build] fix invalid escape sequence in the Java atom line format\n"
    },
    {
      "commit": "56e5c616d88a3de5eed3cac3a5031608b11a200e",
      "tree": "f43884f48db8a1e8684492503b1aef738e408e1c",
      "parents": [
        "9d0ae9e68f2773c742040cb336c1e3da241657d8"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:40:07 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:43:50 2026"
      },
      "message": "[py] stop sharing the default ClientConfig proxy between instances\n"
    },
    {
      "commit": "9d0ae9e68f2773c742040cb336c1e3da241657d8",
      "tree": "e5e127506b63a5dcf0b193cf57ab11643135b2bd",
      "parents": [
        "d2d31497ed0de51304aeb05faed827dafdc14fc4"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:40:07 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sun Sep 06 18:41:57 2026"
      },
      "message": "[py] resolve aliased CddlType members when generating BiDi annotations\n"
    },
    {
      "commit": "d2d31497ed0de51304aeb05faed827dafdc14fc4",
      "tree": "31298b47b66209d825fda2f6af40541374d49171",
      "parents": [
        "b0b4a7a6f6141aa6da99707503c67c41a74239bf"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sun Sep 06 16:33:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 06 16:33:39 2026"
      },
      "message": "[build] add a daily workflow to update the pinned CDDL specs (#17972)\n\n* [build] add daily workflow to update pinned CDDL specs\n\n* [build] do not update cddl when no consumed spec content has changed\n\n* [build] regenerate the BiDi schema and Ruby protocol as part of update_cddl task"
    },
    {
      "commit": "b0b4a7a6f6141aa6da99707503c67c41a74239bf",
      "tree": "0f37e56b61479f0eed684823d804303494231340",
      "parents": [
        "a710cbd5fd5f4fcd93d1904140b58b23b4025274"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sat Sep 05 22:49:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 05 22:49:13 2026"
      },
      "message": "[build] pin the rules_rs zlib bootstrap to an immutable snapshot (#17985)"
    },
    {
      "commit": "a710cbd5fd5f4fcd93d1904140b58b23b4025274",
      "tree": "87ac5a9590441efd9daf51f6a5e047eb0623e9df",
      "parents": [
        "bdba26c1c60bf6a5fab89b1b895bae0ea6f3cd6e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Aug 31 19:32:53 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Sat Sep 05 18:55:04 2026"
      },
      "message": "[build] skip redundant Rust tests when releasing\n\nThese tests are already run on trunk and will be tested again in Release PR\n"
    },
    {
      "commit": "bdba26c1c60bf6a5fab89b1b895bae0ea6f3cd6e",
      "tree": "979d4ce4ff7dde3cb9da320335c3be530b5e66df",
      "parents": [
        "f3ccc604254b270a4623728350cbedf15b437109"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sat Sep 05 04:41:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 05 04:41:27 2026"
      },
      "message": "[java] shrink published javadoc jars (#17957)\n\n* [java] omit bundled fonts from published javadoc jars\n\n* [java] publish a stub javadoc jar for the generated CDP bindings\n\n---------\n\nCo-authored-by: Diego Molina \u003cdiemol@users.noreply.github.com\u003e"
    },
    {
      "commit": "f3ccc604254b270a4623728350cbedf15b437109",
      "tree": "70e2f1c0dfa1521278c00d380757aad1f6a5617e",
      "parents": [
        "d6bf2fbd1b04d0e0ad71d9248dfb6d64bafd4998"
      ],
      "author": {
        "name": "Diego Molina",
        "email": "diemol@users.noreply.github.com",
        "time": "Fri Sep 04 18:19:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 18:19:15 2026"
      },
      "message": "[java] Remove deprecated GET /session/{sessionId}/se/files/{fileName} endpoint (#17982)\n\n* [java] remove deprecated GET /session/{sessionId}/se/files/{fileName} endpoint\n\nMarked @Deprecated in #16844 (Jan 2026) with a note to remove it in\nSelenium 4.41, 4.42, or 4.43. Trunk is now at 4.49.0-SNAPSHOT, six\nreleases past that target, and none of the four client bindings ever\nbuilt a request to this path -- they only use the list/POST/DELETE\nforms of /se/files.\n\n* [java] remove now-dead getDownloadedFile(File, String) overload\n\nSpotbugs flagged it as an unused private method after the prior\ncommit removed the deprecated GET /se/files/{fileName} endpoint,\nwhich was its only caller.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_014kEM1tVUYCgzyhJ5xmseyF\n\n---------\n\nCo-authored-by: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "d6bf2fbd1b04d0e0ad71d9248dfb6d64bafd4998",
      "tree": "93e9ee8f13961877e713f0076370e84991a2de90",
      "parents": [
        "989e6626ada2f892337f228367050fc85de5ef93"
      ],
      "author": {
        "name": "joerg1985",
        "email": "16140691+joerg1985@users.noreply.github.com",
        "time": "Fri Sep 04 16:37:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 16:37:10 2026"
      },
      "message": "[java] add the LICENSE and NOTICE files to the jars created (#17601)\n\n* [java] add the LICENSE and NOTICE files to the jars created\n\n* [java] make spotbugs happy\n\n* [java] run the format script\n\n---------\n\nCo-authored-by: Diego Molina \u003cdiemol@users.noreply.github.com\u003e"
    },
    {
      "commit": "989e6626ada2f892337f228367050fc85de5ef93",
      "tree": "1f32e9cb348ca343d109a3595275ced6bc7edaa0",
      "parents": [
        "34c744284a5726b252b3adc7cdcc6d2c362ff71e"
      ],
      "author": {
        "name": "Ashraf Ali",
        "email": "ashraf.iu.cse1718@gmail.com",
        "time": "Fri Sep 04 15:51:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 15:51:09 2026"
      },
      "message": "[grid] Fix 500 when downloading a file whose name contains spaces (#17968)\n\n* [grid] Fix 500 when downloading a file whose name contains spaces\n\n* Fix javadoc formatting in JdkHttpMessages\n\n* [java] add round-trip test for non-ASCII characters in proxied file download paths\n\nThe existing round-trip test for JdkHttpMessages#quoteIllegalCharacters only\ncovers a space and an apostrophe (both single-byte ASCII), so the multi-byte\nUTF-8 percent-encoding branch (codePointAt/surrogate-pair handling) was\nimplemented but never exercised end-to-end through a real client/server round\ntrip. Add a case with a Cyrillic character, an umlaut, and an emoji (a\nsurrogate pair) to close that gap.\n\n---------\n\nCo-authored-by: Diego Molina \u003cdiemol@users.noreply.github.com\u003e"
    },
    {
      "commit": "34c744284a5726b252b3adc7cdcc6d2c362ff71e",
      "tree": "cb111f751f46d30063e302d00d4b59c0a8635826",
      "parents": [
        "c71be6b55df639c9e65dcd6d601043adeb4c7295"
      ],
      "author": {
        "name": "Alex Popov",
        "email": "iampopovich@gmail.com",
        "time": "Thu Sep 03 22:12:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 22:12:54 2026"
      },
      "message": "[py] chore: enable mypy disallow untyped decorators and update type hints (#17974)\n\nchore: enable mypy disallow untyped decorators and update type hints in webdriver.py\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e"
    },
    {
      "commit": "c71be6b55df639c9e65dcd6d601043adeb4c7295",
      "tree": "d7af5126e0dd7a674d56549a4850cf67ed6ce143",
      "parents": [
        "05423ea3704077adb3a8faabbd431c2926a98ddf"
      ],
      "author": {
        "name": "Ricard Solé",
        "email": "hola@ricard.im",
        "time": "Thu Sep 03 20:39:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 20:39:46 2026"
      },
      "message": "[build] generate compact execution log (#17977)\n\nContext:\nBazel can produce a log file which details action execution for the given\nbuild. Its initial version (pre-7.x) was known to be far too large to\nparse on most cases and it also incurred non-trivial performance\npenalties (https://github.com/bazelbuild/bazel/issues/23319). The new\nformat (compact) was first released in bazel 7.x and stabilized in bazel\n8.x. Since then a number of tools have emerged to analyzed this artifact,\nand, usually, services that use RE/RC/BES can make use of the execution\nlog to provide more detailed insights on build execution.\n\nThis patch modifies `.bazelrc` to produce a compact execution log for\nevery build. It also adds the file to `.gitignore` because it shouldn\u0027t\nbe checked in."
    },
    {
      "commit": "05423ea3704077adb3a8faabbd431c2926a98ddf",
      "tree": "9928b1a7858101095d7b53cd1f81a9b8701c18e1",
      "parents": [
        "483f8cd73fef9cc5a151c69166706884ed1d1f27"
      ],
      "author": {
        "name": "Diego Molina",
        "email": "diemol@users.noreply.github.com",
        "time": "Thu Sep 03 07:56:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 07:56:16 2026"
      },
      "message": "[py] wire print_pdf_tests.py into the browser test suites (#17976)\n\nprint_pdf_tests.py imports PrintOptions from its own library\n(:common_print_page_options), which was never added as a dependency\nof the test-\u003cbrowser\u003e-common targets, so the file was excluded from\nevery glob() that feeds them instead. That left it excluded from\nBazel\u0027s target graph entirely for chrome/edge/firefox/safari, and\nreachable-but-broken (ImportError on collection) for the\nwebkitgtk/wpewebkit targets, which don\u0027t have the same exclude.\n\nFollow the existing feature-suite pattern (fedcm, timeouts, alerts,\netc.) instead: carve print_pdf_tests.py out via PRINT_TESTS, fold it\ninto FEATURE_TESTS so it\u0027s excluded from the common globs, and\nregister it in FEATURE_SUITE_DEFS so per-browser and per-browser\nremote targets are generated with the :common_print_page_options dep.\n\nVerified locally with `bazel test`: 4/4 pass on chrome, firefox and\nedge (both local and remote variants); safari correctly xfails via\nthe existing @pytest.mark.xfail_safari markers.\n\n\n\nCo-authored-by: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "483f8cd73fef9cc5a151c69166706884ed1d1f27",
      "tree": "179e4b6b7faac1b0f41257830149bcee9bbf648b",
      "parents": [
        "8b8723bbeb277d4657cdc166f99c4e066d060e66"
      ],
      "author": {
        "name": "Alex Popov",
        "email": "iampopovich@gmail.com",
        "time": "Wed Sep 02 16:48:01 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 16:48:01 2026"
      },
      "message": "[py] chore fix for unreachable mypy warnings (#17969)\n\n* refactor: Enhance type annotations in options, pointer_input, and proxy modules\n\n* applied same pattern as for method from_json at the line 598\n\n---------\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e"
    },
    {
      "commit": "8b8723bbeb277d4657cdc166f99c4e066d060e66",
      "tree": "b17c7b977d097d0eff0e315fe7a0995b0359f83d",
      "parents": [
        "5d90b1dce34154446da111e0c510d4c7e13f18ca"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Aug 31 19:08:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 19:08:59 2026"
      },
      "message": "[js][py][rb] derive BiDi field names and enum value types in the schema (#17966)\n\n* [js] project BiDi wire keys to identifier-safe schema field names\n\n* [js][py][rb] declare enum value primitives in the schema and honor them when generating\n\n* [build] update cddl spec files and regenerate the BiDi schema and protocol\n\n* [py] hold BiDi enum values to their declared primitive type"
    },
    {
      "commit": "5d90b1dce34154446da111e0c510d4c7e13f18ca",
      "tree": "533845a0022e4e4a20e3a9e1c9bab98a6dfec133",
      "parents": [
        "c1f500a9ed124288d7b280ddb9117672bd6b6090"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Fri Aug 28 20:13:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 20:13:45 2026"
      },
      "message": "[js][py] Capitalize non-Latin text in the getVisibleText atom (#17964)\n\n* [js][py] Capitalize non-Latin text in the getVisibleText atom\n\nThe `text-transform: capitalize` handling matched letters with hardcoded\nLatin-only ranges, so Cyrillic, Greek and Armenian matched neither the\n\"titlecase this letter\" class nor the \"continues a word\" class, and were\nreturned untransformed.\n\nBuild the patterns from the \\p{L}, \\p{M} and \\p{N} Unicode property escapes\nunder the \"u\" flag instead. The enclosed alphanumerics range stays explicit:\nthose are symbols rather than letters, but do have case mappings. Engines\nwithout the \"u\" flag fall back to the previous Latin-only literals, so the\nIE driver\u0027s atom keeps its current behaviour.\n\nGet Element Text is a driver-side endpoint, served from each browser\u0027s own\nvendored copy of the atom, so the Python tests for non-Latin text stay\nxfail until this is upstreamed into Chromium and Gecko.\n\nFixes #17945\n\n* [py] xfail the Latin text-transform test on WebKit\n\nWebKit computes Get Element Text without applying text-transform at all, so\nSafari returns the untransformed source text even for Latin script. This is\nunrelated to the non-Latin capitalize bug the rest of this change fixes -\nChrome, Edge and Firefox all pass the Latin assertions."
    },
    {
      "commit": "c1f500a9ed124288d7b280ddb9117672bd6b6090",
      "tree": "abdf2197a0bd1f411f1a9641833acd45204e5ae4",
      "parents": [
        "c42910d08f7942801ad57849dc506a444da997b3"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Thu Aug 27 19:37:06 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 20:01:44 2026"
      },
      "message": "[rb] let a new Windows session settle before the first navigation\n"
    },
    {
      "commit": "c42910d08f7942801ad57849dc506a444da997b3",
      "tree": "4c24858abe29d98c0e5c3ff954264286433dbd3a",
      "parents": [
        "c40113e317f8b4fb18fcee20bb6205883e37f7b1"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Wed Aug 26 19:22:02 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 19:39:32 2026"
      },
      "message": "[rb] emulate Pixel 10 instead of the delisted Nexus 5\n"
    },
    {
      "commit": "c40113e317f8b4fb18fcee20bb6205883e37f7b1",
      "tree": "ea52f31a28eceeb04dbfc2535162b31748b9a199",
      "parents": [
        "c01a1570ede6d9423325d4606577bb4e9cacca31"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Wed Aug 26 19:22:02 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 19:36:23 2026"
      },
      "message": "[js] emulate Pixel 10 instead of Nexus 5 device names Chrome no longer accepts\n"
    },
    {
      "commit": "c01a1570ede6d9423325d4606577bb4e9cacca31",
      "tree": "542acb3b03b184af88547908ff178421f9e2942a",
      "parents": [
        "f11ced35b342b0805c7c73f5e197d15f46927b89"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Fri Aug 28 19:25:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 19:25:24 2026"
      },
      "message": "[dotnet] [bidi] Add browsing context screencast support (#17941)"
    },
    {
      "commit": "f11ced35b342b0805c7c73f5e197d15f46927b89",
      "tree": "fa4221053789a01b69e1c4c2bc5ebaefa58944df",
      "parents": [
        "a83681e2819595fd4c3d7f9598ba24077ae9b609"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Fri Aug 28 17:29:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 17:29:50 2026"
      },
      "message": "[dotnet] [bidi] Avoid massive command descriptors allocation (#17965)"
    },
    {
      "commit": "a83681e2819595fd4c3d7f9598ba24077ae9b609",
      "tree": "e25d17d469f53b07f0ab4b4192bdc9649d5ccb48",
      "parents": [
        "24df821a09cd4c0ddcd7106f1efce611f6034a74"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Fri Aug 28 16:30:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 16:30:48 2026"
      },
      "message": "[dotnet] [bidi] Fix NamespaceUri json property name (#17958)"
    },
    {
      "commit": "24df821a09cd4c0ddcd7106f1efce611f6034a74",
      "tree": "a89e21bf1acda89b4b87a81a92bbb1fc215cd572",
      "parents": [
        "df96a5031840f97770cd40f8b1eeb99720186943"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Fri Aug 28 16:30:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 16:30:37 2026"
      },
      "message": "[dotnet] [bidi] Fix realm type enum serialization (#17959)"
    },
    {
      "commit": "df96a5031840f97770cd40f8b1eeb99720186943",
      "tree": "a206317e494e546b3b26d3e0eea4074d0cf080c3",
      "parents": [
        "3e812344a76cede3f862a8e22bb4f205d3440196"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Fri Aug 28 16:30:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 16:30:28 2026"
      },
      "message": "[dotnet] [bidi] Fix mismatch of proxy json property names (#17960)"
    },
    {
      "commit": "3e812344a76cede3f862a8e22bb4f205d3440196",
      "tree": "5d0685b911b6ac8a19aac53ecc4b222455f81bf2",
      "parents": [
        "1b26e320e2a0eacd6877a9b304eaed20d46e4608"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Fri Aug 28 16:30:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 16:30:18 2026"
      },
      "message": "[dotnet] [bidi] Fix various missing fields in DTO (#17961)"
    },
    {
      "commit": "1b26e320e2a0eacd6877a9b304eaed20d46e4608",
      "tree": "3912f3c1caa3bde4bf8e9a92ccb5f29134322a91",
      "parents": [
        "8f8d46445eb2da6def82c49bd4e7f8d8512def55"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 28 16:17:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 16:17:21 2026"
      },
      "message": "[build] track the generated BiDi schema (#17962)\n\n* [build] check in the generated BiDi schema with a staleness test\n\n* [build] export schema.json to the binding packages"
    },
    {
      "commit": "8f8d46445eb2da6def82c49bd4e7f8d8512def55",
      "tree": "ef88d4e01c97f5b7cc278158ac66474b4f0cc2d0",
      "parents": [
        "8ae82d5916b874be3f516abb8dd48edadf377ace"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 28 15:35:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 15:35:04 2026"
      },
      "message": "[build] improve pre-release workflow ordering (#17963)\n\n* [build] bump versions without waiting for the selenium manager release\n\n* [build] split release update matrix so each job carries its real dependencies"
    },
    {
      "commit": "8ae82d5916b874be3f516abb8dd48edadf377ace",
      "tree": "73ff2fde18c3c0ac302f0c04e93afa3a493658bc",
      "parents": [
        "d71980d7f2c70b7730934e6da6a6dca900f2da03"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 13:53:48 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 13:54:44 2026"
      },
      "message": "[build] restore nightly release entry in mirror info\n"
    },
    {
      "commit": "d71980d7f2c70b7730934e6da6a6dca900f2da03",
      "tree": "97f2d63e693e4ba909513971d22b4190720dd493",
      "parents": [
        "c7efadab32e90115ee74f4d20bf3381bb00e6346"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 13:42:41 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 13:54:00 2026"
      },
      "message": "[build] extract the release mirror update into a script\n"
    },
    {
      "commit": "c7efadab32e90115ee74f4d20bf3381bb00e6346",
      "tree": "e3fdcfc816a6b05e2b9a60bb80664646f0517080",
      "parents": [
        "b9e648a1ba2a1a86c8aa871af09309186841be6d"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 13:42:38 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 28 13:47:34 2026"
      },
      "message": "[build] fix release order - nightly must be updated before mirror job runs\n"
    },
    {
      "commit": "b9e648a1ba2a1a86c8aa871af09309186841be6d",
      "tree": "ec344ee3664b981042f39ce16561ec5ba79602b7",
      "parents": [
        "61d5f668bc1c146c9bb4f24aca5a03e90baf8dea"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "selenium-ci@users.noreply.github.com",
        "time": "Thu Aug 27 20:17:07 2026"
      },
      "committer": {
        "name": "Selenium CI Bot",
        "email": "selenium-ci@users.noreply.github.com",
        "time": "Thu Aug 27 20:17:07 2026"
      },
      "message": "Update mirror info (Thu Aug 27 20:17:07 UTC 2026)\n"
    },
    {
      "commit": "61d5f668bc1c146c9bb4f24aca5a03e90baf8dea",
      "tree": "7f657e07bb7b973d94a65ba8f22b5066857b1529",
      "parents": [
        "27f5213055e28398a5105b7892b7a3bb2012a6ef"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "selenium-ci@users.noreply.github.com",
        "time": "Thu Aug 27 20:16:03 2026"
      },
      "committer": {
        "name": "Selenium CI Bot",
        "email": "selenium-ci@users.noreply.github.com",
        "time": "Thu Aug 27 20:16:03 2026"
      },
      "message": "[build] Reset versions to nightly after selenium-4.48.0 release\n"
    },
    {
      "commit": "27f5213055e28398a5105b7892b7a3bb2012a6ef",
      "tree": "8f3594d3243f2a8f32ee8605eef223db68145a8a",
      "parents": [
        "857ff4fe490f4914c354979efb4f62c74fe387d9"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Thu Aug 27 20:03:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 20:03:17 2026"
      },
      "message": "[build] Prepare for release of selenium-4.48.0 (#17956)\n\n* bump versions\n\n* changelogs updated\n\n* rust changelogs updated\n\n* update selenium manager versions\n\n* update authors file\n\n---------\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e"
    },
    {
      "commit": "857ff4fe490f4914c354979efb4f62c74fe387d9",
      "tree": "2d9ea1b778a2219c0ad0592ff0f01bc81d479b47",
      "parents": [
        "2183264fb7c1d63c7cebc64ba5649b67902b4c35"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Thu Aug 27 17:14:52 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Thu Aug 27 17:25:06 2026"
      },
      "message": "[build] remove cddl updates from release preparation\n"
    },
    {
      "commit": "2183264fb7c1d63c7cebc64ba5649b67902b4c35",
      "tree": "1337421139dd0b38abbc0fd72209725a844f0576",
      "parents": [
        "5fd1f414be84a2e5b3753512fb1555d91c5c9ae1"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Thu Aug 27 16:57:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 16:57:47 2026"
      },
      "message": "[dotnet] [bidi] SetMediaFeaturesOverride command in Emulation module (#17953)"
    },
    {
      "commit": "5fd1f414be84a2e5b3753512fb1555d91c5c9ae1",
      "tree": "35330b1bfe4b7956e4dd981f50fde516670e1f74",
      "parents": [
        "5b053b5a2684a2104a56088d90d6c5e278d21e1e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Thu Aug 27 15:12:14 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Thu Aug 27 15:20:27 2026"
      },
      "message": "[build] unlock trunk when release preparation PR is closed without merging\n"
    },
    {
      "commit": "5b053b5a2684a2104a56088d90d6c5e278d21e1e",
      "tree": "52f37eee9b096408684f3c75fd1efcbf0c6e7182",
      "parents": [
        "498c0e7e8dd4e314710e69855898e877d3fe291f"
      ],
      "author": {
        "name": "Puja Jagani",
        "email": "puja.jagani93@gmail.com",
        "time": "Thu Aug 27 12:07:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 12:07:18 2026"
      },
      "message": "[js][bidi] Add BiDi connection-level event subscription (#17946)"
    },
    {
      "commit": "498c0e7e8dd4e314710e69855898e877d3fe291f",
      "tree": "67bb45211541a5a13a338cd74d067bc983aec2a3",
      "parents": [
        "7bfaedb223f530da5b6e1e8e0038c50100bd6c4f"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Aug 25 19:48:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 19:48:56 2026"
      },
      "message": "[build] alert Slack when a CDP update lands on trunk (#17950)\n\n* [build] alert Slack when a CDP update lands on trunk\n\n* [build] ask in the release alert whether anything needs to land first"
    },
    {
      "commit": "7bfaedb223f530da5b6e1e8e0038c50100bd6c4f",
      "tree": "78f31328a36d129cd7eb84afa210ffa1cdf13f5b",
      "parents": [
        "083869ccd9866da3975b7f9cd8496a8ca864c62f"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Aug 25 18:10:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 18:10:55 2026"
      },
      "message": "[rb] reject an inbound BiDi scalar outside its union\u0027s declared arms (#17947)\n\n* [rb] reject an inbound BiDi scalar outside its union\u0027s declared arms\n\n* [rb] trim comments to essentials"
    },
    {
      "commit": "083869ccd9866da3975b7f9cd8496a8ca864c62f",
      "tree": "06307ef2a0af2877c297a456d9917f529ffcb155",
      "parents": [
        "5b3666d62507b79ae08b0bf0e18604c28bb8f404"
      ],
      "author": {
        "name": "Nikolay Borisenko",
        "email": "22616990+nvborisenko@users.noreply.github.com",
        "time": "Tue Aug 25 17:38:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 17:38:13 2026"
      },
      "message": "[dotnet] [bidi] Throw in case of unknown discriminator (#17948)"
    },
    {
      "commit": "5b3666d62507b79ae08b0bf0e18604c28bb8f404",
      "tree": "bec2eff0bbe144c0aa61e0205f64536fc4d3c0c9",
      "parents": [
        "a4b3c3d00c8b23177c61eb8820bdb1a308a20eac"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Aug 25 16:22:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 16:22:55 2026"
      },
      "message": "[py] update new BiDi layer generation to conform to latest proposed ADR (#17942)\n\n* [py] align generated BiDi layer with the low-level contract and drop ADR cross-references\n\n* [py] always reject a missing required inbound BiDi field\n\n* [py] reject an inbound BiDi scalar outside its union\u0027s declared arms"
    },
    {
      "commit": "a4b3c3d00c8b23177c61eb8820bdb1a308a20eac",
      "tree": "74e99f2eb1db3e5200d68b7d9897a6fddf72ad91",
      "parents": [
        "c7aa3d3f7573513b0c1ad05d3b4733b1e228910e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Aug 24 17:30:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 17:30:00 2026"
      },
      "message": "[build] stop updating browsers and CDP during release preparation (#17940)\n\n* [build] stop updating browsers and CDP during release preparation\n\n* [build] limit the CDP gate to full releases and harden its parsing"
    },
    {
      "commit": "c7aa3d3f7573513b0c1ad05d3b4733b1e228910e",
      "tree": "b25c8dcbb3508601a00138fc1bfda274565954a9",
      "parents": [
        "ef7f722fd34c0d8cbfb7a0eee22fe19d544f1356"
      ],
      "author": {
        "name": "Puja Jagani",
        "email": "puja.jagani93@gmail.com",
        "time": "Mon Aug 24 13:20:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 13:20:46 2026"
      },
      "message": "[js] Add serialization and domain layer (#17927)"
    },
    {
      "commit": "ef7f722fd34c0d8cbfb7a0eee22fe19d544f1356",
      "tree": "b8e955dbf826217d071084101b1b311d56c89d4b",
      "parents": [
        "6df57060dea30e91ab78b2e04130ceb208de3fae"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sat Aug 22 03:34:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 22 03:34:27 2026"
      },
      "message": "[build] unlock trunk once the release finishes writing to it (#17938)\n\n* [build] unlock trunk once the release finishes writing to it\n\n* [build] skip the grid nightly release when the nightly build was skipped\n\n* [build] skip the commit when the patch has already been applied\n\n* [build] keep the standalone unlock notification since the summary arrives much later\n\n* [build] keep trunk locked when a release write to trunk fails"
    },
    {
      "commit": "6df57060dea30e91ab78b2e04130ceb208de3fae",
      "tree": "d56488f0c945d34a605040fd5965fe05d347ac1f",
      "parents": [
        "458b8e1abb379e5ec287bb32ca70159f762b51f8"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sat Aug 22 03:33:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 22 03:33:11 2026"
      },
      "message": "[rb] accept a whole-valued float for an integer BiDi field (#17939)"
    },
    {
      "commit": "458b8e1abb379e5ec287bb32ca70159f762b51f8",
      "tree": "2187b960ca69c24e52a711c3cf69885c66e81126",
      "parents": [
        "949d4c149176a9da7825446cfe54e5e22a0037ad"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 21 23:29:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 23:29:38 2026"
      },
      "message": "[build] Move dependency updates into a weekly workflow (#17934)\n\n* [build] move dependency updates into a weekly workflow and pin lockfiles on version bump\n\n* [build] distinguish a missing patch artifact from a failed download"
    },
    {
      "commit": "949d4c149176a9da7825446cfe54e5e22a0037ad",
      "tree": "527e6f1a96fb4d5e14ee949c1cfb14163172bdf0",
      "parents": [
        "1dd3004144ec48314bd5ba471f0dbc0fbd6b5b95"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 21 23:28:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 23:28:46 2026"
      },
      "message": "[build] make Java and .NET release reruns pass when already published (#17935)"
    },
    {
      "commit": "1dd3004144ec48314bd5ba471f0dbc0fbd6b5b95",
      "tree": "67655b3b4648665e5acaee5d00af640477825e65",
      "parents": [
        "7eca8c6eb9c59eab042a08eeeb35d989915ddfb2"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 21 23:27:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 23:27:46 2026"
      },
      "message": "[rb] always reject a missing required inbound BiDi field (#17936)"
    },
    {
      "commit": "7eca8c6eb9c59eab042a08eeeb35d989915ddfb2",
      "tree": "4ca173c537d02e41ec317e9c500c4403dba046a7",
      "parents": [
        "fadb1e5ae48e63f10f0da8d4fc967a3eafe05d31"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 21 21:29:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 21:29:05 2026"
      },
      "message": "[py] generate the internal BiDi protocol layer from the shared binding-neutral schema (#17761)\n\n* [py] add internal generated BiDi protocol layer (build-time generated)\n\n* [py] add the BiDi Domain and Transport runtime\n\n* [py] add generated _bidi integration tests and reorganize into bidi/ and _bidi/\n\n* [py] tighten BiDi wire-error/payload checks and pin generated _bidi srcs\n\n* [py] tolerate inbound BiDi schema drift (warn) with a strict opt-in; require fields outbound\n\n* [py] warn once per record for undeclared BiDi properties, not once per key\n\n* [py] resolve cross-domain BiDi refs lazily and bound tolerated-inbound warnings per record\n\n* [py] validate outbound BiDi values (primitive/list/record) at the as_json boundary\n\n* [py] include alias-union scalar arms in generated value aliases\n\n* [py] validate outbound BiDi map entries and surface real import errors in resolve\n\n* [py] validate outbound BiDi union values against the union\u0027s variants"
    },
    {
      "commit": "fadb1e5ae48e63f10f0da8d4fc967a3eafe05d31",
      "tree": "9aafd95d9f664873e2df40800971697d4f2607b7",
      "parents": [
        "cf841ff264d99a28afb5427df4fe653fc0c809b1"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 21 17:29:10 2026"
      },
      "committer": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Aug 21 17:33:32 2026"
      },
      "message": "[docs] mark ADR 17817 as accepted\n"
    },
    {
      "commit": "cf841ff264d99a28afb5427df4fe653fc0c809b1",
      "tree": "141dcac5234e89183a5976ec9f1dd1e7fd4ef460",
      "parents": [
        "62a82feab983ba650094f05ed8dcc7ff38efc4e6"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 21 17:16:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 17:16:24 2026"
      },
      "message": "[adr] Install browser extensions from the driver directly (#17817)\n\n* the driver installs extensions directly\n\n* adopt installWebExtension naming\n\n* correct the classic private-browsing behavior\n\n* drop the CDP tradeoff, obsoleted by Chrome 149 removing the pipe requirement\n\n* split backwards-compatibility from the unsupported exceptions rule\n\n* scope vendor options to the vendor driver\n\n* make the Grid consequence transport-neutral"
    },
    {
      "commit": "62a82feab983ba650094f05ed8dcc7ff38efc4e6",
      "tree": "7a133fdd634166ddd0be11bbd1323b1a0049cd82",
      "parents": [
        "3ea639017770aa4da492b9d0b52b3943d96ce52b"
      ],
      "author": {
        "name": "Diego Molina",
        "email": "diemol@users.noreply.github.com",
        "time": "Fri Aug 21 16:02:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 16:02:24 2026"
      },
      "message": "[build] ignore .bazelbsp/ IDE-generated directory (#17932)\n\nThe JetBrains Bazel plugin for IntelliJ generates a .bazelbsp/\ndirectory in the project root to run Bazel Build Server Protocol\nqueries for IDE features. It was showing up as untracked since\nnothing in .gitignore excluded it.\n\n\nClaude-Session: https://claude.ai/code/session_016UGAATQ9swH6hNCer7cwVw\n\nCo-authored-by: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "3ea639017770aa4da492b9d0b52b3943d96ce52b",
      "tree": "dae06d71f7066b28278651a5fa5f08d52502c31f",
      "parents": [
        "d084fb047dd6b20b06f20fe839d16c1437f66909"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Aug 21 13:23:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 13:23:34 2026"
      },
      "message": "[build] record flaky tests on trunk and report weekly offenders to Slack (#17930)\n\n* [build] record flaky tests on trunk and report weekly offenders to Slack\n\n* [build] only treat a rerun as recovered when it reports the test passing"
    },
    {
      "commit": "d084fb047dd6b20b06f20fe839d16c1437f66909",
      "tree": "f50733c2066b58f736ddb6af411c6b48e0f89a00",
      "parents": [
        "409158001f7c92268e56bc487b3242ca2e39f505"
      ],
      "author": {
        "name": "Simon Mavi Stewart",
        "email": "simon.m.stewart@gmail.com",
        "time": "Thu Aug 20 11:36:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 11:36:11 2026"
      },
      "message": "Honour the `DO_NOT_TRACK` env var (#17931)\n\nRather than having multiple different mechanisms per app for handling\nopting out of tracking, there\u0027s a move to standardise on this env\nvar (https://donottrack.sh/) Selenium should honour that."
    },
    {
      "commit": "409158001f7c92268e56bc487b3242ca2e39f505",
      "tree": "d3c3632027c092dcbbccc5f132dd9ef78ca5eeea",
      "parents": [
        "e05959106d37e9076798f70644cf892d2a6585ee"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Wed Aug 19 11:39:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 11:39:23 2026"
      },
      "message": "[docs] charter: link the accepted BiDi support boundary record (#17928)\n\n17670 was accepted on 2026-07-23; the charter states each decision is\nmarked ADR pending until its record is accepted, at which point the\ncharter links it."
    },
    {
      "commit": "e05959106d37e9076798f70644cf892d2a6585ee",
      "tree": "24fc0b9615b0f1f9294b60e96c398b3c6d5cfd2f",
      "parents": [
        "eb28a14f3833750c23b0325d578412a95ab306d2"
      ],
      "author": {
        "name": "Puja Jagani",
        "email": "puja.jagani93@gmail.com",
        "time": "Tue Aug 18 10:11:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 10:11:25 2026"
      },
      "message": "[js] Ensure BiDi is not exposed on Driver (#17926)"
    },
    {
      "commit": "eb28a14f3833750c23b0325d578412a95ab306d2",
      "tree": "2cbb62f149714ec84f458af2afb3ecb7ca6f62bf",
      "parents": [
        "bfd6bd77fed0485f0ea72319fadfa309ec5c7342"
      ],
      "author": {
        "name": "Augustin Gottlieb",
        "email": "33221555+aguspe@users.noreply.github.com",
        "time": "Tue Aug 18 08:08:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 08:08:30 2026"
      },
      "message": "[rb] fix silent hang on oversized WebSocket frames (#17655)\n\n* [rb] fix silent hang on oversized WebSocket frames\n\nwebsocket-ruby drops frames larger than WebSocket.max_frame_size (20MB\ndefault) and keeps returning nil, so the listener spun forever and the\nprocess appeared to hang (e.g. large CDP data: URL payloads under\nrequest interception).\n\nRaise the limit to 100MB for our connections (lazily, and only when the\nuser has not already set a larger value, so non-DevTools users and\ncustom configs are unaffected), and surface an undecodable frame as a\nlogged error that stops the listener instead of hanging silently.\n\nFixes #17264\n\n* address qodo comments\n\n* address qodo re-review\n\n- make close idempotent instead of short-circuiting after the listener\n  initiated shutdown, and guard against self-join\n- fail fast in send_cmd when the connection is closing instead of\n  waiting for the full response timeout\n- make the dropped-frame error log actionable and accurate for\n  non-size decode errors\n- tag WebSocketConnection as @api private and document why the frame\n  size limit is process-global and not restored on close\n\n* raise IOError from send_cmd fail-fast to keep closed-connection error class\n\n---------\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e"
    },
    {
      "commit": "bfd6bd77fed0485f0ea72319fadfa309ec5c7342",
      "tree": "fdffe06f82a22890e0dda8245f1bd96a8569bb21",
      "parents": [
        "696262304960bd8c1ea383441426d4299f11b440"
      ],
      "author": {
        "name": "Diego Molina",
        "email": "diemol@users.noreply.github.com",
        "time": "Tue Aug 18 05:57:26 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 05:57:26 2026"
      },
      "message": "Revert \"[py] temporarily disable nightly TestPyPI publishing (#17920)\" (#17924)\n\nThis reverts commit 7f32b68a30dc4b235857a3fe7cf8629b3f4e5ae4."
    },
    {
      "commit": "696262304960bd8c1ea383441426d4299f11b440",
      "tree": "3a10458e0b181ceb77187dcb22e7673cc1ceb3a5",
      "parents": [
        "194545f1f16080ce2cacc44be7a437df9a979bcb"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Aug 18 01:49:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 01:49:29 2026"
      },
      "message": "[build] fix the issues that caused the release workflow to fail during last release (#17921)\n\n* [build] fix release mirror push target and poll Maven Central when verifying Java"
    },
    {
      "commit": "194545f1f16080ce2cacc44be7a437df9a979bcb",
      "tree": "6ca8f4a2bb689fcc9c673ce0c423ae1a69d0f9b9",
      "parents": [
        "7f32b68a30dc4b235857a3fe7cf8629b3f4e5ae4"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Aug 18 01:01:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 01:01:47 2026"
      },
      "message": "[rb] fix Safari test failures (#17922)\n\n[rb] fix Safari set_viewport spec guard and update Homebrew before STP install"
    },
    {
      "commit": "7f32b68a30dc4b235857a3fe7cf8629b3f4e5ae4",
      "tree": "f2d28c303e0bc1267cb3181478ea514fb4d30b53",
      "parents": [
        "a8610d9df3020d9b30ef4290124006386eed4fa0"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Aug 17 17:05:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 17:05:15 2026"
      },
      "message": "[py] temporarily disable nightly TestPyPI publishing (#17920)\n\n[py] disable nightly TestPyPI publishing and add twine --verbose"
    },
    {
      "commit": "a8610d9df3020d9b30ef4290124006386eed4fa0",
      "tree": "7dec840c7856b41b20ffda36b0c2a8be6ce986e0",
      "parents": [
        "7c6f3869040923d022c3bfbec6e1c485aa048f0c"
      ],
      "author": {
        "name": "Puja Jagani",
        "email": "puja.jagani93@gmail.com",
        "time": "Mon Aug 17 11:32:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 11:32:11 2026"
      },
      "message": "[java] Add warn annotation for undeclared field while JSON coercion  (#17917)"
    },
    {
      "commit": "7c6f3869040923d022c3bfbec6e1c485aa048f0c",
      "tree": "4d7278b549578b2c98d4de6c97dc400326305703",
      "parents": [
        "3e387119b8709dbde85e8bd4e8b79801523b9993"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sat Aug 15 17:58:49 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 15 17:58:49 2026"
      },
      "message": "[java] fix two flaky BiDi tests that left timing-dependent state behind (#17918)"
    }
  ],
  "next": "3e387119b8709dbde85e8bd4e8b79801523b9993"
}
