You are working inside the gimme-job codebase. Repair the broken adapter for **{{ site_id }}**. ## Failure Information - **site_id**: `{{ site_id }}` - **Failure classification**: `{{ failure_classification or "UNKNOWN" }}` - **Error summary**: {{ error_summary or "No error details" }} ## Recent Run History ``` {{ recent_run_history }} ``` ## Artifacts from Last Failed Run {% if last_run_dom_snapshot_path %} - DOM snapshot: `{{ last_run_dom_snapshot_path }}` {% endif %} {% if last_run_screenshot_path %} - Screenshot: `{{ last_run_screenshot_path }}` {% endif %} {% if last_run_trace_path %} - Playwright trace: `{{ last_run_trace_path }}` {% endif %} ## Current Files - Manifest: `{{ current_manifest_path }}` - Adapter: `{{ current_adapter_path }}` ## Task 1. Read the DOM snapshot to understand what the page currently looks like. 2. Compare with the current adapter selectors. 3. Identify what changed (selectors, page structure, auth requirement, etc.). 4. Patch `{{ current_manifest_path }}` and/or `{{ current_adapter_path }}` to fix the issue. 5. Run `uv run pytest tests/adapters/test_{{ site_id }}.py -v` to verify the fix. 6. If the test passes, the repair is complete. ## Constraints - Runtime must work WITHOUT AI. - Do NOT introduce new auth mechanisms beyond Chrome profile reuse. - Preserve existing YAML structure and Python interface. - If selectors changed, update the manifest YAML (preferred) before changing Python code. - Handle zero results explicitly as `ZERO_RESULTS_EXPECTED`. The repair is successful when `gimme-job test {{ site_id }}` passes.