[macOS][Browser] tab.content.export() is rejected by the in-app browser backend although the API descriptor advertises it for iab
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.825.31414 (build 7287)
What subscription do you have?
Pro
What platform is your computer?
Darwin 25.6.0 arm64 arm (macOS 26.6.2, build 25G83)
What issue are you seeing?
tab.content.export() fails on the in-app browser with:
Codex in-app browser does not support command "tab_content_export"
The advertised API surface does not warn about this. In the shipped plugin (browser@openai-bundled 26.825.31414), the API descriptor marks members that are unsupported on a backend with unsupportedByDefaultIn, and for iab that list covers only:
browser.history()browser.user.openTabs()tab.axtab.requestManualHandoff()tab.cua.downloadMedia()andtab.dom.downloadMedia()
ContentAPI.export() is not marked, and the shipped documentation describes it as “Export the tab's content to a file on disk using the default asset-loader path.” So the declared cross-browser interface and the in-app browser backend disagree, and the only way to discover the gap is to call the method and fail.
What steps can reproduce the bug?
With the in-app browser (browser@openai-bundled, backend iab):
const tab = await browser.tabs.new()await tab.goto("https://example.com/")await tab.content.export()- Observe the rejection above.
What is the expected behavior?
Either:
- implement
tab_content_exportfor the in-app browser backend, or - mark
ContentAPI.exportasunsupportedByDefaultIn: ["iab"]so the capability descriptor and documentation match the backend, and agents can pick a supported path without a failed call.
Additional information
The specialized exporters behave differently and are not a general substitute: exportGsuite targets Google Workspace tabs and exportYouTubeTranscript targets YouTube watch pages. For ordinary pages the remaining options on the in-app browser are screenshots, DOM snapshots, or the pageAssets capability.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the shipped browser API descriptor and the in-app browser backend identified by backend iab; reproduce the rejection with tab.content.export() against example.com. Determine whether the backend should implement tab_content_export or the descriptor should mark ContentAPI.export as unsupported, then verify that the advertised capability matches the observed behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend-api-design
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100