{
  "checker": {
    "details": {
      "argv": [
        "/opt/node22/bin/node",
        "-e",
        "const m=require('/workspace/native/build/Release/haven_audio.node'); console.log(JSON.stringify({isSupported:m.isSupported()}))"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "{\"isSupported\":false}",
      "working": true
    },
    "status": "PASS"
  },
  "main_blocker": null,
  "operation": "Installed Haven Desktop dependencies, built the native per-app audio addon (npm run build:native), loaded it in Node 22 and called its isSupported() export, which returned false as expected for this headless VM.",
  "operation_scope": "Covers npm install, native addon build, addon load and isSupported(). Not exercised: the Electron GUI (npm run dev / smoke:electron need a display and are not part of this smoke task), real per-app audio capture (needs a running PulseAudio/PipeWire server), and the full test suite (excluded by task instructions). npm run i18n:check fails on pre-existing catalog-key issues; it is part of the README's build script (npm run build) but was not fixed because product source must stay unchanged.",
  "outcome": "working",
  "steps": [
    "apt-get install build-essential, libpulse-dev, libx11-dev, libxtst-dev, libxinerama-dev, libxt-dev, libxrandr-dev, libxfixes-dev (README: Prerequisites, Linux)",
    "Installed Node v22.23.2 from nodejs.org tarball to /opt/node22 (README: Prerequisites, Node.js 22.23.2+)",
    "npm install (README: Quick Start (Terminal)), rc=0",
    "npm run build:native (README: Quick Start (Terminal)), rc=0, produced native/build/Release/haven_audio.node",
    "node -e require haven_audio.node; isSupported() -> false (README: How Per-App Audio Works, Linux PulseAudio path; false is expected without a sound server)",
    "npm run i18n:check (README build script), rc=1, pre-existing unreferenced/missing catalog keys; not fixed, source unchanged"
  ],
  "stuck_step": null,
  "suggested_fix": "Optional: fix src/i18n catalogs so npm run i18n:check passes (remove unreferenced screenPicker.* keys and add missing pt-BR keys). Run a PulseAudio or PipeWire server to get isSupported() true and exercise real capture. Run the Electron GUI with a display or use the shared CDP endpoint for browser-based checks."
}
