Problem
The Codex Chrome integration's read_page fails when the Codex Node REPL is configured with BROWSER_USE_TINYSKY_ENABLED = "1":
Cannot read properties of undefined (reading 'get_visible_dom')
Opening tabs, navigating, going back, listing tabs, and closing tabs still work. Reading the page fails before a DOM snapshot can be obtained.
Environment
- macOS, Apple Silicon
- Executor v1.6.10
- codex-cli 0.155.1
- Codex Chrome plugin 26.915.31945
- Google Chrome 153.0.8010.48
- Executor's built-in Codex Chrome preset, using
codex app-server and the plugin's browser-client.mjs
Relevant Codex configuration:
[mcp_servers.node_repl.env]
BROWSER_USE_TINYSKY_ENABLED = "1"
Reproduction
- Configure the Codex Chrome preset in Executor with a working local Codex/Chrome installation.
- Enable the setting above in the Codex configuration used by the integration.
- Call
navigate with https://example.com and retain the returned tab ID.
- Call
read_page with that tab ID.
Actual result: the error above. Expected result: a page snapshot, or an actionable compatibility error if the configured browser API is unsupported.
Diagnosis
The installed Executor browser projection implements read_page as:
await __tab.dom_cua.get_visible_dom()
In the installed Codex browser service, enabling TinySky sets these API support overrides:
{
"Tab.ax": true,
"Tab.cua": false,
"Tab.dom_cua": false
}
The browser client hides disabled API members, so tab.dom_cua is undefined. Executor's click, typing, keypress, and scrolling projections also reference dom_cua, although those commands were not individually tested with TinySky enabled.
Related: #1837 explains that dom_cua was selected because the plugin documentation at that time marked ax unsupported on the Chrome extension backend. This appears to be a compatibility gap with the enabled TinySky mode rather than a Chrome connectivity failure.
Verified workaround
Override the setting only for Executor's Codex Chrome integration by changing its spawn arguments to:
[
"app-server",
"-c",
"mcp_servers.node_repl.env.BROWSER_USE_TINYSKY_ENABLED=\"0\""
]
This leaves the global Codex configuration unchanged. After applying the override through Executor's MCP server configuration API, the following succeeded:
- Navigate to
https://example.com.
- Read the DOM snapshot and obtain the
Learn more link's node ID.
- Click that node and verify navigation to IANA's Example Domains page.
- Read the destination page and close the test tab.
Problem
The Codex Chrome integration's
read_pagefails when the Codex Node REPL is configured withBROWSER_USE_TINYSKY_ENABLED = "1":Opening tabs, navigating, going back, listing tabs, and closing tabs still work. Reading the page fails before a DOM snapshot can be obtained.
Environment
codex app-serverand the plugin'sbrowser-client.mjsRelevant Codex configuration:
Reproduction
navigatewithhttps://example.comand retain the returned tab ID.read_pagewith that tab ID.Actual result: the error above. Expected result: a page snapshot, or an actionable compatibility error if the configured browser API is unsupported.
Diagnosis
The installed Executor browser projection implements
read_pageas:In the installed Codex browser service, enabling TinySky sets these API support overrides:
The browser client hides disabled API members, so
tab.dom_cuais undefined. Executor's click, typing, keypress, and scrolling projections also referencedom_cua, although those commands were not individually tested with TinySky enabled.Related: #1837 explains that
dom_cuawas selected because the plugin documentation at that time markedaxunsupported on the Chrome extension backend. This appears to be a compatibility gap with the enabled TinySky mode rather than a Chrome connectivity failure.Verified workaround
Override the setting only for Executor's Codex Chrome integration by changing its spawn arguments to:
This leaves the global Codex configuration unchanged. After applying the override through Executor's MCP server configuration API, the following succeeded:
https://example.com.Learn morelink's node ID.