TLC Meeting - June 18, 2026
Meetings are happening on the #selenium-tlc channel on Selenium Slack.
To add items to the agenda for the next meeting, please see our public Rolling Agenda
The next meeting will be Thursday, June 25 at 0700 Pacific / 1000 Eastern / 1500 UK / 1930 India.
Participation
Agenda
- ADR proposal
- Selenium 5 API shape for BiDi browsing and user contexts
- Network interception ADR and Python websocket transport
Meeting Summary
The participants confirmed the design decision record process and template was agreed in principle. Most of the meeting focused on the public API shape for Selenium 5’s BiDi implementation, especially how much should be exposed through browsing context and user context objects versus existing driver-shaped APIs.
The discussion did not settle the final Selenium 5 context API. Participants leaned toward keeping the common public API centered around driver concepts, while still allowing lower-level or provisional access for advanced context and parallel-session use cases. The meeting ended with a shorter discussion of network interception behavior and Python websocket event handling.
Decisions
- The participants confirmed the design decision record process and template in SeleniumHQ/selenium#17665 was agreed in principle. titusfortner would resolve remaining comments and merge it.
Discussion Notes
ADR proposal
titusfortner opened with SeleniumHQ/selenium#17665, the design decision record process and template. AutomatedTester said there were no remaining substantive concerns, aside from making sure the process is managed well. titusfortner said he would resolve the comments and merge the PR.
Selenium 5 API shape for BiDi browsing and user contexts
AutomatedTester explained the intent behind the browsing context ADRs: a layered model where navigation, scripts, and other features can hang off a context object, making it possible to run more work in parallel without paying browser startup cost for every test.
titusfortner raised concern that Selenium 5 should avoid adding a new high-level API before the overall shape is clear. He preferred prioritizing existing Selenium API behavior on top of BiDi and keeping the common user experience close to driver, windows, tabs, and existing Selenium concepts.
p0deje and pujagani helped separate browser contexts, user contexts, tabs, windows, storage isolation, event subscriptions, and driver state. p0deje noted that Playwright’s context model could be confusing if Selenium reused similar terms with different semantics, and he preferred not modeling the public API directly around the BiDi specification.
The group discussed whether context-specific operations should be represented by new context
objects, driver-like objects tied to a particular context, or lower-level escape hatches. Open
questions included how close and quit should behave, what state must be kept locally in the
client, and how event subscriptions should target one or more contexts.
AutomatedTester said he would re-evaluate the ADR with user contexts included from the start and look for an approach that keeps the familiar driver-centered API while still allowing advanced context use cases.
Network interception ADR and Python websocket transport
AutomatedTester had reviewed titusfortner’s network interception ADR and said the direction looked generally right. Remaining areas included handler ordering, handlers that can work with both staged and original requests, readable response bodies, data collection, and completion behavior.
The group also discussed SeleniumHQ/selenium#17682, which changes Python’s websocket transport to be thread-safe and event-driven. AutomatedTester said the faster, queue-based behavior exposed timing assumptions in tests and led to more explicit waits. p0deje suggested blocking on the queue until the expected message arrives, rather than relying on sleeps.
Action Items
- titusfortner to resolve remaining comments and merge SeleniumHQ/selenium#17665.
- AutomatedTester to revise the browsing and user context ADRs, including user contexts from the start and exploring a driver-centered public API with advanced breakout options.
- titusfortner to update the network interception ADR with language differences and compare SeleniumHQ/selenium#17682 against Ruby queue/listener work.




