{
  "name": "Lovable Fix Injector diagnostics",
  "extensionVersion": "2.5.0",
  "generatedAt": "2026-07-26T15:05:50.620Z",
  "problems": [
    {
      "id": "popup-inline-script-csp",
      "status": "fixed",
      "area": "popup",
      "detectedAt": "2026-07-25T10:45:00.000Z",
      "problem": "The popup shell rendered HTML but executed popup.js as inline text, which Chrome Manifest V3 blocks. Result: Chat buttons, Tools tab, and toggles looked visible but did nothing.",
      "fix": "popup.html now loads popup.css and popup.js directly as bundled extension files instead of injecting inline JavaScript from the loader.",
      "verify": "Install version 2.5.0, open the popup, click Tools, then click back to Chat. Both tabs and all buttons should respond."
    },
    {
      "id": "install-update-notification-noise",
      "status": "fixed",
      "area": "live-update",
      "detectedAt": "2026-07-25T10:50:00.000Z",
      "problem": "On first extension install, the background updater treated the first runtime sync like a user-facing update and showed a desktop notification saying a runtime was detected/downloading.",
      "fix": "First-install syncing is now silent. Notifications only appear for later background update checks when an existing runtime is already installed.",
      "verify": "Remove the extension, install version 2.5.0 again, and confirm no 'update available / downloading now' desktop notification appears immediately after install."
    },
    {
      "id": "popup-live-runtime-stale",
      "status": "fixed",
      "area": "popup",
      "detectedAt": "2026-07-24T10:00:00.000Z",
      "problem": "Stored live-update files could be older than the redesigned popup, so the popup loaded mismatched HTML/JS and buttons stopped responding.",
      "fix": "The popup loader now validates the required UI IDs before using live files and falls back to the bundled popup if the cached runtime is stale or incomplete.",
      "verify": "Open the extension popup. It should always render Chat and Tools tabs, or show a clear crash message instead of silently breaking."
    },
    {
      "id": "tools-tab-clicks",
      "status": "fixed",
      "area": "popup",
      "detectedAt": "2026-07-24T10:15:00.000Z",
      "problem": "The redesign added tab buttons but did not harden event binding against partial/live cached DOM mismatches.",
      "fix": "All popup buttons now bind through a safe helper and the tab buttons are explicit type=button controls.",
      "verify": "Click Tools. The Live update, Connection, Patch Status, Activity Log, and Test cards should appear immediately."
    },
    {
      "id": "manual-normal-auto-collision",
      "status": "fixed",
      "area": "request-send",
      "detectedAt": "2026-07-24T11:00:00.000Z",
      "problem": "Manual Send as Normal used the same patched page fetch, so when auto-convert was ON the manual normal request could be rewritten too.",
      "fix": "Manual normal sends now set a one-request in-page bypass flag; manual fix sends still include fix_error metadata directly.",
      "verify": "Turn auto-convert ON, press Send as Normal, and the latest patch log should say the normal send bypassed auto once."
    },
    {
      "id": "auto-toggle-sync",
      "status": "fixed",
      "area": "auto-convert",
      "detectedAt": "2026-07-24T11:30:00.000Z",
      "problem": "The toggle depended only on storage relay timing, so a lovable.dev tab could keep an old in-page auto-convert state.",
      "fix": "Toggling now writes storage and directly pushes the new state into every open lovable.dev tab.",
      "verify": "Enable Auto-convert; Patch Status should show installed with auto-convert ON after Refresh."
    },
    {
      "id": "request-body-rewrite",
      "status": "fixed",
      "area": "auto-convert",
      "detectedAt": "2026-07-25T09:00:00.000Z",
      "problem": "The fetch patch only treated bodies starting exactly with { as JSON and rebuilt Request objects too loosely.",
      "fix": "The patch trims JSON bodies before parsing, handles URL/Request inputs, preserves Request transport options, and keeps the original fetch unwrapped across live updates.",
      "verify": "Run Test Auto-convert. The result panel should show Rewritten → fix_error when the toggle is ON and auth is connected."
    },
    {
      "id": "auth-capture-fallback",
      "status": "fixed",
      "area": "connection",
      "detectedAt": "2026-07-25T09:30:00.000Z",
      "problem": "Check auth only waited for webRequest header sniffing, which can miss tokens if the page does not make an API request at that moment.",
      "fix": "Check auth now also inspects the active lovable.dev tab for an existing browser session token and project ID, then still falls back to header sniffing.",
      "verify": "Open a logged-in lovable.dev project tab and press Check auth. The Connection card should become Connected."
    }
  ]
}