{
  "captured": "2026-10-16",
  "heads": {
    "before": "8238b7af825b8639191b9d7b4c6b080d4a93f388",
    "after": "a0fe71bea3b56fb5d3e09636d072cdccb83c081d"
  },
  "feature": "F06.hook-events",
  "runtime": {
    "canvas": "1.27.1",
    "agentServer": "1.55.1",
    "automation": "1.20.1",
    "kind": "isolated local real stack"
  },
  "fixture": "Real configured command hooks: stderr, one-second timeout, then explicit deny before model invocation. Generated QA text only.",
  "themes": [
    "Light+",
    "Solarized Light",
    "DeepSea",
    "Neutral",
    "Neo"
  ],
  "viewports": {
    "desktop": [
      1440,
      1000
    ],
    "phone": [
      390,
      844
    ]
  },
  "measurements": [
    {
      "phase": "before",
      "theme": "light-plus",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          133.0235294117647,
          169.16470588235293,
          149.08627450980393
        ],
        "contrast": 1.846099746147993,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          243,
          243,
          243
        ],
        "contrast": 1.3040014556244668,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "light-plus",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          191.75294117647059,
          139.04705882352943,
          140.05098039215687
        ],
        "contrast": 1.4969135861332097,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 2.8882959349781228,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "light-plus",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          188.23921568627452,
          152.09803921568627,
          130.01176470588234
        ],
        "contrast": 1.822268868809478,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 1.7224996129245542,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "light-plus",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          133.0235294117647,
          169.16470588235293,
          149.08627450980393
        ],
        "contrast": 1.846099746147993,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          243,
          243,
          243
        ],
        "contrast": 1.3040014556244668,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "light-plus",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          191.75294117647059,
          139.04705882352943,
          140.05098039215687
        ],
        "contrast": 1.4969135861332097,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 2.8882959349781228,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "light-plus",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          188.23921568627452,
          152.09803921568627,
          130.01176470588234
        ],
        "contrast": 1.822268868809478,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 1.7224996129245542,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "solarized-light",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          132.02745098039216,
          164.68235294117648,
          135.14117647058825
        ],
        "contrast": 1.9489057108212127,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          238,
          232,
          213
        ],
        "contrast": 1.1809080172892015,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "solarized-light",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          190.75686274509803,
          134.56470588235294,
          126.10588235294118
        ],
        "contrast": 1.573884460706014,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 2.677594260852064,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "solarized-light",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          187.24313725490197,
          147.6156862745098,
          116.06666666666668
        ],
        "contrast": 1.9138052814911848,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 1.596842976521941,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "solarized-light",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          132.02745098039216,
          164.68235294117648,
          135.14117647058825
        ],
        "contrast": 1.9489057108212127,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          238,
          232,
          213
        ],
        "contrast": 1.1809080172892015,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "solarized-light",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          190.75686274509803,
          134.56470588235294,
          126.10588235294118
        ],
        "contrast": 1.573884460706014,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 2.677594260852064,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "solarized-light",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          187.24313725490197,
          147.6156862745098,
          116.06666666666668
        ],
        "contrast": 1.9138052814911848,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 1.596842976521941,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-deepsea",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          11.501960784313725,
          49.13725490196079,
          32.04705882352941
        ],
        "contrast": 10.1456350491926,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          33,
          37,
          47
        ],
        "contrast": 10.59102656688572,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-deepsea",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          70.23137254901961,
          19.019607843137255,
          23.011764705882353
        ],
        "contrast": 7.99956888712832,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 6.687899245493287,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-deepsea",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          66.71764705882353,
          32.07058823529412,
          12.972549019607843
        ],
        "contrast": 10.010352708182133,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 11.214302783792606,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-deepsea",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          11.501960784313725,
          49.13725490196079,
          32.04705882352941
        ],
        "contrast": 10.1456350491926,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          33,
          37,
          47
        ],
        "contrast": 10.59102656688572,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-deepsea",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          70.23137254901961,
          19.019607843137255,
          23.011764705882353
        ],
        "contrast": 7.99956888712832,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 6.687899245493287,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-deepsea",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          66.71764705882353,
          32.07058823529412,
          12.972549019607843
        ],
        "contrast": 10.010352708182133,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 11.214302783792606,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neutral",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          17.976470588235294,
          54.11764705882353,
          34.03921568627451
        ],
        "contrast": 9.495123180670001,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 11.260437483213211,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neutral",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          76.70588235294117,
          24,
          25.00392156862745
        ],
        "contrast": 7.5056880476288015,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 6.147661152083718,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neutral",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          73.1921568627451,
          37.05098039215686,
          14.964705882352941
        ],
        "contrast": 9.321711227203458,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 10.30842885650277,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neutral",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          17.976470588235294,
          54.11764705882353,
          34.03921568627451
        ],
        "contrast": 9.495123180670001,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 11.260437483213211,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neutral",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          76.70588235294117,
          24,
          25.00392156862745
        ],
        "contrast": 7.5056880476288015,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 6.147661152083718,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neutral",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          73.1921568627451,
          37.05098039215686,
          14.964705882352941
        ],
        "contrast": 9.321711227203458,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 10.30842885650277,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neo",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          17.976470588235294,
          54.11764705882353,
          34.03921568627451
        ],
        "contrast": 9.495123180670001,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 11.260437483213211,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neo",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          76.70588235294117,
          24,
          25.00392156862745
        ],
        "contrast": 7.5056880476288015,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 6.147661152083718,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neo",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          73.1921568627451,
          37.05098039215686,
          14.964705882352941
        ],
        "contrast": 9.321711227203458,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 10.30842885650277,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neo",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "oklch(0.871 0.15 154.449)",
        "background": [
          17.976470588235294,
          54.11764705882353,
          34.03921568627451
        ],
        "contrast": 9.495123180670001,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 11.260437483213211,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neo",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "oklch(0.808 0.114 19.571)",
        "background": [
          76.70588235294117,
          24,
          25.00392156862745
        ],
        "contrast": 7.5056880476288015,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "oklch(0.704 0.191 22.216)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 6.147661152083718,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "before",
      "theme": "openhands-neo",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "oklch(0.879 0.169 91.605)",
        "background": [
          73.1921568627451,
          37.05098039215686,
          14.964705882352941
        ],
        "contrast": 9.321711227203458,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "oklch(0.828 0.189 84.429)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 10.30842885650277,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "light-plus",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(15, 115, 77)",
        "background": [
          231.0392156862745,
          241.0313725490196,
          236.95294117647057
        ],
        "contrast": 5.08615394968444,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(125, 93, 8)",
        "background": [
          243,
          243,
          243
        ],
        "contrast": 5.499581295721295,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "light-plus",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(192, 40, 45)",
        "background": [
          248.9843137254902,
          232.9764705882353,
          233.99607843137255
        ],
        "contrast": 4.987388479939581,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(192, 40, 45)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 5.861496908760459,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "light-plus",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(125, 93, 8)",
        "background": [
          242.05098039215687,
          237.97254901960784,
          230.01960784313727
        ],
        "contrast": 5.273307903874047,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(125, 93, 8)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 6.102448885104512,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "light-plus",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(15, 115, 77)",
        "background": [
          231.0392156862745,
          241.0313725490196,
          236.95294117647057
        ],
        "contrast": 5.08615394968444,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(125, 93, 8)",
        "background": [
          243,
          243,
          243
        ],
        "contrast": 5.499581295721295,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "light-plus",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(192, 40, 45)",
        "background": [
          248.9843137254902,
          232.9764705882353,
          233.99607843137255
        ],
        "contrast": 4.987388479939581,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(192, 40, 45)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 5.861496908760459,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "light-plus",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(125, 93, 8)",
        "background": [
          242.05098039215687,
          237.97254901960784,
          230.01960784313727
        ],
        "contrast": 5.273307903874047,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(125, 93, 8)",
        "background": [
          255,
          255,
          255
        ],
        "contrast": 6.102448885104512,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "solarized-light",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(93, 106, 0)",
        "background": [
          236.1764705882353,
          231.9294117647059,
          203.85490196078433
        ],
        "contrast": 4.813619296883406,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(115, 84, 0)",
        "background": [
          238,
          232,
          213
        ],
        "contrast": 5.718497780222723,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "solarized-light",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(187, 42, 38)",
        "background": [
          246.1686274509804,
          224.89411764705883,
          207.83137254901962
        ],
        "contrast": 4.778751474106289,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(187, 42, 38)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 5.606941500925068,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "solarized-light",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(115, 84, 0)",
        "background": [
          239.23529411764707,
          229.8901960784314,
          203.85490196078433
        ],
        "contrast": 5.623902519172367,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(115, 84, 0)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 6.495634287633329,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "solarized-light",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(93, 106, 0)",
        "background": [
          236.1764705882353,
          231.9294117647059,
          203.85490196078433
        ],
        "contrast": 4.813619296883406,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(115, 84, 0)",
        "background": [
          238,
          232,
          213
        ],
        "contrast": 5.718497780222723,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "solarized-light",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(187, 42, 38)",
        "background": [
          246.1686274509804,
          224.89411764705883,
          207.83137254901962
        ],
        "contrast": 4.778751474106289,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(187, 42, 38)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 5.606941500925068,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "solarized-light",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(115, 84, 0)",
        "background": [
          239.23529411764707,
          229.8901960784314,
          203.85490196078433
        ],
        "contrast": 5.623902519172367,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(115, 84, 0)",
        "background": [
          253,
          246,
          227
        ],
        "contrast": 6.495634287633329,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-deepsea",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(165, 231, 94)",
        "background": [
          26.905882352941177,
          36.53333333333333,
          27.95294117647059
        ],
        "contrast": 10.735755417161473,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(201, 185, 116)",
        "background": [
          33,
          37,
          47
        ],
        "contrast": 7.790234249560919,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-deepsea",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(239, 118, 106)",
        "background": [
          33.839215686274514,
          24.60392156862745,
          28.972549019607843
        ],
        "contrast": 6.118268254269396,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(239, 118, 106)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 6.870870271413053,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-deepsea",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(201, 185, 116)",
        "background": [
          29.862745098039216,
          31.537254901960786,
          29.992156862745098
        ],
        "contrast": 8.371547882067462,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(201, 185, 116)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 9.819542856968365,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-deepsea",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(165, 231, 94)",
        "background": [
          26.905882352941177,
          36.53333333333333,
          27.95294117647059
        ],
        "contrast": 10.735755417161473,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(201, 185, 116)",
        "background": [
          33,
          37,
          47
        ],
        "contrast": 7.790234249560919,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-deepsea",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(239, 118, 106)",
        "background": [
          33.839215686274514,
          24.60392156862745,
          28.972549019607843
        ],
        "contrast": 6.118268254269396,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(239, 118, 106)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 6.870870271413053,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-deepsea",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(201, 185, 116)",
        "background": [
          29.862745098039216,
          31.537254901960786,
          29.992156862745098
        ],
        "contrast": 8.371547882067462,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(201, 185, 116)",
        "background": [
          11,
          14,
          20
        ],
        "contrast": 9.819542856968365,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neutral",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(165, 231, 94)",
        "background": [
          38.58039215686274,
          45.51372549019608,
          31.545098039215688
        ],
        "contrast": 9.535965152069169,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(201, 185, 116)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 8.282619743494942,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neutral",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(231, 106, 94)",
        "background": [
          45.51372549019608,
          32.56470588235294,
          31.545098039215688
        ],
        "contrast": 4.915282745642709,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(231, 106, 94)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 5.598321052448546,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neutral",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(201, 185, 116)",
        "background": [
          41.537254901960786,
          40.51764705882353,
          33.5843137254902
        ],
        "contrast": 7.466937285265344,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(201, 185, 116)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 9.026335466056056,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neutral",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(165, 231, 94)",
        "background": [
          38.58039215686274,
          45.51372549019608,
          31.545098039215688
        ],
        "contrast": 9.535965152069169,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(201, 185, 116)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 8.282619743494942,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neutral",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(231, 106, 94)",
        "background": [
          45.51372549019608,
          32.56470588235294,
          31.545098039215688
        ],
        "contrast": 4.915282745642709,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(231, 106, 94)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 5.598321052448546,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neutral",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(201, 185, 116)",
        "background": [
          41.537254901960786,
          40.51764705882353,
          33.5843137254902
        ],
        "contrast": 7.466937285265344,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(201, 185, 116)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 9.026335466056056,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neo",
      "viewportName": "desktop",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(165, 231, 94)",
        "background": [
          38.58039215686274,
          45.51372549019608,
          31.545098039215688
        ],
        "contrast": 9.535965152069169,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(201, 185, 116)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 8.282619743494942,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 502,
        "y": 136,
        "width": 736,
        "height": 146
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neo",
      "viewportName": "desktop",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(231, 106, 94)",
        "background": [
          45.51372549019608,
          32.56470588235294,
          31.545098039215688
        ],
        "contrast": 4.915282745642709,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(231, 106, 94)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 5.598321052448546,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 298,
        "width": 736,
        "height": 110
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neo",
      "viewportName": "desktop",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(201, 185, 116)",
        "background": [
          41.537254901960786,
          40.51764705882353,
          33.5843137254902
        ],
        "contrast": 7.466937285265344,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(201, 185, 116)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 9.026335466056056,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 502,
        "y": 424,
        "width": 736,
        "height": 174
      },
      "viewport": {
        "width": 1440,
        "height": 1000
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neo",
      "viewportName": "phone",
      "state": "stderr",
      "badge": {
        "text": "ok",
        "color": "rgb(165, 231, 94)",
        "background": [
          38.58039215686274,
          45.51372549019608,
          31.545098039215688
        ],
        "contrast": 9.535965152069169,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": null,
      "stderr": {
        "text": "QA hook diagnostic\n",
        "color": "rgb(201, 185, 116)",
        "background": [
          32,
          32,
          32
        ],
        "contrast": 8.282619743494942,
        "fontSize": "12px"
      },
      "rootBox": {
        "x": 16,
        "y": 136,
        "width": 358,
        "height": 146
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neo",
      "viewportName": "phone",
      "state": "timeout",
      "badge": {
        "text": "failed",
        "color": "rgb(231, 106, 94)",
        "background": [
          45.51372549019608,
          32.56470588235294,
          31.545098039215688
        ],
        "contrast": 4.915282745642709,
        "fontSize": "12px"
      },
      "blockedReason": null,
      "error": {
        "text": "Error: Hook timed out after 1 seconds",
        "color": "rgb(231, 106, 94)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 5.598321052448546,
        "fontSize": "14px"
      },
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 298,
        "width": 358,
        "height": 110
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    },
    {
      "phase": "after",
      "theme": "openhands-neo",
      "viewportName": "phone",
      "state": "blocked",
      "badge": {
        "text": "blocked",
        "color": "rgb(201, 185, 116)",
        "background": [
          41.537254901960786,
          40.51764705882353,
          33.5843137254902
        ],
        "contrast": 7.466937285265344,
        "fontSize": "12px"
      },
      "blockedReason": {
        "text": "Blocked reason: QA request blocked by local hook",
        "color": "rgb(201, 185, 116)",
        "background": [
          24,
          24,
          24
        ],
        "contrast": 9.026335466056056,
        "fontSize": "14px"
      },
      "error": null,
      "stderr": null,
      "rootBox": {
        "x": 16,
        "y": 322,
        "width": 358,
        "height": 214
      },
      "viewport": {
        "width": 390,
        "height": 844
      },
      "insideViewport": true,
      "pageHorizontalOverflow": false
    }
  ],
  "film": {
    "durationSeconds": 10.0,
    "dimensions": [
      1280,
      512
    ],
    "video": "H.264/yuv420p",
    "audio": "AAC",
    "scenes": [
      {
        "phase": "before",
        "recording": "before-hook-colors.mp4",
        "cropXYWH": [
          502,
          424,
          736,
          174
        ],
        "timelineSeconds": [
          2,
          6
        ]
      },
      {
        "phase": "after",
        "recording": "after-hook-colors.mp4",
        "cropXYWH": [
          502,
          424,
          736,
          174
        ],
        "timelineSeconds": [
          6,
          10
        ]
      }
    ],
    "provenance": "Actual control-openhands recordings; exact component-only crop, proportional scaling, brief real scene held for readability. No unrelated UI exported.",
    "ambience": {
      "origin": "Original sine-tone composition174.61/220/261.63Hz at0.004 base amplitude, gentle fades",
      "meanDB": "-53.2",
      "peakDB": "-42.9"
    },
    "gif": {
      "durationSeconds": 8.0,
      "dimensions": [
        960,
        384
      ],
      "audio": false,
      "source": "Same scenes, omitting two-second title card"
    }
  },
  "privacy": "Only the target component with generated QA hook command, reason and output; no user conversation content, sidebar, title, account or credential value.",
  "limits": [
    "Shared GenericEventMessage title, outer chevron and unchanged muted labels are outside the migrated color scope.",
    "Local OpenHands Agent Server only; same shared renderer is used by the event consumers."
  ],
  "files": {
    "hook-diagnostics-before-after.mp4": {
      "bytes": 138580,
      "sha256": "3379db7567edcae56c5422599439671921e9975d8f81130c7ca570acc07abed7"
    },
    "hook-diagnostics-before-after.gif": {
      "bytes": 1413549,
      "sha256": "da178969424a48f93aad84717d7a11b77297b8c584e20d2a6db058909ddff079"
    },
    "hook-diagnostics-poster.jpg": {
      "bytes": 30447,
      "sha256": "5e2498d854de4ce44de6b7541728d7a4733d302ff10816bfaae29c45d5e0a7bd"
    },
    "hook-diagnostics-captions.vtt": {
      "bytes": 196,
      "sha256": "8540ead3b218602a472de03acf1f0c2e12ef5a5a24a0989f9dce8c55eca82614"
    },
    "hook-diagnostics-five-themes.png": {
      "bytes": 196572,
      "sha256": "36c9741d426358c81604d9dab646b8eb44c771358bcea54864deee63b770397d"
    },
    "hook-diagnostics-before-light-plus.png": {
      "bytes": 21739,
      "sha256": "0809962add46cdc4c1079155d8f727630b054ee44f6211eb6b3b1653c6c8a41a"
    },
    "hook-diagnostics-after-light-plus.png": {
      "bytes": 22257,
      "sha256": "08f034fb28cbba0f9bdbc84d3da8523be434da8c05fbcf7f8273560a678c3dcd"
    }
  },
  "runtimeProof": {
    "before": {
      "stats": {
        "usage_to_metrics": {
          "default": {
            "model_name": "openai/gpt-4o",
            "accumulated_cost": 0,
            "max_budget_per_task": null,
            "accumulated_token_usage": {
              "model": "openai/gpt-4o",
              "prompt_tokens": 0,
              "completion_tokens": 0,
              "cache_read_tokens": 0,
              "cache_write_tokens": 0,
              "reasoning_tokens": 0,
              "context_window": 0,
              "per_turn_token": 0,
              "response_id": ""
            },
            "costs": [],
            "response_latencies": [],
            "token_usages": []
          },
          "condenser": {
            "model_name": "openai/gpt-4o",
            "accumulated_cost": 0,
            "max_budget_per_task": null,
            "accumulated_token_usage": {
              "model": "openai/gpt-4o",
              "prompt_tokens": 0,
              "completion_tokens": 0,
              "cache_read_tokens": 0,
              "cache_write_tokens": 0,
              "reasoning_tokens": 0,
              "context_window": 0,
              "per_turn_token": 0,
              "response_id": ""
            },
            "costs": [],
            "response_latencies": [],
            "token_usages": []
          }
        }
      },
      "events": [
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "SystemPromptEvent",
          "source": "agent",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "HookExecutionEvent",
          "source": "hook",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": "UserPromptSubmit",
          "success": true,
          "blocked": false,
          "exit_code": 0,
          "reason": null,
          "error": null,
          "stderr": "QA hook diagnostic\n"
        },
        {
          "kind": "HookExecutionEvent",
          "source": "hook",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": "UserPromptSubmit",
          "success": false,
          "blocked": false,
          "exit_code": -1,
          "reason": null,
          "error": "Hook timed out after 1 seconds",
          "stderr": ""
        },
        {
          "kind": "HookExecutionEvent",
          "source": "hook",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": "UserPromptSubmit",
          "success": false,
          "blocked": true,
          "exit_code": 2,
          "reason": "QA request blocked by local hook",
          "error": null,
          "stderr": ""
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "MessageEvent",
          "source": "user",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        }
      ]
    },
    "after": {
      "stats": {
        "usage_to_metrics": {
          "default": {
            "model_name": "openai/gpt-4o",
            "accumulated_cost": 0,
            "max_budget_per_task": null,
            "accumulated_token_usage": {
              "model": "openai/gpt-4o",
              "prompt_tokens": 0,
              "completion_tokens": 0,
              "cache_read_tokens": 0,
              "cache_write_tokens": 0,
              "reasoning_tokens": 0,
              "context_window": 0,
              "per_turn_token": 0,
              "response_id": ""
            },
            "costs": [],
            "response_latencies": [],
            "token_usages": []
          },
          "condenser": {
            "model_name": "openai/gpt-4o",
            "accumulated_cost": 0,
            "max_budget_per_task": null,
            "accumulated_token_usage": {
              "model": "openai/gpt-4o",
              "prompt_tokens": 0,
              "completion_tokens": 0,
              "cache_read_tokens": 0,
              "cache_write_tokens": 0,
              "reasoning_tokens": 0,
              "context_window": 0,
              "per_turn_token": 0,
              "response_id": ""
            },
            "costs": [],
            "response_latencies": [],
            "token_usages": []
          }
        }
      },
      "events": [
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "SystemPromptEvent",
          "source": "agent",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "HookExecutionEvent",
          "source": "hook",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": "UserPromptSubmit",
          "success": true,
          "blocked": false,
          "exit_code": 0,
          "reason": null,
          "error": null,
          "stderr": "QA hook diagnostic\n"
        },
        {
          "kind": "HookExecutionEvent",
          "source": "hook",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": "UserPromptSubmit",
          "success": false,
          "blocked": false,
          "exit_code": -1,
          "reason": null,
          "error": "Hook timed out after 1 seconds",
          "stderr": ""
        },
        {
          "kind": "HookExecutionEvent",
          "source": "hook",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": "UserPromptSubmit",
          "success": false,
          "blocked": true,
          "exit_code": 2,
          "reason": "QA request blocked by local hook",
          "error": null,
          "stderr": ""
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "MessageEvent",
          "source": "user",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        },
        {
          "kind": "ConversationStateUpdateEvent",
          "source": "environment",
          "tool_name": null,
          "critic_result": null,
          "hook_event_type": null,
          "success": null,
          "blocked": null,
          "exit_code": null,
          "reason": null,
          "error": null,
          "stderr": null
        }
      ]
    }
  },
  "afterMinimumScopedTextContrast": {
    "badge": 4.778751474106289,
    "blockedReason": 6.102448885104512,
    "error": 5.598321052448546,
    "stderr": 5.499581295721295
  },
  "layoutChecks": {
    "allCapturesInsideViewport": true,
    "allCapturesWithoutPageHorizontalOverflow": true
  },
  "validation": {
    "focusedExistingTests": 26,
    "fullLint": {
      "errors": 0,
      "warnings": 665
    },
    "appBuild": "passed exact committed source",
    "libraryBuild": "passed",
    "commitHooks": "ESLint, formatting, typecheck and translation completeness passed",
    "detectedRawColorFindingsRemoved": 3,
    "extraLocalRawMapClasses": "Six status badge classes are unreported by no-raw-colors"
  },
  "cleanup": {
    "before": "Owned combined baseline stack stopped; five ports closed; private data purged;75 evidence files preserved",
    "after": "Owned After stack stopped; five ports closed; private data purged;36 evidence files preserved",
    "pageErrors": 0,
    "appErrors": 0,
    "touchesOtherRuns": false
  },
  "montageAnnotations": "Badge / reason ratios refer to actual badge ink on its tint, then diagnostic payload ink on canvas. Child muted labels have their own unchanged ink and are outside these ratios.",
  "recordingLimits": "The control recording captures a stable state for about one second, held for readability in each four-second film scene; the video shows color changes, not a timed interaction performance claim.",
  "pullRequest": "https://github.com/OpenHands/OpenHands/pull/18534",
  "issue": "https://github.com/OpenHands/OpenHands/issues/18521",
  "publicationChecks": {
    "visualInspection": "All 0.5-second film timepoints and five-theme montage inspected independently before publication. Only named component evidence is exported.",
    "sourceHashes": "Every named asset verified against recorded bytes and SHA-256.",
    "format": "H.264/yuv420p with AAC; silent GIF durations independently checked."
  }
}
