# Work Order: Resolve connectorRuntime Module-Loading Regression
## Current defect
The browser extension no longer creates a Markdown file in Downloads.
The extension console reports:
```text
chrome-extension://.../connectorRuntime.js:1
Uncaught SyntaxError: Cannot use import statement outside a module
```
A separate page-level error also appears:
```text
QuotaExceededError: Failed to execute 'setItem' on 'Storage':
Setting the value of
'cache/user-JY5yPfTiyFSprhKcrYXMA2gG/9e03f04b-55ee-4773-bb7b-47df25276387/system-connectors'
exceeded the quota.
```
Treat the `QuotaExceededError` as originating from the ChatGPT application unless repository evidence shows that the extension interacts with that storage key.
## Objective
Restore the extension to the point where invoking capture reliably creates a Markdown file in the browser's Downloads location.
## Required investigation
1. Identify where `connectorRuntime.js` is loaded.
2. Identify the `import` statement or statements causing the parse failure.
3. Determine whether `connectorRuntime.js` is intended to be:
* an ES module,
* a bundled traditional script, or
* imported by another module.
4. Compare the current loading configuration with the last working implementation or repository history, where available.
5. Determine whether the regression was introduced by:
* adding an `import` statement to a non-module content script,
* changing the manifest entry,
* changing script injection logic,
* moving code without updating module boundaries, or
* failing to include the file in the build/bundle process.
## Constraints
* Make the smallest change necessary to restore the intended module-loading behavior.
* Do not redesign the DOM extractor.
* Do not change conversation-selection logic.
* Do not modify Markdown normalization except where directly required by the module-loading repair.
* Do not suppress the syntax error without addressing its cause.
* Do not treat the ChatGPT `QuotaExceededError` as the extension root cause without evidence.
* Preserve Manifest V3 compatibility.
## Possible correction paths
Evaluate the repository and choose the correction consistent with the existing architecture. Possible approaches include:
### Module-based loading
If `connectorRuntime.js` is intended to be an ES module, ensure it is loaded through a supported module mechanism.
For an extension service worker, this may require:
```json
{
"background": {
"service_worker": "background.js",
"type": "module"
}
}
```
For a page or extension HTML document, this may require:
```html
```
Do not assume that declaring a content script as a module is supported in the same way. Verify how the file is being executed.
### Bundled or non-module loading
If `connectorRuntime.js` is a content script or injected traditional script, remove direct runtime `import` syntax by using the repository's intended bundling process or by restoring the prior dependency-loading pattern.
Do not simply concatenate files unless that is already the project’s build design.
### Dynamic import
Use `import()` only if it is valid in the execution context and consistent with the extension architecture. Do not use it merely to hide a structural module problem.
## Diagnostics
Add or retain narrowly scoped diagnostic logging around:
```text
[Thoth] connector runtime loaded
[Thoth] capture requested
[Thoth] extraction completed
[Thoth] markdown generated
[Thoth] download requested
[Thoth] download completed:
```
Errors should be logged with the failed stage and exception.
## Acceptance criteria
1. The extension loads without:
```text
Cannot use import statement outside a module
```
2. Clicking the capture action reaches `connectorRuntime.js`.
3. The extension creates a `.md` file in Downloads.
4. The resulting file is non-empty.
5. The extension console contains no uncaught extension-originated exception during capture.
6. The ChatGPT page-level `QuotaExceededError`, if still present, does not prevent extension capture.
7. Document:
* the root cause,
* the file or manifest entry responsible,
* the corrective change,
* why the selected module-loading approach is correct,
* and the verification performed.
## Out of scope
* Improving DOM selectors
* Solving missing historical turns
* Improving table conversion
* Improving citation conversion
* Changing the conversation intermediate model
* General refactoring