)]}'
{
  "log": [
    {
      "commit": "df765f59ca0b0c7cc253880b42f7956639358c9d",
      "tree": "77b5b302471dfd90f53ab2fc693ba8d75d9e3683",
      "parents": [
        "8fd9e39cb479589e07ae181cc74cb0dabb4e31b4"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Jun 12 11:51:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 12 11:53:31 2026"
      },
      "message": "[py] terminate driver service process when start() fails to connect (#17651)\n\n* [py] terminate driver service process when start() fails to connect\n\n* [py] guard service start cleanup against interrupts and cleanup errors\n\n* [py] add timeout to service remote shutdown request\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 18bb1d97d3db196522aa9b3873a350dc40d3ccb8\n"
    },
    {
      "commit": "8fd9e39cb479589e07ae181cc74cb0dabb4e31b4",
      "tree": "bd43cffdb4d9ae59aa4551b6b446984d25f3b4d5",
      "parents": [
        "78d55618841907b021287b0b9beaa5448f077821"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu Jun 11 16:06:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 11 18:39:16 2026"
      },
      "message": "[py] translate continue_request/continue_response kwargs to BiDi wire format (#17669)\n\n* [py] translate continue_request/continue_response kwargs to BiDi wire format\n\nThe high-level Request.continue_request and Response.continue_response\naccepted **kwargs and merged them straight onto the wire params. This\nbypassed the snake_case to camelCase translation (status -\u003e statusCode,\nreason_phrase -\u003e reasonPhrase) and the value encoders used everywhere\nelse in this layer, so pythonic calls like continue_response(status\u003d503)\nor continue_request(headers\u003d{...}) silently sent wrong or untranslated\nvalues.\n\nReplace the kwargs with explicit keyword-only params matching the\nset_* mutators and route them through _continue_params so they are\ntranslated uniformly while still overriding recorded mutations.\n\n* [py] add tests for continue_* override merge and falsy values\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 887237c468022cb5e4637aa98404fac2de0c8d23\n"
    },
    {
      "commit": "78d55618841907b021287b0b9beaa5448f077821",
      "tree": "c3d426697dd10a30fc5736d7d59378ac2821a878",
      "parents": [
        "df767a4cf2053a617154044e5fa96d1e08745fdf"
      ],
      "author": {
        "name": "Navin Chandra",
        "email": "navinchandra772@gmail.com",
        "time": "Tue Jun 09 17:15:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 10 01:27:12 2026"
      },
      "message": "[py][bidi]: close BiDi websocket on `quit()` (#17663)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: daffab2fef57393a4ba1d8d75358097ebc0a14ff\n"
    },
    {
      "commit": "df767a4cf2053a617154044e5fa96d1e08745fdf",
      "tree": "4959b7370ddff105572b6716a480bf39a427b0ef",
      "parents": [
        "2bdcf131cc095b240b19ca4061635f22b719f5ac"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Tue Jun 09 11:18:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 10 01:27:06 2026"
      },
      "message": "[py] use local webserver for BiDi network auth/header tests (#17660)\n\nThe BiDi network authentication and extra-header tests navigated to\npostman-echo.com, an external service that makes the tests flaky and\ndependent on network access. Move them onto the existing local\nSimpleWebServer so everything runs on the same machine.\n\nAdds a /basic-auth endpoint to the test webserver (401 + Basic\nchallenge, 200 once the expected credentials are supplied) and reuses\nthe existing /echo_headers route for the extra-header tests.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8c504182a52a158e272b7e20da8dda5f85a07865\n"
    },
    {
      "commit": "2bdcf131cc095b240b19ca4061635f22b719f5ac",
      "tree": "7f80e09b083d92c7083599142798bf6ac3415efa",
      "parents": [
        "34de2dd063e99f3a828c87b6862fe7d51cc7c72a"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Tue Jun 09 11:17:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 10 01:27:02 2026"
      },
      "message": "[py] make window position/rect tests robust on multi-monitor setups (#17661)\n\nThe window position/rect tests assumed the browser window lives at\nnon-negative coordinates on the primary display and that the window\nmanager honors an exact set_window_position. Neither holds on a\nmulti-monitor layout: a display left of the primary yields negative\nglobal x, and the WM may clamp a requested position to the usable area\n(below the menu bar / toolbar).\n\nRelax the spec-illegal x/y \u003e\u003d 0 lower-bound assertions to shape checks\n(negative coordinates are valid per the WebDriver spec), keep the\ngenuine width/height \u003e\u003d 0 bounds, and assert that test_move_window_position\nmoved the window rather than landed at an exact coordinate.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 56ff9e91d0a256e5807083769a4574ee87818606\n"
    },
    {
      "commit": "34de2dd063e99f3a828c87b6862fe7d51cc7c72a",
      "tree": "b0d2b971384283416a02d7c77828e5f90f40bfab",
      "parents": [
        "5cafef821e6a1ef2c33c0f4fd397fb3bbf7e7306"
      ],
      "author": {
        "name": "Puja Jagani",
        "email": "puja.jagani93@gmail.com",
        "time": "Mon Jun 08 14:31:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 08 19:23:49 2026"
      },
      "message": "[js] Add Javascript/Typescript CDDL code generator for WebDriver BiDi (#17574)\n\n* [js] Add Javascript/Typescript CDDL code generator for WebDriver BiDi\n\n* Fix linting\n\n* [js] Add Javascript/Typescript CDDL code generator for WebDriver BiDi\n\n* Fix linting\n\n* [js] Add Javascript/Typescript CDDL code generator for WebDriver BiDi\n\n* Fix linting\n\n* [js] Fix enhancements manifest issues found in code review\n\n- back()/forward(): accept a context id instead of hard-coding an empty\n  string; delegate to traverseHistory({ context, delta: ±1 })\n- continueWithAuth: replace username!/password! non-null assertions with\n  an explicit undefined guard that throws a descriptive error\n- continueWithAuth: capture bidi.send() response and apply the same\n  response[\u0027type\u0027] \u003d\u003d\u003d \u0027error\u0027 check as generated methods, preventing\n  silent failures\n\n* ...\n\n* [js] Update comment for changes made to index.js\n\n* [js] Emit BiDi events via EventEmitter in bidi/index.js\n\n* Fix linting\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c526eb203708a5e25957e79d3774a2333405c2af\n"
    },
    {
      "commit": "5cafef821e6a1ef2c33c0f4fd397fb3bbf7e7306",
      "tree": "1b82b7e358e7723ec11c5e9207b1b7df26b09630",
      "parents": [
        "5906355b0ec281c31c401337e5c25780aee1f79c"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sat Jun 06 16:36:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jun 06 16:50:28 2026"
      },
      "message": "[py] add Selenium Manager integration tests (#17645)\n\n* [py] add Selenium Manager integration tests\n\n* [py] strip quotes from pinned driver path in selenium manager test\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: eb0fc64ecde9f78d3ec5383eed0beb402ac65407\n"
    },
    {
      "commit": "5906355b0ec281c31c401337e5c25780aee1f79c",
      "tree": "5682f6b227837ab26b6e1b6afd9252077cb197ee",
      "parents": [
        "33e38b55f5a16687f5d5c320d3060f50c20e9860"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Fri Jun 05 20:22:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 05 20:28:20 2026"
      },
      "message": "[build] Automated Browser Version Update (#17609)\n\n* Update pinned browser versions\n\n* [py] Mark unsigned addon install tests as xfail on Firefox\n* [rb] Guard unsigned addon install specs on Firefox\n* [js] Ignore unsigned addon install tests on Firefox\nSee https://bugzilla.mozilla.org/show_bug.cgi?id\u003d2045054\n\n---------\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: AutomatedTester \u003cdavid.burns@theautomatedtester.co.uk\u003e\nCo-authored-by: Titus Fortner \u003ctitusfortner@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c474d76009eafb32f334b7d5731d89cecfb9765d\n"
    },
    {
      "commit": "33e38b55f5a16687f5d5c320d3060f50c20e9860",
      "tree": "e8a8abfb058e71b4f4712de8be82e7310f1f89f6",
      "parents": [
        "110e4a6a372b18bb2582da495cce2c892a553fc0"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Fri Jun 05 12:26:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 05 15:23:00 2026"
      },
      "message": "[py] Add high-level BiDi network extra headers API (#17632)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9d301b1759f5b7763e3e1bad90d482bd8a3f8f1b\n"
    },
    {
      "commit": "110e4a6a372b18bb2582da495cce2c892a553fc0",
      "tree": "7970ce218fd282862d41298283ad206b53d0fbe7",
      "parents": [
        "7b5ed983b341c99e06de5aebf224467d39b71731"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Fri Jun 05 11:19:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 05 11:25:36 2026"
      },
      "message": "[py] Add high-level BiDi network authentication handler API (#17629)\n\n* [py] Add high-level BiDi network authentication handler API\n\n* [py] Omit wildcard components when translating URL globs to UrlPatterns\n\nBiDi UrlPatternPattern properties match literally and browsers reject\nwildcard characters in them (chromium-bidi: \"Forbidden characters\").\nOmitted properties match anything, so wildcard-bearing glob components\nare now dropped from the browser-side filter; Python-side glob matching\nnarrows the results.\n\n* [py] Restart driver after tests that warm the HTTP auth cache\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 822461158e132b185b41a14de9af5ece9e5b9027\n"
    },
    {
      "commit": "7b5ed983b341c99e06de5aebf224467d39b71731",
      "tree": "8dc14a8467a88f05bbf895cda0d3046a23f15166",
      "parents": [
        "1c1e25442b9074f09f86549e52dcda0a390d3309"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu Jun 04 16:39:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 04 19:05:09 2026"
      },
      "message": "[py] Align BiDi script module with the cross-binding API design (#17624)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c1ffd8c3664b2b3913a06308e97966e72b0426d6\n"
    },
    {
      "commit": "1c1e25442b9074f09f86549e52dcda0a390d3309",
      "tree": "c116006f4279371e7111b754f4024c1e598f87cc",
      "parents": [
        "f7243d6751110021b8ea066f6659c0fb9280205c"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu Jun 04 16:39:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 04 19:05:03 2026"
      },
      "message": "[py] Add high-level BiDi network response handler API (#17623)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1c84a0331fc9b2d2be886090c6fdacc00611767c\n"
    },
    {
      "commit": "f7243d6751110021b8ea066f6659c0fb9280205c",
      "tree": "7f5806b64b66b5da2757738f8c35aecc4d922850",
      "parents": [
        "8c392a2df9177fe180016f45f49329e3dbcf48be"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu Jun 04 07:49:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 04 07:55:02 2026"
      },
      "message": "[py] Add high-level BiDi network request handler API (#17619)\n\n* [py] Add high-level BiDi network request handler API\n\nAdds the doc-aligned request interception API to driver.network:\n\n- add_request_handler(callback) / add_request_handler(url_patterns, callback)\n  with glob URL patterns (*, **, ?) translated to BiDi UrlPatterns where\n  possible, falling back to Python-side matching\n- Request exposes method, headers, cookies, body and resource_type, plus\n  fail(), provide_response(status, headers, body) and\n  set_url/set_method/set_headers/set_cookies/set_body mutators\n- After all matching handlers run, the outcome is reconciled into a single\n  BiDi command (fail \u003e provideResponse \u003e continueRequest with mutations \u003e\n  continueRequest), so observer-only handlers no longer stall the page\n- Implementation lives in py/private/_network_handlers.py (staged into the\n  generated bidi package via create-bidi-src extra_srcs) so it is lintable\n  and unit-testable; the enhancement manifest only carries thin glue\n- Legacy phase-based add_request_handler/remove_request_handler forms are\n  unchanged and still pass their existing tests\n\n* [py] Add browser tests demonstrating high-level BiDi request handler API\n\nIntegration tests mirroring the BiDi API design doc examples: observing\nrequests, failing by URL pattern, stubbing responses, mutating headers and\nURL, multi-handler reconciliation precedence, pattern scoping, and handler\nremoval. Verified locally against Chrome and Firefox (17 passed, 1 skipped\neach).\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: bcafedd07de3004a7e0ccdaebaf02b801bd0b7cb\n"
    },
    {
      "commit": "8c392a2df9177fe180016f45f49329e3dbcf48be",
      "tree": "9278de6153b1207f2092a146d510bc6cc8f28f7f",
      "parents": [
        "5de16bdff8907b00480bde41a41ed498b638fd34"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Wed Jun 03 14:07:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 03 14:41:50 2026"
      },
      "message": "trim agent formatting guidance (#17617)\n\n* trim agent formatting guidance\n\n* explain the script better and remove the pre-hook nagging\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 2e479c566fcab137a97b0f939e78b8d32e653e63\n"
    },
    {
      "commit": "5de16bdff8907b00480bde41a41ed498b638fd34",
      "tree": "241fec137305ded94be7c27e5a24a21d1d38a850",
      "parents": [
        "2b95bf22eb16caac3907e0ecfa35233b3a8fae08"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Wed Jun 03 12:10:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 03 12:15:43 2026"
      },
      "message": "[py] Extract alert and color into dedicated libraries  (#17611)\n\n* [py] Extract alert and color into dedicated libraries (P2c/P2f)\n\n- Extract selenium/webdriver/common/alert.py into //py:common_alert;\n  lazy-import Alert in switch_to.py (body) and expected_conditions.py\n  (TYPE_CHECKING) so //py:remote and //py:support no longer carry the\n  compile-time dep.\n\n- Extract selenium/webdriver/support/color.py into //py:support_color;\n  no source changes needed since no other library imports it.\n\n- Group alerts_tests.py + webdriverwait_tests.py into ALERT_TESTS (both\n  call driver.switch_to.alert at runtime, requiring :common_alert).\n\n- Add RENDERED_WEBELEMENT_TESTS for rendered_webelement_tests.py (sole\n  browser test importing Color).\n\n- Both groups added to FEATURE_TESTS (excluded from *-common suites) and\n  FEATURE_SUITE_DEFS, generating test-\u003cbrowser\u003e-alerts and\n  test-\u003cbrowser\u003e-rendered sub-suites across all browser/bidi/remote\n  variants.\n\n- Add :common_alert and :support_color to //py:selenium deps.\n\n* [py] Add :common_alert dep to bidi-common test suites\n\nbidi_browsing_context_tests.py calls EC.alert_is_present() which\ntriggers driver.switch_to.alert at runtime, requiring alert.py in\nthe runfiles. The bidi-common suite includes BIDI_TESTS (unlike the\nnon-bidi common suite which excludes them) so it needs :common_alert\nas an explicit dep.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 73f55fa88cac9ca454e6126626eb677125287663\n"
    },
    {
      "commit": "2b95bf22eb16caac3907e0ecfa35233b3a8fae08",
      "tree": "1e860882ae45c205d55683305c7da3c4f8e50ea6",
      "parents": [
        "0561a0daa72fc3518ac3b6db0a09f0c828acd474"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Wed Jun 03 00:29:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 03 00:42:28 2026"
      },
      "message": "[py] retry safaridriver startup in tests (#17615)\n\n* [py][rb] retry SafariDriver startup and remove Safari 26.5 test guards\n\n* [py] retry driver start on connection errors, not just WebDriverException\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 702c97b349aec20783f304bdfbd40c72ef4fa5c2\n"
    },
    {
      "commit": "0561a0daa72fc3518ac3b6db0a09f0c828acd474",
      "tree": "96f55ebb563dfedd14d242c44e36b0c312fcb909",
      "parents": [
        "7743e2dc0672610f2a2f33147bdd89cbca56338e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Jun 02 18:20:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 02 19:29:12 2026"
      },
      "message": "[build] use pinned browser and driver for starting grid in python and ruby tests (#17610)\n\n* [py][rb] Use pinned browser and driver for remote Grid tests instead of Selenium Manager\n\n* [java] Fix --driver-configuration CLI example to use webdriver-executable\n\n* [py] guard selenium manager  test from running on rbe\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: aba540ca181d1c5c6daef841663837392b54ab99\n"
    },
    {
      "commit": "7743e2dc0672610f2a2f33147bdd89cbca56338e",
      "tree": "529bd096dbefddde163803fcc81675b3b6f05f01",
      "parents": [
        "3857ba6dc5ff76354a55256e4cd82df0c3321b6b"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Jun 01 18:35:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 18:38:17 2026"
      },
      "message": "[py] Extract feature-specific modules from //py:common  (#17606)\n\n* [py] Extract feature-specific modules from //py:common (P2b/P2d)\n\nModules that are only used by a small subset of tests were still bundled\nin //py:common, causing those modules to be compiled into every test\u0027s\ntransitive dep graph. Changing any of them triggered a full rebuild of\nall ~700 browser test targets.\n\nThis change extracts five modules into dedicated libraries:\n  - //py:common_fedcm        (fedcm/**/*.py)\n  - //py:common_timeouts     (timeouts.py)\n  - //py:common_virtual_authenticator (virtual_authenticator.py)\n  - //py:common_api_request_context   (api_request_context.py)\n  - //py:common_print_page_options    (print_page_options.py)\n\nFor each module, the corresponding browser test file (e.g. timeout_tests.py,\nvirtual_authenticator_tests.py) is the only test that imports it directly.\nNew per-feature test sub-suites (test-chrome-timeouts, test-chrome-fedcm,\netc.) carry the right //py:common_* dep; the -common suites have no dep\non these libraries. Aggregate test_suite targets (test-chrome, test-chrome-bidi,\ntest-chrome-remote, etc.) are unchanged so CI targets are unaffected.\n\nFor the split to be precise, remote/webdriver.py previously imported these\nmodules at the top level, which would have re-added them to every test\u0027s\ndep graph via //py:remote. Three changes remove this:\n  - from __future__ import annotations makes all type annotations lazy\n    strings, so no runtime import is needed for parameter/return types.\n  - The four methods that instantiate these types (timeouts property,\n    request property, dialog property, get_credentials) now lazy-import\n    inside the method body.\n  - The required_virtual_authenticator and required_chromium_based_browser\n    decorators are inlined in remote/webdriver.py (they were only used\n    there; the 10-line definition removes the top-level dep).\n\nResult: changing timeouts.py now only rebuilds ~11 test targets\n(timeout_tests × browser variants) instead of ~700.\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e4eac88dbdda194694c73679759b75af231ae869\n"
    },
    {
      "commit": "3857ba6dc5ff76354a55256e4cd82df0c3321b6b",
      "tree": "e637c6927c954239ea1fb3e83240a6c51ca933bd",
      "parents": [
        "b3762edc33d3a03fd0a15f95d48127a1d647016d"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Jun 01 11:15:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 14:43:43 2026"
      },
      "message": "[py] Extract actions subpackage into //py:common_actions (#17605)\n\nThe actions subpackage (action_chains.py + actions/**) was part of the\nmonolithic //py:common library. Every browser test depended on //py:common,\nso changing any file in actions/ triggered a full rebuild of all ~700 test\ntargets across all browser/OS combinations.\n\nOnly 4 test files actually import from actions:\n  - interactions_tests.py\n  - interactions_with_device_tests.py\n  - w3c_interaction_tests.py\n  - event_firing_webdriver_tests.py\n\nThis change:\n- Adds //py:common_actions containing action_chains.py and actions/**\n- Removes those files from //py:common so the dep graph is precise\n- Splits each browser test suite into a -common variant (no actions dep) and\n  an -actions variant (deps on :common_actions only)\n- Restores the original suite names (test-chrome, test-chrome-bidi, etc.) as\n  test_suite aggregates so CI targets are unchanged\n- Preserves existing individual test names (alerts_tests-chrome unchanged;\n  actions tests now carry -actions suffix e.g. interactions_tests-chrome-actions)\n- Adds test_suffix param to py_test_suite to allow explicit override of the\n  auto-computed suffix when a suite is renamed without changing test IDs\n\nResult: changing action_chains.py or any file in actions/ now only rebuilds\nthe ~4 test files × browser variants (~44 targets) instead of all ~700.\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: fac19424b0125c611f55c028610bf914504ab203\n"
    },
    {
      "commit": "b3762edc33d3a03fd0a15f95d48127a1d647016d",
      "tree": "e7bb86188962415aa43bb7b22ac98f24fa326829",
      "parents": [
        "d68c0690d434bbf3d379f7b7adea4f072642c042"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Jun 01 08:46:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 14:43:39 2026"
      },
      "message": "[py] Scope py_test_suite shared library to support files only (#17600)\n\nPreviously py_test_suite() bundled all srcs (test files and support files)\ninto one shared library, and every individual pytest_test depended on it.\nChanging any one test file dirtied the whole library and triggered a rebuild\nof all tests in the suite across all browser variants (~300+ targets for a\nsingle-file change).\n\nNow the shared library only contains non-test support files (helpers, utils,\n__init__.py, conftest). Each pytest_test still depends on that library for\nshared support code, but test files are no longer included in it. A change\nto alerts_tests.py now only rebuilds the alerts_tests-* targets instead of\nthe full suite.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 6a6846609c11d182aa46c18601e09fa043a1d94f\n"
    },
    {
      "commit": "d68c0690d434bbf3d379f7b7adea4f072642c042",
      "tree": "adfe7850093a1f57a89a5a749a7aa78f55d44ba7",
      "parents": [
        "4aeb311c1deb6fd0a047726f386be3c589f49652"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Jun 01 02:21:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 02:23:11 2026"
      },
      "message": "[build] allow ruby and python to run remote tests on windows (#17603)\n\n[rb][py] resolve runfiles JDK realpath on Windows to avoid lib\\modules symlink bug\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b02c5f224ea6ac1c4cf0ee8d19f7a92bc92a9766\n"
    },
    {
      "commit": "4aeb311c1deb6fd0a047726f386be3c589f49652",
      "tree": "308a95ef4381323f76671315c2b3893d1688a5ed",
      "parents": [
        "1b106542c72751e9b011282315525dbfa918b461"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Fri May 29 11:49:04 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 20:35:41 2026"
      },
      "message": "[py] Improve ruff linting DX and CI speed (#17588)\n\n- Unify ruff_check.py + ruff_format.py into a single ruff.py that\n  accepts check/format/both modes; eliminates duplicated dirs, excludes,\n  and config references. Adds //py:ruff target for running both at once.\n- Fix --exit-non-zero-on-fix footgun: ruff_check now exits 0 when all\n  issues are auto-fixed. CI verification mode uses --no-fix explicitly.\n- Add ruff check to scripts/format.sh (always, not just with --lint),\n  resolving the ruff binary once via --run_under\u003decho to halve Bazel\n  startup overhead. Auto-fixable lint issues are now committed by the\n  CI bot alongside formatting fixes.\n- Update py:lint to use --no-fix (pure verification, no side effects).\n- Split ci-python.yml lint job into parallel lint-ruff / lint-mypy /\n  lint-docs jobs so mypy does not block ruff feedback.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 29635350e9fd6a56e1f1d6ff823e57e1d86b0b27\n"
    },
    {
      "commit": "1b106542c72751e9b011282315525dbfa918b461",
      "tree": "e3ced96757320c2a7a887b4bf305b0926203e23e",
      "parents": [
        "e82b0ba53fc499ecdc99bc074a632cfe055e110d"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu May 28 14:18:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 15:00:29 2026"
      },
      "message": "[py] Handle Data URLs when doing .continue_request() (#17583)\n\n* [py] Handle Data URLs when doing .continue_request(). Fixes #16279\n\n* [py] Remove xfail marks from data URL network test\n\nThe xfail marks were added when continue_request() would throw for\ndata: URLs. Now that continue_request() silently skips data: URLs,\nthe test should pass in all browsers that fire network.beforeRequestSent\nfor data URL sub-resources.\n\n* Fix the other linting way\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3c94e5c1796c5132bd34638d77f9a79cd373fe65\n"
    },
    {
      "commit": "e82b0ba53fc499ecdc99bc074a632cfe055e110d",
      "tree": "3cba3e245c6724c84a793e9c961b325341d8ae0d",
      "parents": [
        "5e40a38aa3c375755f8e9d1750da5057d5a2b15b"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Wed May 27 17:26:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 17:55:31 2026"
      },
      "message": "[py] Allow MAX_WS_MESSAGE_SIZE to be configurable (#17581)\n\nfixes #16546\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 4749fd62fcdf8725719956a6707bc00745eef62a\n"
    },
    {
      "commit": "5e40a38aa3c375755f8e9d1750da5057d5a2b15b",
      "tree": "5aad03bf72ee6414694f5c665effc9aa1e448852",
      "parents": [
        "0bc6ee46037b3d26a4d111ebd0cf349c9ce528a4"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon May 25 02:14:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 25 02:21:13 2026"
      },
      "message": "[build] Use target_compatible_with to gate IE/Safari tests  (#17566)\n\n[build] Use target_compatible_with to gate IE/Safari tests\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 17168d50ef08fde5db91984ffbd5420fa20645a5\n"
    },
    {
      "commit": "0bc6ee46037b3d26a4d111ebd0cf349c9ce528a4",
      "tree": "193ba4e3ca758d9bb15e9da0f16a8139afa3f5b1",
      "parents": [
        "97a0194a96975c588a382ccbfac3ca40aac7adaa"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sun May 24 11:10:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun May 24 11:17:39 2026"
      },
      "message": "[py] mark Safari tests broken by SafariDriver 26.5 as xfail (#17560)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9d4ef39c30a82c7e56864bb37a7f52032faef0e2\n"
    },
    {
      "commit": "97a0194a96975c588a382ccbfac3ca40aac7adaa",
      "tree": "1fbbe5980c86b2d59350d59bae3faa0c61088e10",
      "parents": [
        "2016416c51b15fc1e66854f1178e17253c9f8fb6"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sat May 23 14:15:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 23 17:26:25 2026"
      },
      "message": "[build] do not create targets for IE for browser tests (#17548)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5b65356f6dc57123d03d9767d547b07ae90ab3a4\n"
    },
    {
      "commit": "2016416c51b15fc1e66854f1178e17253c9f8fb6",
      "tree": "76f14cd0c363d8b9c0303a38238ffede7afa43c7",
      "parents": [
        "6bd084dcf227c12cc7f5e3ed54977e17160a737b"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue May 19 01:41:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 01:47:39 2026"
      },
      "message": "[py] update python dependencies (#17490)\n\n* [py] update python dependencies\n\n* move tox requirements inline\n\n* bump multitool versions as well for parity\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 4fea2dd7d59fcfad74add404b268f45bf8ab95d6\n"
    },
    {
      "commit": "6bd084dcf227c12cc7f5e3ed54977e17160a737b",
      "tree": "316288f320d1038a7538a515a00bc327be66d4a8",
      "parents": [
        "d3432e3d3c8c585d3e99a7a86d2edf7219233aee"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri May 15 13:44:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 15 13:50:08 2026"
      },
      "message": "[py] replace rules_python sphinxdocs with local sphinx_docs rule (#17461)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7a6f869c22795caa57c6d22b2aade94018212e99\n"
    },
    {
      "commit": "d3432e3d3c8c585d3e99a7a86d2edf7219233aee",
      "tree": "9a465d39f745ef7f7e4e96b4e45934fb9bc19a85",
      "parents": [
        "56b77b271fee69c75b91aed16a465d80f311a042"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu May 14 16:56:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 14 19:20:12 2026"
      },
      "message": "[javascript] Migrate find-elements atom from Closure to TypeScript (#17458)\n\n* [javascript] Migrate find-elements atom from Closure to TypeScript\n\nReplace the Google Closure `bot.locators.findElements` fragment with a\nself-contained TypeScript implementation, following the same pattern\nused for `get-attribute` and `is-displayed`.\n\nNew files:\n- javascript/atoms/typescript/find-elements.ts — IIFE implementing all\n  locator strategies: css selector, id, class name, tag name, link text,\n  partial link text, name, xpath, and the full relative locator\n  (above/below/left/right/near and straight-* variants with proximity sort)\n- javascript/atoms/typescript/wrap-find-elements-as-global.js — wraps\n  compiled output as window.bot.locators.typescript.findElements\n- javascript/atoms/test/find_elements_typescript_test.html — QUnit browser\n  tests covering all strategies (18 tests)\n\nBuild changes:\n- javascript/atoms/BUILD.bazel: add tsc compile, strip-semicolon, and\n  global-wrap targets; include find-elements-global in atoms filegroup\n- javascript/atoms/fragments/BUILD.bazel: add copy_file target\n  find-elements-typescript with same visibility as the old closure fragment\n- py/BUILD.bazel: switch find-elements src to the TypeScript-generated file\n\nThe relative_by_tests-chrome-bidi integration tests pass with the new\nimplementation.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d9cc9ea2f659a8f7a72ff054ed40edb13405d575\n"
    },
    {
      "commit": "56b77b271fee69c75b91aed16a465d80f311a042",
      "tree": "44969c03656fb417d52cf2b374e29e6efd560bb2",
      "parents": [
        "bac97fd3d2682eb86e512b385874cae6efe1bf77"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Thu May 14 15:41:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 14 19:20:08 2026"
      },
      "message": "Use pyproject for Python runtime deps lock input (#17452)\n\n* Use pyproject for Python runtime deps lock input\n\n* Install dependencies from lock file in tox.ini and rtd\n\n---------\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: aa48885e80d18be10c3fdad2ec2b1da1504bb318\n"
    },
    {
      "commit": "bac97fd3d2682eb86e512b385874cae6efe1bf77",
      "tree": "2b1eb6a6e436f2c5f2f3396727ae5ca879824a4f",
      "parents": [
        "535d2b890eefe2d1e5767d89b3d513195689ae68"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu May 14 10:33:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 14 10:39:29 2026"
      },
      "message": "[JavaScript] Correct handling for older browsers and missing casing (#17451)\n\nThis brings back IE11 support and fixes the case where there is className\n\nFixes #17448 and #17447\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: eea0c6c328d3e19f8691c81e4b0bda67d87e862a\n"
    },
    {
      "commit": "535d2b890eefe2d1e5767d89b3d513195689ae68",
      "tree": "d5fe3517032a2700e2f869b75cee63506bf3d278",
      "parents": [
        "854e45925612fcd9e773d65454b445fde45e2f22"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Tue May 12 23:54:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 00:32:08 2026"
      },
      "message": "[build] Reset versions to nightly after selenium-4.44.0 release\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c471271c15f72519b148a49d6b432a8f7a496361\n"
    },
    {
      "commit": "854e45925612fcd9e773d65454b445fde45e2f22",
      "tree": "07fe91b95ef9fa23ceeb1251e4cbcc4fdeeb946a",
      "parents": [
        "e6d7b3baa04c5e951ac85c722be2cfc025693bcc"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Tue May 12 20:49:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 00:32:03 2026"
      },
      "message": "[build] Prepare for release of selenium-4.44.0 (#17444)\n\n* bump versions\n\n* update devtools versions\n\n* update dependencies\n\n* changelogs updated\n\n* rust changelogs updated\n\n* update pinned browser versions\n\n* update selenium manager versions\n\n* update authors file\n\n* fix Java CDP clobbering input\n\n* fix rust version mismatch\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\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: da2039bd1456a161d0c284de16f9f4f179f1e8ca\n"
    },
    {
      "commit": "e6d7b3baa04c5e951ac85c722be2cfc025693bcc",
      "tree": "651d248946c7ccaddc309416f3be5c8b00b3e85a",
      "parents": [
        "6c3071412c5f8c19a469e922fde3607b4e4e889a"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon May 11 16:58:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 22:32:34 2026"
      },
      "message": "[JavaScript] Move \u0027isDisplayed\u0027 atom to be typescript (#17316)\n\n Move isDisplayed atom to typescript\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: dfcc86ead1ad4b8291cc89e139f5e25fa011a475\n"
    },
    {
      "commit": "6c3071412c5f8c19a469e922fde3607b4e4e889a",
      "tree": "c0c34ddcbff3350282f2f148d5533f47b5d8b269",
      "parents": [
        "5268da235d055c2cec6996c068f373c1c16026a3"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon May 11 10:08:50 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 22:32:29 2026"
      },
      "message": "[js][py] Convert getAttribute atom from Closure to TypeScript (#17370)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: cc26ec89c1bdd4a63cd994d5b185c5d169652858\n"
    },
    {
      "commit": "5268da235d055c2cec6996c068f373c1c16026a3",
      "tree": "5a2193b676cd0a91af20e3ccab9815e4017b5bf2",
      "parents": [
        "88d52ad2a57ab8201993c282cf53b4efe98bbb2b"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Mon May 11 00:34:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 00:40:40 2026"
      },
      "message": "[py] Update dev dependencies and fix type annotation (#17434)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: bcdd878d78db59ad1543e4a0db184f06fa6ef9fe\n"
    },
    {
      "commit": "88d52ad2a57ab8201993c282cf53b4efe98bbb2b",
      "tree": "5ae5ae4b18581f707d5b829d180fbee9c0f2c65e",
      "parents": [
        "1efcffae1ad3e9841f2524e26ff77b6de3455627"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Sun May 10 23:59:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 00:40:35 2026"
      },
      "message": "[py] fix linting and mypy to properly exclude generated bidi files (#17433)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7cd554da7c01dde68c7d77b155db30cc109ee201\n"
    },
    {
      "commit": "1efcffae1ad3e9841f2524e26ff77b6de3455627",
      "tree": "74687565427130f1bd9d7100064246aece2427a4",
      "parents": [
        "9856e8b37e25eb02cc406a3c8d68523f67295d17"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu May 07 14:27:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 14:32:18 2026"
      },
      "message": "[py] Improve docstrings in generated BiDi modules (#17392)\n\nAdd three new manifest keys to the generator so end users get meaningful\nhelp() output and IDE hover docs for the new BiDi modules:\n\n- module_docstring: file-level triple-quoted string after imports\n- class_docstrings: per-class docstring override (dataclasses and enums)\n- command_docstrings: per-command method docstring override\n\nContinuation lines are automatically re-indented to match the enclosing\nblock depth (4 spaces for class body, 8 for method body). Fallback\ndocstrings (class name only) retain the trailing period they had before.\n\nPopulate content for all four new modules:\n- permissions: module doc, PermissionState and Permissions class docs\n- bluetooth: module doc, 6 key dataclass docs, 13 command method docs\n- speculation: module doc, PreloadingStatus and PrefetchStatusUpdatedParameters docs\n- userAgentClientHints: module doc, ClientHintsMetadata and BrandVersion docs\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: fd30100d3960b678d14e9db904b97bc75423632a\n"
    },
    {
      "commit": "9856e8b37e25eb02cc406a3c8d68523f67295d17",
      "tree": "96fa250688a1c92333b6791472f427fa4a857681",
      "parents": [
        "7ad11d80aa15e70cdb1813a7506880c86aa27d43"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Tue May 05 13:38:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 13:44:48 2026"
      },
      "message": "[py] Add edge service arg to inherit browser i/o streams (#17415)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: ca9b2449d23049fccc60163b61b716890a617975\n"
    },
    {
      "commit": "7ad11d80aa15e70cdb1813a7506880c86aa27d43",
      "tree": "97fbd029d6a1e2fe1f634b98e54e19f1e8cd6de7",
      "parents": [
        "5a1d1080273a7b421a1babd202bdddb2bc5852da"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Apr 27 12:03:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 29 01:15:57 2026"
      },
      "message": "[py] Implement high level APIs for script (#17371)\n\nThis is finishing the python part of #13992. It adds DOM Mutation\nand sets the CDP version to be deprecated as part of the longer term\nmove towards Webdriver-Bidi.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0275fbd7d14fb88fc53c0b3483c639934cff7e4c\n"
    },
    {
      "commit": "5a1d1080273a7b421a1babd202bdddb2bc5852da",
      "tree": "4b3dbceadd7768c96616700f20c6c23c1a41ba5f",
      "parents": [
        "dbe06efde95d91fb28fe588437aa7743eab725f1"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Apr 27 08:53:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 29 01:15:49 2026"
      },
      "message": "[py] extend create-bidi-src with full set of BiDi-adjacent CDDL Specs (#17378)\n\nInclude permissions, prefetch (speculation), ua-client-hints, and\nweb-bluetooth all.cddl files from the webref_cddl_extension added in\n#17372. This gives end users the complete set of BiDi-adjacent modules\ngenerated from the W3C spec:\n\nNew modules: bluetooth, speculation, user_agent_client_hints\nAT Driver (interaction, settings) excluded for now — can be added\nwhen ready by including @at_driver_all_cddl and declaring those modules.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b95cd1f59ffcde0ec642a0bd10ce8ec2e776d38b\n"
    },
    {
      "commit": "dbe06efde95d91fb28fe588437aa7743eab725f1",
      "tree": "03cbf9d533910f68a210c3cf22a075b332b479aa",
      "parents": [
        "d326ac69319ee0d74af975cfb47a528ba0fc760a"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Fri Apr 24 16:29:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 25 01:05:03 2026"
      },
      "message": "[py] Fix race condition in WebSocketConnection.execute() causing KeyError (#17381)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7135a457e1d257fd96a7c9dbfa69c2cce999045f\n"
    },
    {
      "commit": "d326ac69319ee0d74af975cfb47a528ba0fc760a",
      "tree": "696d4bc4b87ef76d34083ad5799026d202a85f45",
      "parents": [
        "501d98cd6032346a122de510b5606d4d4bbeaf97"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu Apr 23 15:36:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 24 01:23:11 2026"
      },
      "message": "[spec] Use http_file in bazel for the cddl files (#17372)\n\n*\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0963d3e9111c8fc234a2e807cfd16bc2a619ee1d\n"
    },
    {
      "commit": "501d98cd6032346a122de510b5606d4d4bbeaf97",
      "tree": "270482d47777fd971982b7117a3913343361d915",
      "parents": [
        "851db96c2dcf1780eb2ed9eaf21f1c08ef8418db"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Wed Apr 22 02:43:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 02:49:07 2026"
      },
      "message": "[py] Bump dependencies (#17368)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5773a5d743655c952b1185a562b749806eeb14a7\n"
    },
    {
      "commit": "851db96c2dcf1780eb2ed9eaf21f1c08ef8418db",
      "tree": "cfccd5f537d9cdf781154a422d559be3722254e8",
      "parents": [
        "15b7358260d137e98883617e7d753e4914556187"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Tue Apr 21 14:51:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 02:49:00 2026"
      },
      "message": "[Agents] Update agents to make sure do linting. (#17366)\n\n* [Agents] Update agents to make sure do linting.\n\nAgents have a bad habit of doing things which don\u0027t align with our\nformatting rules. This change updates the agents to make sure they\nfollow the rules and as added extra run `./go format` as that will\nclean up.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 31ee1221d6cae9f6e5e686ae5a0258d6e4bd6dfc\n"
    },
    {
      "commit": "15b7358260d137e98883617e7d753e4914556187",
      "tree": "26124c096d2233fb0f030ca20f8bfb851109729b",
      "parents": [
        "99211c15b62d26eb4db416da9ccee2332df1ff5f"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Apr 20 14:01:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 20 16:40:16 2026"
      },
      "message": "[py] Use generated Bidi files instead of hand curated ones (#17266)\n\n---------\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a75eb73e6118e63c200c4d74b2df92c816580668\n"
    },
    {
      "commit": "99211c15b62d26eb4db416da9ccee2332df1ff5f",
      "tree": "de6a4d6f71b9453ef3ba424c366361cc4a375a9f",
      "parents": [
        "1c2abf0a563f292d0f6757aef2ce317c400d7038"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Wed Apr 15 16:22:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 15 20:02:05 2026"
      },
      "message": "[py] Update docs with pytest example and minor formatting fixes (#17351)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: dcac28a27237d374e5e00e81b8220a5fe30eeba0\n"
    },
    {
      "commit": "1c2abf0a563f292d0f6757aef2ce317c400d7038",
      "tree": "b489fc61af7919ad3192397da281811a14102a6a",
      "parents": [
        "2557e8127d56acbc819d1ac2348cdb10ec2ab943"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Mon Apr 13 13:32:26 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 13 17:04:02 2026"
      },
      "message": "[py] CDDL 2 Python generator (#16914)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 002338167bf028e37a404431187b2efd884268a3\n"
    },
    {
      "commit": "2557e8127d56acbc819d1ac2348cdb10ec2ab943",
      "tree": "071a96938e5f232243e7d72c564c8635c716b8fd",
      "parents": [
        "4c6500657a8ed26139f19510828b6311bece6977"
      ],
      "author": {
        "name": "Diego Molina",
        "email": "diemol@gmail.com",
        "time": "Fri Apr 10 08:19:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 10 08:34:14 2026"
      },
      "message": "Bumping versions to nightly\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c95fe73785ef05cb25e40089cca34ad1ddd72c61\n"
    },
    {
      "commit": "4c6500657a8ed26139f19510828b6311bece6977",
      "tree": "4b59ba135bf310fb114f1ee45ba0c1674287d8b9",
      "parents": [
        "8b1071baacb2fa919e0ab85ce9c3a3b8ca7747b0"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Fri Apr 10 06:43:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 10 06:49:27 2026"
      },
      "message": "[build] Prepare for release of selenium-4.43.0 (#17329)\n\n* bump versions\n\n* update devtools versions\n\n* update dependencies\n\n* changelogs updated\n\n* rust changelogs updated\n\n* update selenium manager versions\n\n* update multitool binaries\n\n* #17274: Apply filtering only on merged capabilities (#17284)\n\n* Apply filtering only on merged capabilities\n* Fix lint\n\n---------\n\nCo-authored-by: Viet Nguyen Duc \u003cnguyenducviet4496@gmail.com\u003e\n\n---------\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: bhecquet \u003cbhecquet@users.noreply.github.com\u003e\nCo-authored-by: Viet Nguyen Duc \u003cnguyenducviet4496@gmail.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: dd0f5342f342c9583b2dde8e1619d6babc612ea0\n"
    },
    {
      "commit": "8b1071baacb2fa919e0ab85ce9c3a3b8ca7747b0",
      "tree": "65fd66cec25fafcfa757e29a24e79026707bfcca",
      "parents": [
        "4da248d7be56045dfd2594e5855cb5b5394a4eb8"
      ],
      "author": {
        "name": "Diego Molina",
        "email": "diemol@gmail.com",
        "time": "Thu Apr 09 13:43:43 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 09 15:12:32 2026"
      },
      "message": "Bumping versions to nightly\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: cb536ad6844b3c159901d898de79832d5fd5d20f\n"
    },
    {
      "commit": "4da248d7be56045dfd2594e5855cb5b5394a4eb8",
      "tree": "a1808a03b24ec8e06c5e6c1be8a1e404ce136c14",
      "parents": [
        "a48ac4c9681483e077b6e7dbf6d4aa6bcd6b3547"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Thu Apr 09 06:32:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 09 15:12:25 2026"
      },
      "message": "[build] Prepare for release of selenium-4.42.0 (#17322)\n\n* bump versions\n\n* update devtools versions\n\n* update dependencies\n\n* changelogs updated\n\n* rust changelogs updated\n\n* update pinned browser versions\n\n* update selenium manager versions\n\n* update authors file\n\n* refactor(response): simplify header extraction and improve hash construction\n\nMaking linter happy\n\n---------\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nCo-authored-by: Diego Molina \u003cdiemol@gmail.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 74c7f0249ab2a3013bcb06b8695122274872be7f\n"
    },
    {
      "commit": "a48ac4c9681483e077b6e7dbf6d4aa6bcd6b3547",
      "tree": "09ecda77db3b9e8faf4e2b5215b05c9545e604ae",
      "parents": [
        "f8e0e19af1662a8939a7f969bc36e2edc325ca34"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Wed Apr 08 15:15:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 08 15:55:17 2026"
      },
      "message": "[py] Update dev dependencies and multitool binaries (#17314)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7beae82d3e1fbdcb30eb5165f8f4726a83c0fd26\n"
    },
    {
      "commit": "f8e0e19af1662a8939a7f969bc36e2edc325ca34",
      "tree": "3e2845193d26ee93e82af8452bfacde6e74d7c16",
      "parents": [
        "67ff8de6d4691300bd6ec7089556cb1e61f0baf1"
      ],
      "author": {
        "name": "mayank-at-sauce",
        "email": "mayank.bhandari@saucelabs.com",
        "time": "Sat Apr 04 16:12:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 04 16:18:49 2026"
      },
      "message": "[py] Add APIRequestContext to make requests with browser auth/cookie state (#17228)\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e2d3e8f092acb6d6cc7d9aab83a976a760d479bd\n"
    },
    {
      "commit": "67ff8de6d4691300bd6ec7089556cb1e61f0baf1",
      "tree": "06d3e431a086ac9eed2b8041931414fd9eb6fc12",
      "parents": [
        "93eba1f18c6bb6092ebfbbade38f45c548b4680f"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Mon Mar 30 14:07:26 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 30 14:13:12 2026"
      },
      "message": "[py] Bump python dev dependencies (#17273)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d8fe629eec05f31dd498ac49c2ddde02be2b9f10\n"
    },
    {
      "commit": "93eba1f18c6bb6092ebfbbade38f45c548b4680f",
      "tree": "1e69116b160dc710f1859e2ea56bce7415296a01",
      "parents": [
        "1b7ad101d691f18f16ca1b2f801534ece9d4f4fc"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Sun Mar 29 20:45:13 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Mar 29 20:51:20 2026"
      },
      "message": "[py] Improve Selenium Manager platform/architecture detection (#17271)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 16c046a0a642281d0c03ab7554faf11b9e499adb\n"
    },
    {
      "commit": "1b7ad101d691f18f16ca1b2f801534ece9d4f4fc",
      "tree": "fb6271c22caa564d61a7838c3a226474116d906d",
      "parents": [
        "02f687fd88e17713b7d8602e2a80eda2e8a896a5"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Thu Mar 19 18:49:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Mar 21 00:54:43 2026"
      },
      "message": "[py][build] Bump dev dependencies and toolchain (#17241)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 6e3625b180bd8a3ef95df32ee44befd715568dc6\n"
    },
    {
      "commit": "02f687fd88e17713b7d8602e2a80eda2e8a896a5",
      "tree": "acd0f3c1ebed3a9764b4f43254a71b9fb6b32678",
      "parents": [
        "5d8a2ee96154c2512d31db17e661e80db704e519"
      ],
      "author": {
        "name": "Simon Mavi Stewart",
        "email": "simon.m.stewart@gmail.com",
        "time": "Wed Mar 18 03:17:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 18 11:06:13 2026"
      },
      "message": "[bazel] Update to Bazel 9 (#16757)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b1a7b8de7bf8c9889627914888adee44c01f925a\n"
    },
    {
      "commit": "5d8a2ee96154c2512d31db17e661e80db704e519",
      "tree": "0c73b5e1b5f93153917ef33caacccec71a632b40",
      "parents": [
        "289421be1d4a8d5af0f343bcc91f989e60fbad73"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Wed Mar 18 01:14:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 18 01:19:53 2026"
      },
      "message": "[py] Generate module for importing latest devtools (#17133)\n\nNew `selenium.webdriver.common.devtools.latest` module is generated with the build.\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8c0f689bc056462497329241ba84d898804e9456\n"
    },
    {
      "commit": "289421be1d4a8d5af0f343bcc91f989e60fbad73",
      "tree": "7ba6a7004dfe8d5b7a786c44e5f218efa2e69bcc",
      "parents": [
        "68b3b46e7231f7d6a3a3c4552bc88809044286ba"
      ],
      "author": {
        "name": "Navin Chandra",
        "email": "navinchandra772@gmail.com",
        "time": "Fri Mar 13 16:45:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Mar 14 00:54:06 2026"
      },
      "message": "[py][bidi]: skip `test_perform_actions_pointer_pen_type` for firefox (#17203)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7cebc1065fd21fb3cd2613ab94600eb69e019e6f\n"
    },
    {
      "commit": "68b3b46e7231f7d6a3a3c4552bc88809044286ba",
      "tree": "f8e2dd59bf0a484382b0b2264430a0fe6b47ca4e",
      "parents": [
        "23158291bebaabefbf59bd1a53e9ac2188b085fb"
      ],
      "author": {
        "name": "Jitendra Singh2",
        "email": "138148209+jit3pam@users.noreply.github.com",
        "time": "Thu Mar 12 16:05:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 12 16:11:58 2026"
      },
      "message": "[py] Do not close externally provided log_output streams (#17204)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1dc4a61843346508c0464bab596b867e7e389966\n"
    },
    {
      "commit": "23158291bebaabefbf59bd1a53e9ac2188b085fb",
      "tree": "6a2fdd3e3c8b1929a771d3cc57667e80bb4b26b1",
      "parents": [
        "8a1f1c4215ebaf94ecd1de70a61f35df69e0970c"
      ],
      "author": {
        "name": "Viet Nguyen Duc",
        "email": "nguyenducviet4496@gmail.com",
        "time": "Wed Mar 11 05:22:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 11 12:50:39 2026"
      },
      "message": "[build] Fix Lint Format CI (#17202)\n\nSigned-off-by: Viet Nguyen Duc \u003cnguyenducviet4496@gmail.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c9cfcf888c0bf1021bd71da029301fedda71f6a9\n"
    },
    {
      "commit": "8a1f1c4215ebaf94ecd1de70a61f35df69e0970c",
      "tree": "47d8e2d87b8f8b6dfdd24448a06ebc2f56aec407",
      "parents": [
        "3a82e728f0b7ea25cf9c65465df1cafd31a73570"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Tue Mar 10 18:05:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 10 20:24:32 2026"
      },
      "message": "[py] Bidi py tests expansion (#17193)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 96aa99dea9dd3bcee573a59af5490c5d9e3a0ee4\n"
    },
    {
      "commit": "3a82e728f0b7ea25cf9c65465df1cafd31a73570",
      "tree": "eaedf71f9315d9170e882fd995bbf3375d3a5db0",
      "parents": [
        "c21a70556aeb380683782836a9b00c2e7e4776c9"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Sun Mar 08 18:53:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Mar 08 18:58:58 2026"
      },
      "message": "[py] Add type stubs for lazy imported classes and modules (#17165)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 168378778de52a6a4d8a8bee8b85e494ce34a7ff\n"
    },
    {
      "commit": "c21a70556aeb380683782836a9b00c2e7e4776c9",
      "tree": "09e75e5b3d5a824103b93425b0c6e201e7893054",
      "parents": [
        "76fd912b11193fd24a42ea3d2fd502fb696c2828"
      ],
      "author": {
        "name": "pinterior",
        "email": "pinterior@users.noreply.github.com",
        "time": "Tue Mar 03 14:33:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 04 01:23:27 2026"
      },
      "message": "[py] Use Self as return type of __enter__ in remote.WebDriver (#17170)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5eb3fe1f78bf25d73bf5b4223c37046016d4e3c9\n"
    },
    {
      "commit": "76fd912b11193fd24a42ea3d2fd502fb696c2828",
      "tree": "6bda1bcc56bc47222b52e35eec3ea69def376928",
      "parents": [
        "555f9cd59e74161248f6411e6668bb1218507e96"
      ],
      "author": {
        "name": "Adam Dangoor",
        "email": "adamdangoor@gmail.com",
        "time": "Sun Feb 22 14:23:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Feb 22 14:30:12 2026"
      },
      "message": "[py] Add return type annotation to execute_script and execute_async_script (#17117)\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e54d3e73583f90aa65600d8da7e112ba8e2053bd\n"
    },
    {
      "commit": "555f9cd59e74161248f6411e6668bb1218507e96",
      "tree": "9f802da40481fc3ca7592aaa416fe763e502583f",
      "parents": [
        "d7c1efaa2c985818648c6487b61687ba02df17ca"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Feb 20 03:51:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 20 12:20:32 2026"
      },
      "message": "[build] Reset versions to nightly after 4.41.0 release\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 6865ab35c046158e62986b0217e39d01a73d17a4\n"
    },
    {
      "commit": "d7c1efaa2c985818648c6487b61687ba02df17ca",
      "tree": "5376c60d1ed800024ade4a43e99ff9df44a5a826",
      "parents": [
        "baa202dfdd8999a15bcd7b43ccc9db88c9023c06"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Fri Feb 20 02:44:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 20 02:49:46 2026"
      },
      "message": "[build] Prepare for release of selenium-4.41.0 (#17098)\n\n* bump versions\n\n* update devtools versions\n\n* update dependencies\n\n* changelogs updated\n\n* update pinned browser versions\n\n* update selenium manager versions\n\n* update multitool binaries\n\n* update authors file\n\n* ensure browser downloadable\n\n* fix changelogs\n\n* restore AUTHORS file\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\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9fc754f90a9725756933b8a1788d5a583d7f509f\n"
    },
    {
      "commit": "baa202dfdd8999a15bcd7b43ccc9db88c9023c06",
      "tree": "d70fcf1ee55c3a6397750ee8741efba0eb976f41",
      "parents": [
        "7858dedf88e633e71c4bb14a331b2301f7fa8042"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Thu Feb 19 16:03:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Feb 19 17:29:28 2026"
      },
      "message": "[py] Update test to check it\u0027s an integer rather than a value (#17114)\n\nOn 2nd monitors if tests run on the secondary monitor and it is left of the primary monitor x and y will return negative which is allowed. This will also handle tests running on a different desktop which is supported but undefined in the spec\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: aac9a2825271b5fef96aa3b0c7b4792b76a46e62\n"
    },
    {
      "commit": "7858dedf88e633e71c4bb14a331b2301f7fa8042",
      "tree": "e477d281c66d1863839bb1d1f7ab5ac70877da25",
      "parents": [
        "d20ea0b26b68f15a41b62213d57f93194b563b64"
      ],
      "author": {
        "name": "David Burns",
        "email": "david.burns@theautomatedtester.co.uk",
        "time": "Wed Feb 18 19:58:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 18 20:04:33 2026"
      },
      "message": "[py] Add in rules to agents around python 3.10+ (#17102)\n\n* [py] Add in rules to agents around python 3.10+\n\nThis tells the agent to favour union types instead of notation. Also telling it to explicitly check the python version locally when running things in the terminal\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: ab138ab0728231ab12c1a39bdaf5349d212c2bc4\n"
    },
    {
      "commit": "d20ea0b26b68f15a41b62213d57f93194b563b64",
      "tree": "1648c1cd026fa3aa497aebc2722198f74ed93ba6",
      "parents": [
        "f9313ec4675ec5896d2bb7275f2294bf1b95d437"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Wed Feb 11 13:33:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Feb 12 01:00:43 2026"
      },
      "message": "[py] Update dev dependencies to fix vulnerability (#17078)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3af4983a72cd8168001ec05c7638f1ac32260eff\n"
    },
    {
      "commit": "f9313ec4675ec5896d2bb7275f2294bf1b95d437",
      "tree": "17b04f1e0d111228d8fc555833b44e9da6853756",
      "parents": [
        "d1ad3b01195ee5f4c10a033a4867803f55e477af"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Mon Feb 09 19:32:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 09 20:54:57 2026"
      },
      "message": "[py] Bump dev dependencies (#17066)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 179a5812d53ca20fd3ebbdbc019ab24c0af95e1c\n"
    },
    {
      "commit": "d1ad3b01195ee5f4c10a033a4867803f55e477af",
      "tree": "e5a41b938a11bdc7b7511aa08acfe7fe636268ab",
      "parents": [
        "ad0d6449c96cf341462c5cb42ca0a195fc6dc6cf"
      ],
      "author": {
        "name": "Navin Chandra",
        "email": "navinchandra772@gmail.com",
        "time": "Tue Feb 03 10:14:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 03 17:21:54 2026"
      },
      "message": "[py]: enable edge browser tests for bidi (#17032)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3334f0fd26025d51919292712bcda64a7edf5859\n"
    },
    {
      "commit": "ad0d6449c96cf341462c5cb42ca0a195fc6dc6cf",
      "tree": "312b75edca2124c85faf332290f1215a70f7f4d0",
      "parents": [
        "0b1571675bfd0cb3550dc7b04a28be38a72b0b0a"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Mon Feb 02 17:46:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 02 18:02:20 2026"
      },
      "message": "[py] Autofix lint errors but still fail (#17042)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 492d46208130f0717d853fb9464afb290d77a992\n"
    },
    {
      "commit": "0b1571675bfd0cb3550dc7b04a28be38a72b0b0a",
      "tree": "714c6275507cc99ba80b315f6c0dd59c7bfc4586",
      "parents": [
        "0d6a162067b08c71e7a5058144ff433b42f37777"
      ],
      "author": {
        "name": "Navin Chandra",
        "email": "navinchandra772@gmail.com",
        "time": "Mon Feb 02 07:16:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 02 07:58:50 2026"
      },
      "message": "[py][bidi]: add emulation command `set_screen_settings_override` (#17030)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 923eb533fd7428d6af0ba4d88f15ca664dab24f8\n"
    },
    {
      "commit": "0d6a162067b08c71e7a5058144ff433b42f37777",
      "tree": "d8fa4585eefa89792f9efff9a2c837d5e89f92ef",
      "parents": [
        "e5f55511c99970478e9b202e7762fbce2998d180"
      ],
      "author": {
        "name": "Viet Nguyen Duc",
        "email": "nguyenducviet4496@gmail.com",
        "time": "Mon Feb 02 01:16:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 02 01:23:05 2026"
      },
      "message": "[grid] Add session event API for server-side event bus integration (#17015)\n\nSigned-off-by: Viet Nguyen Duc \u003cnguyenducviet4496@gmail.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0d3c44026343785cc651e1218b0545731476efe5\n"
    },
    {
      "commit": "e5f55511c99970478e9b202e7762fbce2998d180",
      "tree": "943797e8d5dc5f50501eec261284c47a32e383d8",
      "parents": [
        "e3c8838365cb1f26ca1ce257c538bbb8a336359a"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Sun Feb 01 22:08:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Feb 01 22:24:20 2026"
      },
      "message": "[py] Make extensions tests work when not running bazel (#17026)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3ef3d52843ad5e7ece3e9a0e005f4523b69f1573\n"
    },
    {
      "commit": "e3c8838365cb1f26ca1ce257c538bbb8a336359a",
      "tree": "7e43ceaf3378e8db68e325ab6ea74f222d751eac",
      "parents": [
        "0c692352bfeacb3c7bea53918af5616f2e6c9ec8"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Fri Jan 30 20:44:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jan 31 15:22:53 2026"
      },
      "message": "[build] Bump shellcheck and ruff, fix multitool update script (#17029)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f3193141c68d8b3851a1ba344fb1d04ef0ac9673\n"
    },
    {
      "commit": "0c692352bfeacb3c7bea53918af5616f2e6c9ec8",
      "tree": "98664d0dab5128c90e1db470ecd86e153aea711b",
      "parents": [
        "f12b8cec68054bee3da49138eefd3fa352897eda"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Fri Jan 30 03:31:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 30 03:41:17 2026"
      },
      "message": "[build] mark test files testonly\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: af2c9a1ffa3366c12f749fbc7bfb19dd4ed0ed97\n"
    },
    {
      "commit": "f12b8cec68054bee3da49138eefd3fa352897eda",
      "tree": "28ff4515d53ad09221310930c9f48affbbeb2c7e",
      "parents": [
        "f1e06a16dec9543527724ec960184a084af4bd40"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Thu Jan 29 15:36:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 30 01:23:16 2026"
      },
      "message": "[py] Modularize Bazel build with per-module targets (#17012)\n\n* [py] Modularize Bazel build with per-module targets\n\nAdd separate py_library targets for each module following Ruby\u0027s pattern\n\n* [py] Use modular deps in test targets\n\n* imports in get_remote_connection must be conditional as well\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a0ef99e961bb05ee9ade7861815cc5be5819fe9e\n"
    },
    {
      "commit": "f1e06a16dec9543527724ec960184a084af4bd40",
      "tree": "54e78ce78b47e6db573d4f7ea2fc04c93021e5fb",
      "parents": [
        "48f1171ddd7e5f5ea7a5b6d79def25808531f829"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Jan 26 21:56:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 26 22:31:22 2026"
      },
      "message": "[py][java][js] SE_DEBUG warns only when overriding user settings (#17009)\n\n* [py][java][js][rb] SE_DEBUG warns only when overriding user settings\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0c2aff14703d95bda5f00d52bc70ea312e6beadf\n"
    },
    {
      "commit": "48f1171ddd7e5f5ea7a5b6d79def25808531f829",
      "tree": "c944e7fe34de44da2ebe7a366652f6002058d342",
      "parents": [
        "003df5f71b25a1d06d51a75d6c4d7500bb849f1c"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Jan 26 20:38:40 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 26 20:44:29 2026"
      },
      "message": "[py] Use lazy imports in webdriver __init__.py (#16993)\n\n* [py] Use lazy imports in webdriver __init__.py\n\n* [py] Cache lazy imports to avoid repeated __getattr__ calls\n\n* [py] Add lazy submodule imports for backwards compatibility\n\n* [py] Filter __dir__ to public names and lazy submodules only\n\n* [py] Derive __all__ from _LAZY_IMPORTS to prevent drift\n\n* [py] Add __dir__ to browser packages for IDE introspection\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 429ef3e6922bdd7d0e3d4658dbdc658af50c7e31\n"
    },
    {
      "commit": "003df5f71b25a1d06d51a75d6c4d7500bb849f1c",
      "tree": "7daa02daecab2c164ca2eb7f4782ddfec906fac8",
      "parents": [
        "6e7b4f7bcf79dfe71937686d764dff9445404e42"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Sun Jan 25 19:47:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Jan 25 19:53:50 2026"
      },
      "message": "[py] Replace //py:ruff with dedicated ruff-format and ruff-check targets (#16998)\n\n* [py] Add mode support to ruff runner and separate format/lint tasks\n\n* split up //py:ruff into //py:ruff-check and //py:ruff-format\n\n* [py] Add known-first-party config for isort to preserve import grouping\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: cb8baea88f76c247e50a1a131f4498a1943850ae\n"
    },
    {
      "commit": "6e7b4f7bcf79dfe71937686d764dff9445404e42",
      "tree": "017301130b77db98bee76d3f37d42018f81bfc9d",
      "parents": [
        "ec4e2dfbebda6ee5192fbae6be08bf961a5e8016"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Thu Jan 22 19:18:30 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 22 19:24:28 2026"
      },
      "message": "[py] make bazel test target names consistent with other languages (#16969)\n\n* rearrange python test target naming\n\n* [py] Keep test/ prefix to avoid module shadowing on Windows\n\n* [py] Keep _tests suffix in test target names\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 61b9519dd75e28eabebe2307969f9b1ddcaf3dca\n"
    },
    {
      "commit": "ec4e2dfbebda6ee5192fbae6be08bf961a5e8016",
      "tree": "a459251c814f9c4c4e5317d2a7ae07e8b9ed641e",
      "parents": [
        "db23bf4c4019951c95868e0a57fdbaa7a49d7438"
      ],
      "author": {
        "name": "nemowang",
        "email": "nemowang@outlook.com",
        "time": "Thu Jan 22 15:31:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 22 15:34:38 2026"
      },
      "message": "[py] Fix return type hint for `alert_is_present` (#16975)\n\n---------\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b35f2fa4baa3a1315ef91ca3d1f03f5c1dab5af7\n"
    },
    {
      "commit": "db23bf4c4019951c95868e0a57fdbaa7a49d7438",
      "tree": "651ec3106d750987d9114994ee16ff8d3f25bda9",
      "parents": [
        "2f3d9c998113986567ef567f2836d097f7f965b1"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Thu Jan 22 14:19:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 22 14:25:25 2026"
      },
      "message": "[build] run ruff on python files outside py directory (#16957)\n\n* [build] run ruff on python files outside py directory\n\n* [py] Add //py:ruff Bazel target\n\n* add it to all:lint\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 53ef3980c1bfbd3677ff214d3ff1d421be35fe8b\n"
    },
    {
      "commit": "2f3d9c998113986567ef567f2836d097f7f965b1",
      "tree": "16474d0ea569fe444da016b167a965156d1fd3d9",
      "parents": [
        "274742f5d311e8dce24e1f7e30367daced081442"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Tue Jan 20 03:08:20 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jan 20 03:14:14 2026"
      },
      "message": "[py] integrate mypy type checking with Bazel (#16958)\n\n* [py] integrate mypy type checking with Bazel\n\n* Remove typecheck dependency group\n\n* Make scripts executable\n\n---------\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c2636902386edcfc2d908906a43f0c368b7f03dc\n"
    },
    {
      "commit": "274742f5d311e8dce24e1f7e30367daced081442",
      "tree": "741ac93974910e164c3d184e8c9418ce60577e4a",
      "parents": [
        "0a54fe6095d3c54022dd2986981386db7852db0d"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Mon Jan 19 16:17:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 19 16:23:33 2026"
      },
      "message": "Canonical approach to supporting AI agent directions (#16735)\n\n* create agents files\n\n* ignore common AI directories and files\n\n* add section on how to run bazel commands.\n\n* Overhaul from feedback\n\n* Apply suggestions from code review\n\n---------\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5df354cc5b42b2556ada272c9308bc848b46cbd8\n"
    },
    {
      "commit": "0a54fe6095d3c54022dd2986981386db7852db0d",
      "tree": "f484bd145b18eb3dddf770c2ec722daafd87e380",
      "parents": [
        "a2a239e2c3b04d6b5f73950cc4242b4e59a23faf"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Mon Jan 19 15:59:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 19 16:23:23 2026"
      },
      "message": "[py] Remove type stub packages from runtime dependencies (#16945)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 55708654c79f4f27e4ec64dde72bf1cad082023b\n"
    },
    {
      "commit": "a2a239e2c3b04d6b5f73950cc4242b4e59a23faf",
      "tree": "453d5a6b18a37d36ce21d7dd7066e06ceac42f05",
      "parents": [
        "8c17e0c20482381495281f7e044facadd972f731"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titus.fortner@gmail.com",
        "time": "Mon Jan 19 01:18:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 19 01:31:20 2026"
      },
      "message": "[build] Reset versions to nightly after Selenium 4.40 release\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 68852c7ef4b1a3a2d8ec1adc1867e93dc23c1c26\n"
    },
    {
      "commit": "8c17e0c20482381495281f7e044facadd972f731",
      "tree": "14fcad72befec6199c181c385ac7d8317105cbdf",
      "parents": [
        "8fdb573f291d36f1b1011e52ab532569d44b085a"
      ],
      "author": {
        "name": "Selenium CI Bot",
        "email": "diemol+selenium-ci@gmail.com",
        "time": "Sun Jan 18 22:11:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 19 01:31:14 2026"
      },
      "message": "[build] Prepare for release of Selenium 4.40 (#16931)\n\n* update pinned browser versions\n\n* update devtools versions\n\n* update selenium manager versions\n\n* update maven dependency versions\n\n* update authors file\n\n* bump versions in preparation for release\n\n* changelogs updated\n\n---------\n\nCo-authored-by: Selenium CI Bot \u003cselenium-ci@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b3333f1c50b5ffa9c9cdaf325da79a84a4ec5ba1\n"
    },
    {
      "commit": "8fdb573f291d36f1b1011e52ab532569d44b085a",
      "tree": "4fe1bb1d2e2507029f1e171e3f7d5f55899d4e9c",
      "parents": [
        "f9442be0531d1c9d45d5ebf0ee7e06514b52f72a"
      ],
      "author": {
        "name": "Navin Chandra",
        "email": "navinchandra772@gmail.com",
        "time": "Sat Jan 17 07:49:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jan 17 08:02:41 2026"
      },
      "message": "[py]: use `is_url_connectable` for driver status check (#16881)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f8472362ba3eb5fe6cba43598362b4e84de021df\n"
    },
    {
      "commit": "f9442be0531d1c9d45d5ebf0ee7e06514b52f72a",
      "tree": "956b4af82578f4ad4d40fa0290c4a16a112a47f4",
      "parents": [
        "4aba991003799058734c18f6a7ea25fbb2a2f66d"
      ],
      "author": {
        "name": "Simon Mavi Stewart",
        "email": "simon.m.stewart@gmail.com",
        "time": "Fri Jan 16 16:40:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 16 17:47:49 2026"
      },
      "message": "[bazel] Prevent duplicate directory warnings from python builds (#16923)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 39a57df951464a2d5c9aacc1530e5e39e6c1bfdd\n"
    },
    {
      "commit": "4aba991003799058734c18f6a7ea25fbb2a2f66d",
      "tree": "3566cf8abdf30bfcd936113785b8fa7226f2c45d",
      "parents": [
        "12aa367de3951f1a97bf9004c968249ad0b3aa3e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Fri Jan 16 16:38:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 16 17:47:41 2026"
      },
      "message": "build python docs with bazel (#16919)\n\n* build python docs with bazel\n\n* remove docs requirements file since managed in main requirements\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c5418e8a4cc1eb8eb7365aaadb5920226e39f7f3\n"
    },
    {
      "commit": "12aa367de3951f1a97bf9004c968249ad0b3aa3e",
      "tree": "5f9686cb6493ecd577401b2a2615eb6b30ef018e",
      "parents": [
        "978daea36e76ef1709fdcca961b6eb91d73d3db8"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Fri Jan 16 14:53:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 16 14:56:50 2026"
      },
      "message": "[py] Find grid in tests if not using bazel (#16912)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: fd909e7efbd2e0e9a3998542f9eec7fed5da0681\n"
    },
    {
      "commit": "978daea36e76ef1709fdcca961b6eb91d73d3db8",
      "tree": "5d19f795a456e5971e7f413aba4988be0d75f8bb",
      "parents": [
        "33e277581e3978549087b83fe52c69ee89571d40"
      ],
      "author": {
        "name": "Corey Goldberg",
        "email": "1113081+cgoldberg@users.noreply.github.com",
        "time": "Wed Jan 14 22:27:13 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 15 01:23:23 2026"
      },
      "message": "[py] Update development dependencies (#16908)\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 56416fd6f39dd021a3b49e5fe80bb783691bc0f5\n"
    },
    {
      "commit": "33e277581e3978549087b83fe52c69ee89571d40",
      "tree": "0dac4284d0af22aca9f551df0be0b5329f0ce9f0",
      "parents": [
        "77fd24f8e3a27c9ffb96f8c2dd7b5b4b64db4d0e"
      ],
      "author": {
        "name": "Titus Fortner",
        "email": "titusfortner@users.noreply.github.com",
        "time": "Wed Jan 14 18:08:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 15 01:23:18 2026"
      },
      "message": "[py] have SE_DEBUG output driver logs as well (#16902)\n\n* [py] have SE_DEBUG output driver logs as well\n\n* override log file input for SE_DEBUG to send to stderr\n\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: bf3ddff1e155319deb567b307770fcbdc6806cac\n"
    },
    {
      "commit": "77fd24f8e3a27c9ffb96f8c2dd7b5b4b64db4d0e",
      "tree": "126de338521cb278e611d3fb2f1e211bceb7b2f2",
      "parents": [
        "16f079394abd8d3ba9b9a8bdb80688f3aebaa4c3"
      ],
      "author": {
        "name": "Michal Zyndul",
        "email": "michal.zyndul@adverity.com",
        "time": "Sun Jan 11 18:26:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Jan 11 18:31:58 2026"
      },
      "message": "[py] Add type annotations (#16883)\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a5ab759dc134df7d3cbd35c40fffb1b6277bf835\n"
    },
    {
      "commit": "16f079394abd8d3ba9b9a8bdb80688f3aebaa4c3",
      "tree": "36074d03116587384512eccff7b84b9a17b4e2c3",
      "parents": [
        "565a8b3fd562978f338042f09faf7a8bbab01d4e"
      ],
      "author": {
        "name": "Michal Zyndul",
        "email": "michalzyndul@gmail.com",
        "time": "Fri Jan 09 20:50:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 09 22:09:56 2026"
      },
      "message": "[py] Add type annotations to bidi network module (#16875)\n\nCo-authored-by: Corey Goldberg \u003c1113081+cgoldberg@users.noreply.github.com\u003e\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c95abca4fa46561cc4b9d81fe6ee31fdd9c10e46\n"
    }
  ],
  "next": "565a8b3fd562978f338042f09faf7a8bbab01d4e"
}
