{
  "version": "riddle-proof.profile-result.v1",
  "profile_name": "riddle-site-v497-dashboard-mcp-token-reveal-copy",
  "runner": "riddle",
  "status": "product_regression",
  "baseline_policy": "invariant_only",
  "route": {
    "requested": "https://riddledc.com/dashboard/",
    "observed": "/dashboard/",
    "expected_path": "/dashboard/",
    "matched": true,
    "http_status": 200
  },
  "artifacts": {
    "screenshots": [
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-desktop",
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-desktop-dashboard-mcp-token-masked",
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-phone",
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-phone-dashboard-mcp-token-masked",
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-mini",
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-mini-dashboard-mcp-token-masked",
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad",
      "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-dashboard-mcp-token-masked"
    ],
    "console": "console.json",
    "proof_json": "proof.json",
    "dom_summary": "dom-summary.json"
  },
  "checks": [
    {
      "type": "network_mocks_succeeded",
      "label": "network mocks succeeded",
      "status": "passed",
      "evidence": {
        "mock_count": 3,
        "required_count": 3,
        "hit_count": 21,
        "hits_by_label": {
          "dashboard-balance-v497": 7,
          "dashboard-jobs-v497": 7,
          "dashboard-api-keys-list-v497": 7
        },
        "required_hits_by_label": {
          "dashboard-balance-v497": 4,
          "dashboard-jobs-v497": 4,
          "dashboard-api-keys-list-v497": 4
        },
        "max_hits_by_label": {},
        "response_hits_by_label": {},
        "failed": []
      }
    },
    {
      "type": "setup_actions_succeeded",
      "label": "setup actions succeeded",
      "status": "failed",
      "evidence": {
        "action_count": 29,
        "viewports": [
          {
            "name": "desktop",
            "expected_action_count": 29,
            "ok": false,
            "result_count": 19
          },
          {
            "name": "phone",
            "expected_action_count": 29,
            "ok": false,
            "result_count": 19
          },
          {
            "name": "ipad-mini",
            "expected_action_count": 29,
            "ok": false,
            "result_count": 19
          },
          {
            "name": "ipad",
            "expected_action_count": 29,
            "ok": false,
            "result_count": 19
          }
        ],
        "setup_summary": {
          "viewport_count": 4,
          "action_count": 29,
          "viewports": [
            {
              "name": "desktop",
              "expected_action_count": 29,
              "ok": false,
              "result_count": 19,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 6,
                "assert_text_visible": 2,
                "assert_text_absent": 1,
                "clear_console": 1,
                "screenshot": 1,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v497-dashboard-mcp-token-reveal-copy-desktop-dashboard-mcp-token-masked"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 17,
                  "selector": ".mcp-token-btn.primary",
                  "frame_selector": null,
                  "text": "Copy token"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser T... (516 chars)"
                },
                {
                  "ordinal": 9,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser T... (516 chars)"
                },
                {
                  "ordinal": 10,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser T... (516 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser T... (516 chars)"
                },
                {
                  "ordinal": 12,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                }
              ],
              "failed": [
                {
                  "ordinal": 18,
                  "action": "wait_for_text",
                  "selector": ".mcp-token-section",
                  "frame_selector": null,
                  "reason": "text_not_found"
                }
              ],
              "optional_failed": []
            },
            {
              "name": "phone",
              "expected_action_count": 29,
              "ok": false,
              "result_count": 19,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 6,
                "assert_text_visible": 2,
                "assert_text_absent": 1,
                "clear_console": 1,
                "screenshot": 1,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v497-dashboard-mcp-token-reveal-copy-phone-dashboard-mcp-token-masked"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 17,
                  "selector": ".mcp-token-btn.primary",
                  "frame_selector": null,
                  "text": "Copy token"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 9,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 10,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 12,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                }
              ],
              "failed": [
                {
                  "ordinal": 18,
                  "action": "wait_for_text",
                  "selector": ".mcp-token-section",
                  "frame_selector": null,
                  "reason": "text_not_found"
                }
              ],
              "optional_failed": []
            },
            {
              "name": "ipad-mini",
              "expected_action_count": 29,
              "ok": false,
              "result_count": 19,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 6,
                "assert_text_visible": 2,
                "assert_text_absent": 1,
                "clear_console": 1,
                "screenshot": 1,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-mini-dashboard-mcp-token-masked"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 17,
                  "selector": ".mcp-token-btn.primary",
                  "frame_selector": null,
                  "text": "Copy token"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 9,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 10,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 12,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                }
              ],
              "failed": [
                {
                  "ordinal": 18,
                  "action": "wait_for_text",
                  "selector": ".mcp-token-section",
                  "frame_selector": null,
                  "reason": "text_not_found"
                }
              ],
              "optional_failed": []
            },
            {
              "name": "ipad",
              "expected_action_count": 29,
              "ok": false,
              "result_count": 19,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 6,
                "assert_text_visible": 2,
                "assert_text_absent": 1,
                "clear_console": 1,
                "screenshot": 1,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-dashboard-mcp-token-masked"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 17,
                  "selector": ".mcp-token-btn.primary",
                  "frame_selector": null,
                  "text": "Copy token"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 9,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 10,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s mi... (516 chars)"
                },
                {
                  "ordinal": 12,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• R... (230 chars)"
                }
              ],
              "failed": [
                {
                  "ordinal": 18,
                  "action": "wait_for_text",
                  "selector": ".mcp-token-section",
                  "frame_selector": null,
                  "reason": "text_not_found"
                }
              ],
              "optional_failed": []
            }
          ]
        },
        "failed": [
          {
            "viewport": "desktop",
            "action": "wait_for_text",
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "frame_index": null,
            "reason": "text_not_found"
          },
          {
            "viewport": "phone",
            "action": "wait_for_text",
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "frame_index": null,
            "reason": "text_not_found"
          },
          {
            "viewport": "ipad-mini",
            "action": "wait_for_text",
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "frame_index": null,
            "reason": "text_not_found"
          },
          {
            "viewport": "ipad",
            "action": "wait_for_text",
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "frame_index": null,
            "reason": "text_not_found"
          }
        ]
      },
      "message": "Setup actions failed in 4 viewport action(s)."
    },
    {
      "type": "route_loaded",
      "label": "route_loaded",
      "status": "passed",
      "evidence": {
        "expected_path": "/dashboard/",
        "observed_paths": [
          "/dashboard/",
          "/dashboard/",
          "/dashboard/",
          "/dashboard/"
        ],
        "http_statuses": [
          200,
          200,
          200,
          200
        ]
      }
    },
    {
      "type": "selector_visible",
      "label": "selector_visible",
      "status": "passed",
      "evidence": {
        "selector": ".dashboard-content",
        "visible_counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Dashboard",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Browser Time Balance",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "4h 0m",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "1 active",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "job_v497_completed",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Timed Out",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Riddle Proof v497 existing key",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".mcp-token-section",
        "text": "MCP Login Token",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          }
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".mcp-token-section",
        "text": "Copy token",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          }
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".mcp-token-section",
        "text": "Reveal",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          }
        ]
      }
    },
    {
      "type": "selector_text_absent",
      "label": "selector_text_absent",
      "status": "passed",
      "evidence": {
        "selector": ".mcp-token-section",
        "text": "proof497",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 0,
            "matched": false,
            "samples": []
          },
          {
            "viewport": "phone",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 0,
            "matched": false,
            "samples": []
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 0,
            "matched": false,
            "samples": []
          },
          {
            "viewport": "ipad",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 0,
            "matched": false,
            "samples": []
          }
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "Could not load token",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "Application error",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".jobs-list tbody tr",
        "expected_count": 2,
        "counts": [
          2,
          2,
          2,
          2
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".api-keys-list tbody tr",
        "expected_count": 1,
        "counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".mcp-token-section code",
        "expected_count": 0,
        "counts": [
          0,
          0,
          0,
          0
        ]
      }
    },
    {
      "type": "no_horizontal_overflow",
      "label": "no_horizontal_overflow",
      "status": "passed",
      "evidence": {
        "max_overflow_px": 1,
        "overflow_px": [
          0,
          0,
          0,
          0
        ],
        "bounds_overflow_px": [
          0,
          0,
          0,
          0
        ],
        "overflow_offender_counts": [
          0,
          0,
          0,
          0
        ],
        "viewports": [
          "desktop",
          "phone",
          "ipad-mini",
          "ipad"
        ]
      }
    },
    {
      "type": "no_fatal_console_errors",
      "label": "no_fatal_console_errors",
      "status": "failed",
      "evidence": {
        "console_fatal_count": 0,
        "page_error_count": 1,
        "total_console_fatal_count": 0,
        "total_page_error_count": 1,
        "allowed_console_fatal_count": 0,
        "explicitly_allowed_console_fatal_count": 0,
        "allowed_expected_network_mock_console_count": 0,
        "allowed_expected_network_mock_console_events": [],
        "allowed_page_error_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "allowed_page_error_texts": [],
        "allowed_page_error_patterns": []
      },
      "message": "1 fatal browser error(s) were captured."
    },
    {
      "type": "no_console_warnings",
      "label": "no_console_warnings",
      "status": "failed",
      "evidence": {
        "console_warning_count": 10,
        "total_console_warning_count": 10,
        "allowed_console_warning_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "unallowed_console_warning_samples": [
          "The resource https://riddledc.com/_next/static/css/b4d2f4e6d45886a0.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. https://riddledc.com/dashboard/",
          "The resource https://riddledc.com/_next/static/css/3913f5640fa32339.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. https://riddledc.com/dashboard/",
          "The resource https://riddledc.com/_next/static/css/4b3afbe31f145935.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. https://riddledc.com/dashboard/",
          "The resource https://riddledc.com/_next/static/css/2d6eac7c22a4fd3d.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. https://riddledc.com/dashboard/",
          "The resource https://riddledc.com/_next/static/css/162903ef0b2f7bf4.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. https://riddledc.com/dashboard/"
        ],
        "allowed_console_warning_samples": []
      },
      "message": "10 console warning(s) were captured."
    }
  ],
  "summary": "riddle-site-v497-dashboard-mcp-token-reveal-copy failed 3 product invariant(s) across 4 viewport(s).",
  "captured_at": "2026-05-17T13:45:24.868Z",
  "evidence": {
    "version": "riddle-proof.profile-evidence.v1",
    "profile_name": "riddle-site-v497-dashboard-mcp-token-reveal-copy",
    "target_url": "https://riddledc.com/dashboard/",
    "baseline_policy": "invariant_only",
    "captured_at": "2026-05-17T13:45:24.868Z",
    "viewports": [
      {
        "name": "desktop",
        "width": 1280,
        "height": 900,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1776,
        "body_text_sample": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Status Actions Riddle Proof v497 existing key rdc_live_•••0497 5/17/2026 5/17/2026 Active Revoke MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 1280,
        "client_width": 1280,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 2,
            "visible_count": 2
          },
          ".api-keys-list tbody tr": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section code": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          }
        },
        "text_matches": {
          "text:Dashboard": true,
          "text:Browser Time Balance": true,
          "text:4h 0m": true,
          "text:1 active": true,
          "text:job_v497_completed": true,
          "text:Timed Out": true,
          "text:Riddle Proof v497 existing key": true,
          "text:Could not load token": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.accessToken",
            "value_length": 363,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API key... (1776 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API key... (1776 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 9,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API key... (1776 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 10,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API key... (1776 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp497-dashboard@example.com Sign Out Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API key... (1776 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 12,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_absent",
            "ordinal": 14,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "timeout_ms": 1000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 16,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "dashboard-mcp-token-masked",
            "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-desktop-dashboard-mcp-token-masked"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 17,
            "selector": ".mcp-token-btn.primary",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Copy token"
          },
          {
            "ok": false,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "reason": "text_not_found",
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "timeout_ms": 10000
          }
        ],
        "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-desktop"
      },
      {
        "name": "phone",
        "width": 390,
        "height": 844,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1678,
        "body_text_sample": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Status Actions Riddle Proof v497 existing key rdc_live_•••0497 5/17/2026 5/17/2026 Active Revoke MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 390,
        "client_width": 390,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 2,
            "visible_count": 2
          },
          ".api-keys-list tbody tr": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section code": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          }
        },
        "text_matches": {
          "text:Dashboard": true,
          "text:Browser Time Balance": true,
          "text:4h 0m": true,
          "text:1 active": true,
          "text:job_v497_completed": true,
          "text:Timed Out": true,
          "text:Riddle Proof v497 existing key": true,
          "text:Could not load token": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.accessToken",
            "value_length": 363,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 9,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 10,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 12,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_absent",
            "ordinal": 14,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "timeout_ms": 1000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 10,
            "cleared_page_error_count": 1
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 16,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "dashboard-mcp-token-masked",
            "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-phone-dashboard-mcp-token-masked"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 17,
            "selector": ".mcp-token-btn.primary",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Copy token"
          },
          {
            "ok": false,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "reason": "text_not_found",
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "timeout_ms": 10000
          }
        ],
        "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-phone"
      },
      {
        "name": "ipad-mini",
        "width": 768,
        "height": 1024,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1678,
        "body_text_sample": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Status Actions Riddle Proof v497 existing key rdc_live_•••0497 5/17/2026 5/17/2026 Active Revoke MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 768,
        "client_width": 768,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 2,
            "visible_count": 2
          },
          ".api-keys-list tbody tr": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section code": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          }
        },
        "text_matches": {
          "text:Dashboard": true,
          "text:Browser Time Balance": true,
          "text:4h 0m": true,
          "text:1 active": true,
          "text:job_v497_completed": true,
          "text:Timed Out": true,
          "text:Riddle Proof v497 existing key": true,
          "text:Could not load token": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.accessToken",
            "value_length": 363,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 9,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 10,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 12,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_absent",
            "ordinal": 14,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "timeout_ms": 1000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 10,
            "cleared_page_error_count": 1
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 16,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "dashboard-mcp-token-masked",
            "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-mini-dashboard-mcp-token-masked"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 17,
            "selector": ".mcp-token-btn.primary",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Copy token"
          },
          {
            "ok": false,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "reason": "text_not_found",
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "timeout_ms": 10000
          }
        ],
        "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-mini"
      },
      {
        "name": "ipad",
        "width": 820,
        "height": 1180,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1678,
        "body_text_sample": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Status Actions Riddle Proof v497 existing key rdc_live_•••0497 5/17/2026 5/17/2026 Active Revoke MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 820,
        "client_width": 820,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 2,
            "visible_count": 2
          },
          ".api-keys-list tbody tr": {
            "count": 1,
            "visible_count": 1
          },
          ".mcp-token-section code": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".mcp-token-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ],
            "visible_match_texts": [
              "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account."
            ]
          }
        },
        "text_matches": {
          "text:Dashboard": true,
          "text:Browser Time Balance": true,
          "text:4h 0m": true,
          "text:1 active": true,
          "text:job_v497_completed": true,
          "text:Timed Out": true,
          "text:Riddle Proof v497 existing key": true,
          "text:Could not load token": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.accessToken",
            "value_length": 363,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp497-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 9,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 10,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Dashboard Browser Time Balance Available: 4h 0m ~$2.00 Reserved: 1m 0s 1 active Total: 4h 1m ~$2.01 ~480 jobs (30s minimum each) Buy Browser Time Account Summary 4h 0m Browser Time $2.00 Value 1 Active Job Recent Jobs JOB ID STATUS RUNTIME DATE job_v497_completed Completed 45s 5/17/2026, 1:42:00 PM job_v497_timeout Timed Out 120s 5/17/2026, 1:40:00 PM API Keys Use API keys to authenticate requests to the Riddle Browser API Create API Key Name Key Created Last Used Sta... (1678 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 12,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_absent",
            "ordinal": 14,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "timeout_ms": 1000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 10,
            "cleared_page_error_count": 2
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 16,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "dashboard-mcp-token-masked",
            "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad-dashboard-mcp-token-masked"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 17,
            "selector": ".mcp-token-btn.primary",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Copy token"
          },
          {
            "ok": false,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": ".mcp-token-section",
            "frame_selector": null,
            "optional": false,
            "reason": "text_not_found",
            "text": "MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. •••••••••••••••••••••••••••••••••••••••• Reveal Copy token Never share this token. Anyone with it can run jobs on your account.",
            "timeout_ms": 10000
          }
        ],
        "screenshot_label": "riddle-site-v497-dashboard-mcp-token-reveal-copy-ipad"
      }
    ],
    "console": {
      "events": [
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/b4d2f4e6d45886a0.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/3913f5640fa32339.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/4b3afbe31f145935.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/2d6eac7c22a4fd3d.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/162903ef0b2f7bf4.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/b4d2f4e6d45886a0.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/3913f5640fa32339.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/4b3afbe31f145935.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/2d6eac7c22a4fd3d.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "warning",
          "text": "The resource https://riddledc.com/_next/static/css/162903ef0b2f7bf4.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.",
          "location": {
            "url": "https://riddledc.com/dashboard/",
            "lineNumber": 0,
            "columnNumber": 0
          }
        }
      ],
      "fatal_count": 0
    },
    "page_errors": [
      {
        "message": "Failed to execute 'writeText' on 'Clipboard': Write permission denied."
      }
    ],
    "dialogs": [],
    "network_mocks": [
      {
        "ok": true,
        "label": "dashboard-balance-v497",
        "response_label": "dashboard-balance-v497",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v497",
        "response_label": "dashboard-jobs-v497",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-list-v497",
        "response_label": "dashboard-api-keys-list-v497",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v497",
        "response_label": "dashboard-balance-v497",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v497",
        "response_label": "dashboard-jobs-v497",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-list-v497",
        "response_label": "dashboard-api-keys-list-v497",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v497",
        "response_label": "dashboard-balance-v497",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v497",
        "response_label": "dashboard-jobs-v497",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-list-v497",
        "response_label": "dashboard-api-keys-list-v497",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v497",
        "response_label": "dashboard-balance-v497",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v497",
        "response_label": "dashboard-jobs-v497",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-list-v497",
        "response_label": "dashboard-api-keys-list-v497",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v497",
        "response_label": "dashboard-balance-v497",
        "hit_index": 4,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v497",
        "response_label": "dashboard-jobs-v497",
        "hit_index": 4,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-list-v497",
        "response_label": "dashboard-api-keys-list-v497",
        "hit_index": 4,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v497",
        "response_label": "dashboard-balance-v497",
        "hit_index": 5,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v497",
        "response_label": "dashboard-jobs-v497",
        "hit_index": 5,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-list-v497",
        "response_label": "dashboard-api-keys-list-v497",
        "hit_index": 5,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v497",
        "response_label": "dashboard-balance-v497",
        "hit_index": 6,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v497",
        "response_label": "dashboard-jobs-v497",
        "hit_index": 6,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-list-v497",
        "response_label": "dashboard-api-keys-list-v497",
        "hit_index": 6,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      }
    ],
    "dom_summary": {
      "expected_viewport_count": 4,
      "viewport_count": 4,
      "partial": false,
      "routes": [
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        }
      ],
      "titles": [
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents"
      ],
      "overflow_px": [
        0,
        0,
        0,
        0
      ],
      "bounds_overflow_px": [
        0,
        0,
        0,
        0
      ],
      "overflow_offender_counts": [
        0,
        0,
        0,
        0
      ],
      "frames": [
        {
          "viewport": "desktop",
          "selectors": []
        },
        {
          "viewport": "phone",
          "selectors": []
        },
        {
          "viewport": "ipad-mini",
          "selectors": []
        },
        {
          "viewport": "ipad",
          "selectors": []
        }
      ],
      "http_status": [],
      "link_status": [],
      "route_inventory": [],
      "network_mock_count": 3,
      "network_mock_hit_count": 21,
      "dialog_count": 0,
      "dialog_accept_count": 0,
      "dialog_dismiss_count": 0
    }
  }
}