chenglou/pretext · error · Error
Firefox is not currently supported for pre-wrap oracle check
Error message
Firefox is not currently supported for pre-wrap oracle checks
What it means
runBrowser() in pre-wrap-check.ts hard-rejects firefox: parseBrowsers accepts it, but the pre-wrap oracle probe path sets reportBrowser to null for firefox and throws before creating a session. A deliberate, consistent limitation across the oracle check family.
Source
Thrown at scripts/pre-wrap-check.ts:108
function reportIsExact(report: ProbeReport): boolean {
return (
report.status === 'ready' &&
report.diffPx === 0 &&
report.predictedLineCount === report.browserLineCount &&
report.predictedHeight === report.actualHeight
)
}
async function runBrowser(browser: AutomationBrowserKind, port: number): Promise<boolean> {
const lock = await acquireBrowserAutomationLock(browser)
const reportBrowser: BrowserKind | null = browser === 'firefox' ? null : browser
const session = reportBrowser === null ? null : createBrowserSession(reportBrowser)
let serverProcess: ChildProcess | null = null
let ok = true
try {
if (session === null || reportBrowser === null) {
throw new Error('Firefox is not currently supported for pre-wrap oracle checks')
}
const pageServer = await ensurePageServer(port, '/probe', process.cwd())
serverProcess = pageServer.process
const requestId = `${browser}-${Date.now()}-${Math.random().toString(36).slice(2)}`
const reportServer = await startPostedReportServer<ProbeBatchReport>(requestId)
try {
const url =
`${pageServer.baseUrl}/probe?batch=pre-wrap` +
`&requestId=${encodeURIComponent(requestId)}` +
`&reportEndpoint=${encodeURIComponent(reportServer.endpoint)}`
const batchReport = await loadPostedReport(
session,
url,
() => reportServer.waitForReport(null),
requestId,
reportBrowser,View on GitHub (pinned to ac49b09b7d)
Solutions
- Remove firefox: use `--browser=chrome,safari` (default).
- Adding firefox support is a feature change to pre-wrap-check.ts runBrowser, not a runtime flag.
Example fix
# before bun run pre-wrap-check -- --browser=firefox # after bun run pre-wrap-check -- --browser=chrome,safari
Defensive patterns
Strategy: validation
Validate before calling
// pre-wrap-check does not support firefox; filter it out before invoking
const requested = (parseStringFlag('browser') ?? 'chrome,safari')
.split(',').map(s => s.trim().toLowerCase()).filter(b => b !== 'firefox')
if (requested.length === 0) requested.push('chrome', 'safari') Prevention
- The oracle scripts (keep-all, letter-spacing, pre-wrap) all hard-reject firefox despite parseBrowsers accepting it.
- Default to `--browser=chrome,safari` for pre-wrap checks.
When it happens
Trigger: Running `bun run pre-wrap-check -- --browser=firefox` or including firefox in the list. Passes parse validation, fails immediately in runBrowser.
Common situations: A maintainer expects firefox parity; the pre-wrap probe deliberately omits it.
Related errors
- Firefox is not currently supported for keep-all oracle check
- Firefox is not currently supported for letter-spacing oracle
- Timed out waiting for local port ${port}
- ${session.message ?? session.error}
- ${tree.message ?? tree.error}
AI-assisted analysis of chenglou/pretext@ac49b09b7d (2026-08-12).
Data as JSON: /api/errors/dda0c87fff97c774.
Report an issue: GitHub.