[
  {
    "verb": "kicad_status",
    "args": {},
    "response": {
      "_hint": "If alive=0 but you expect a running KiCad, the adom_bridge.py plugin isn't deployed at its USER_SITE location. Call kicad_install_plugin to force a fresh deploy (auto-install runs once per bridge boot; the explicit verb bypasses the cache). Otherwise the file is stale \u2014 pass pruneStale:true to clean those up. v1.7.6+ supports multiple instances per exe (one row per PID).",
      "_timeoutHint": "ab waits up to 130s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `kicad_status` until it reports done.",
      "bridgeVersion": "0.9.340",
      "durationMs": 54,
      "error": "",
      "kicadVersionUsed": "10.0",
      "output": "",
      "plugins": [],
      "schemaVersion": 1,
      "status": "ok",
      "statusVerb": "kicad_status",
      "success": true,
      "summary": {
        "alive": 0,
        "total": 0
      },
      "timeoutSeconds": 130
    }
  },
  {
    "verb": "kicad_open_board",
    "args": {
      "filePath": "C:/Users/azureuser/Documents/adom-kicad-verbtest/live/release-check-20260907.kicad_pcb",
      "reason": "Verify clean-install PCB editor startup on throwaway winvm"
    },
    "response": {
      "_foregroundHint": "Window opened in the BACKGROUND - the user's foreground was not touched. To show it to the user: re-call with foreground:true AND foregroundReason:'<why the user needs to see this>'. The bridge captions the reason via an ab toast for 3 seconds, then brings the window forward. Foreground without a reason is refused.",
      "_hint": "WARNING: KiCad may show modal dialogs (save prompts, file warnings, format errors) that block further commands. ALWAYS check kicad_window_info for hasModalDialogs after this command. If true, use kicad_screenshot_all to capture ALL windows including dialogs, pull_file to get screenshots to Docker, then read the dialog screenshot to decide how to handle it (force close, dismiss, retry).",
      "_timeoutHint": "ab waits up to 130s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `kicad_status` until it reports done.",
      "_userFocusRestored": false,
      "bridgeVersion": "0.9.340",
      "durationMs": 2622,
      "error": "",
      "kicadVersionUsed": "10.0",
      "openedInBackground": true,
      "output": "Launched PCB board editor with release-check-20260907.kicad_pcb",
      "progress": {
        "confidence": "typical",
        "elapsedSec": 0.1,
        "estimatedSec": 0.1,
        "etaSec": 0.0,
        "measured": {
          "phase": "kicad.show_2d_board",
          "seconds": 0.09,
          "startKind": "cold"
        },
        "percent": 100,
        "phase": "kicad.show_2d_board",
        "startKind": "cold",
        "stepLabel": "done"
      },
      "schemaVersion": 1,
      "status": "ok",
      "statusVerb": "kicad_status",
      "success": true,
      "timeoutSeconds": 130,
      "windowEtiquette": "background"
    }
  },
  {
    "verb": "kicad_errors",
    "args": {},
    "response": {
      "_autoDialogs": {
        "count": 1,
        "dialogs": [
          {
            "action": "clicked-button",
            "benign": true,
            "body": "Could not use OpenGL, falling back to software rendering  OpenGL 2.1 or higher is required!",
            "screenshot": "C:/Users/AZUREU~1/AppData/Local/Temp/adom-bridge-shots/window-330806-1788803969450.png",
            "title": "Information"
          }
        ],
        "hadError": false
      },
      "_hint": "KiCad has NO log file and in GUI mode its errors go to DIALOGS, not stderr \u2014 so this is where a GUI failure reason lives. Read-only: nothing is clicked or raised. THREE channels, use all three: (1) this verb; (2) kicad_log_tail for what bypasses wxLog \u2014 crashes, asserts, stdio; (3) kicad_screenshot_all when the first two say nothing and the result is still wrong \u2014 the pixels have no preconditions and remain the floor under any automation loop. Dismiss with kicad_dismiss_dialogs (which DOES foreground, so caption first).",
      "_timeoutHint": "ab waits up to 130s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `kicad_status` until it reports done.",
      "bridgeVersion": "0.9.340",
      "count": 0,
      "dialogs": [],
      "durationMs": 999,
      "error": "",
      "kicadVersionUsed": "10.0",
      "output": "",
      "schemaVersion": 1,
      "status": "ok",
      "statusVerb": "kicad_status",
      "success": true,
      "timeoutSeconds": 130,
      "windowSource": "ad:desktop_list_windows"
    }
  },
  {
    "verb": "kicad_open_schematic",
    "args": {
      "filePath": "C:/Users/azureuser/Documents/adom-kicad-verbtest/rp2040-breakout.kicad_sch",
      "reason": "Verify clean-install schematic editor startup"
    },
    "response": {
      "_hint": "ab waits up to 130s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `kicad_status` until it reports done.",
      "durationMs": 130036,
      "error": "'open_schematic' did not respond within ab's 130s budget.",
      "errorCode": "timed_out",
      "ok": false,
      "output": "",
      "schemaVersion": 1,
      "status": "timeout",
      "statusVerb": "kicad_status",
      "stillRunning": true,
      "success": false,
      "timeoutSeconds": 130
    }
  },
  {
    "verb": "kicad_errors",
    "args": {},
    "response": {
      "_autoDialogs": {
        "count": 3,
        "dialogs": [
          {
            "action": "clicked-button",
            "benign": true,
            "body": "Are you sure?  If you cancel KiCad setup, default settings will be chosen for you.",
            "screenshot": "C:/Users/AZUREU~1/AppData/Local/Temp/adom-bridge-shots/window-396602-1788804103473.png",
            "title": "Confirmation"
          },
          {
            "action": "escape+WM_CLOSE",
            "benign": true,
            "body": "Welcome to KiCad 10.0  KiCad is starting for the first time, or some of its configuration files are missing.\n\nLet's take a moment to configure some basic settings.  You can always modify these settings later by opening the Preferences\ndialog.  For help, please visit  Libraries  KiCad comes with a large set of symbol and footprint libraries maintained by the KiCad librarian team.  You may also create your own libraries, and install third-party ones from the Plugin and Content Manager or other sources.\n\nLibrary tables are the configuration files which list the libraries to be loaded. Global libraries are available in every project, and you may also add project-specific libraries if desired.  Design Block library table  How would you like KiCad to create them?  The built-in library tables could not be found in the expected location. This usually means that you have installed the KiCad software without also installing the libraries. You can proceed with setup, but you will need to install the libraries separately in order for them to be available.  Updates && Privacy  Allow connections to the Internet to check for updated versions of KiCad and packages installed\nthrough the Plugin and Content Manager?  KiCad can anonymously report crashes and other event data to the development team in order to help\nidentify and fix bugs and improve performance.\n\nWhen data collection is enabled, KiCad will automatically send reports when crashes or other notable\nevents occur. These reports contain technical details about the state of the KiCad software at the time of\nthe report. No personally identifiable information (PII) is collected, and your design files such as\nschematics, PCBs, and libraries are never shared as par",
            "screenshot": "C:/Users/AZUREU~1/AppData/Local/Temp/adom-bridge-shots/window-3212948-1788804104003.png",
            "title": "KiCad Setup"
          },
          {
            "action": "escape+WM_CLOSE",
            "benign": true,
            "body": "Could not use OpenGL, falling back to software rendering  OpenGL 2.1 or higher is required!",
            "screenshot": "C:/Users/AZUREU~1/AppData/Local/Temp/adom-bridge-shots/window-265560-1788804104527.png",
            "title": "Information"
          }
        ],
        "hadError": false
      },
      "_hint": "KiCad has NO log file and in GUI mode its errors go to DIALOGS, not stderr \u2014 so this is where a GUI failure reason lives. Read-only: nothing is clicked or raised. THREE channels, use all three: (1) this verb; (2) kicad_log_tail for what bypasses wxLog \u2014 crashes, asserts, stdio; (3) kicad_screenshot_all when the first two say nothing and the result is still wrong \u2014 the pixels have no preconditions and remain the floor under any automation loop. Dismiss with kicad_dismiss_dialogs (which DOES foreground, so caption first).",
      "_timeoutHint": "ab waits up to 130s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `kicad_status` until it reports done.",
      "bridgeVersion": "0.9.340",
      "count": 0,
      "dialogs": [],
      "durationMs": 2196,
      "error": "",
      "kicadVersionUsed": "10.0",
      "output": "",
      "schemaVersion": 1,
      "status": "ok",
      "statusVerb": "kicad_status",
      "success": true,
      "timeoutSeconds": 130,
      "windowSource": "ad:desktop_list_windows"
    }
  }
]