# LibreWolf Worker Launch Hotfix Qualification — 2026-08-21

This receipt records the first real workstation dogfood recovery of the ChatGPT Orchestrator worker-launch path in LibreWolf.

## Failure observed

Run: `run_7a9a2217-edc1-41ed-9eb6-7dfda2048eba`.

The first three child workers were created durably, but their initial `conversation.create` commands failed before bootstrap submission with:

```text
Could not establish connection. Receiving end does not exist.
```

A subsequent relaunch reached the ChatGPT composer but exposed a second issue:

```text
HOST_UI_CHANGED: ChatGPT send control remained disabled after composer input.
```

## Corrections

- Retry only the transient missing-content-script receiver condition for a bounded period after managed-tab creation.
- Keep fail-closed behavior for all other content-script/host-UI errors.
- Add LibreWolf site-access onboarding for `https://chatgpt.com/*`.
- Add MV3 event-page wake/reconnect support using `alarms` plus content-script wake messages so the loopback executor reconnects after LibreWolf unloads/recreates the background page.
- Make ChatGPT prompt submission wait for the asynchronously enabled send control.
- Prefer the browser's contenteditable `insertText` path when available and retain a bounded fallback.
- Permit a failed launch/follow-up delivery to recover through a fresh `conversation.create` command instead of attempting `conversation.send` against a missing binding.

## Automated qualification

Isolated host: `debian2`.

`pnpm gate`: PASS.

Final test counts relevant to the hotfix:

```text
protocol                 4 passed
ChatGPT DOM adapter      8 passed
persistence              3 passed
core                     7 passed
extension                8 passed
MCP/executor bridge      4 passed
```

Firefox-format WebExtension package lint (the format used by LibreWolf): zero errors, zero warnings, zero notices.

## Real LibreWolf proof

Browser: LibreWolf on the workstation, using the active user profile.

Executor connection after the hotfix and LibreWolf restart: connected to `127.0.0.1:8765`.

The original dogfood workers were recovered in-place rather than replaced. Final verified state immediately after relaunch:

```text
/root/continuity-a-domain      running   conversation generating
/root/continuity-b-scheduler   running   conversation generating
/root/continuity-c-executor    running   conversation generating
```

Each worker has a distinct managed `https://chatgpt.com/c/...` conversation and a completed recovery `conversation.create` command.

The original run ID and worker IDs were preserved.
