{
  "config": {
    "argv": [
      "/usr/bin/node",
      "/app/node_modules/.bin/playwright",
      "test",
      "--project=ui",
      "--output=/workspace/artifacts/c310266/news-preview/test-output"
    ],
    "configFile": "/app/playwright.config.ts",
    "rootDir": "/app",
    "failOnFlakyTests": false,
    "forbidOnly": false,
    "fullyParallel": false,
    "globalSetup": null,
    "globalTeardown": null,
    "globalTimeout": 0,
    "grep": {},
    "grepInvert": null,
    "maxFailures": 0,
    "metadata": {
      "actualWorkers": 7
    },
    "preserveOutput": "always",
    "projects": [
      {
        "outputDir": "/workspace/artifacts/c310266/news-preview/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 7
        },
        "id": "ui",
        "name": "ui",
        "testDir": "/app/tests/ui",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      },
      {
        "outputDir": "/workspace/artifacts/c310266/news-preview/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 7
        },
        "id": "api",
        "name": "api",
        "testDir": "/app/tests/api",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      }
    ],
    "filteredProjects": [
      {
        "grep": {},
        "grepInvert": null,
        "outputDir": "/workspace/artifacts/c310266/news-preview/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 7
        },
        "name": "ui",
        "testDir": "/app/tests/ui",
        "snapshotDir": "/app/tests/ui",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000,
        "use": {
          "browserName": "chromium",
          "baseURL": "http://preview-news-elect-info.electinfo.svc.cluster.local",
          "extraHTTPHeaders": {},
          "screenshot": "on",
          "video": "on-first-retry",
          "trace": "on-first-retry"
        },
        "dependencies": [],
        "ignoreSnapshots": false,
        "__projectId": "ui"
      }
    ],
    "quiet": false,
    "reporter": [
      [
        "html",
        {
          "outputFolder": "/workspace/artifacts/c310266/news-preview/reports/html",
          "open": "never"
        }
      ],
      [
        "json",
        {
          "outputFile": "/workspace/artifacts/c310266/news-preview/reports/results.json"
        }
      ],
      [
        "list",
        null
      ]
    ],
    "reportSlowTests": {
      "max": 5,
      "threshold": 300000
    },
    "shard": null,
    "tags": [],
    "updateSnapshots": "default",
    "updateSourceMethod": "patch",
    "version": "1.64.1",
    "workers": 32,
    "webServer": null
  },
  "suites": [
    {
      "title": "tests/ui/chip-menu.spec.ts",
      "file": "tests/ui/chip-menu.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "chip opens canonical actions, follows and unfollows without navigation",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 409,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.356Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-chip-opens-canon-f12f4-nfollows-without-navigation-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-12a73f4a4ba9a0de34e9",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 50,
          "column": 5
        },
        {
          "title": "keyboard opens, traps focus both ways, escapes and returns focus",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 246,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.946Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-keyboard-opens-t-a0ac6-s-escapes-and-returns-focus-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-9b5d73cb8a9dcc07d2bb",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 68,
          "column": 5
        },
        {
          "title": "only one menu, Party keeps FEC link, other types keep entity fallback and new-tab profile",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 378,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.202Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-only-one-menu-Pa-f672f-allback-and-new-tab-profile-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-93c45c4471dd52d08357",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 89,
          "column": 5
        },
        {
          "title": "signed-out Follow uses identity sign-in and completes once after returning",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 470,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.589Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-signed-out-Follo-ca51c-pletes-once-after-returning-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-379d38ce6a517fd82824",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 111,
          "column": 5
        },
        {
          "title": "cancelling sign-in clears the pending action",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 311,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.074Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-cancelling-sign-in-clears-the-pending-action-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-602bbbed6011499ca2ea",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 129,
          "column": 5
        },
        {
          "title": "failed follow remains retryable and never claims success",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 349,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.401Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-failed-follow-re-071ac-le-and-never-claims-success-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-48d5b6a744a0fe17483d",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 142,
          "column": 5
        },
        {
          "title": "feed rerender removes stale menus and mobile menu stays inside viewport",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 221,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.765Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-feed-rerender-re-03070--menu-stays-inside-viewport-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-c76da852e6409fcefc88",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 156,
          "column": 5
        },
        {
          "title": "sign-in UI failure leaves an actionable error and no saved intent",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 222,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.999Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-sign-in-UI-failu-9dd13-e-error-and-no-saved-intent-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-4ceae6d30627f088d7e2",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 169,
          "column": 5
        },
        {
          "title": "sign-in close button cancellation removes pending follow immediately",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 318,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:48.231Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-sign-in-close-bu-55d7f--pending-follow-immediately-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-06c110ccf6c108b751fa",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 179,
          "column": 7
        },
        {
          "title": "sign-in backdrop cancellation removes pending follow immediately",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 274,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:48.558Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-sign-in-backdrop-04562--pending-follow-immediately-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-513a5b1f41ea13cc573e",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 179,
          "column": 7
        },
        {
          "title": "stale and noncanonical login intents cannot create follows",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 308,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:48.843Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-stale-and-noncan-0799b-tents-cannot-create-follows-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-c46d4dd8348ebc0d40d7",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 194,
          "column": 5
        },
        {
          "title": "Show news navigates with the canonical UUID and ALL scope",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 268,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:49.165Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-Show-news-naviga-97304-anonical-UUID-and-ALL-scope-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-122d69571031e34812dc",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 208,
          "column": 5
        },
        {
          "title": "article-card actions also work on the account Digest page",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "passed",
                  "duration": 291,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:49.445Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/chip-menu-article-card-act-b87e9--on-the-account-Digest-page-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d8fed31d13ca1eb22537-f9b0ef1ba29ac0655add",
          "file": "tests/ui/chip-menu.spec.ts",
          "line": 215,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/digest.spec.ts",
      "file": "tests/ui/digest.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "signed-out digest prompts through shared sign-in, without account/feed reads",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 224,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.370Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-signed-out-digest-p-5e2c3--without-account-feed-reads-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-468afedea331e4aa8ecf",
          "file": "tests/ui/digest.spec.ts",
          "line": 47,
          "column": 5
        },
        {
          "title": "registered non-premium account gets merged follows, paging and per-entity filters",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 370,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.759Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-registered-non-prem-0b8a5-ging-and-per-entity-filters-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-c9fc57140dddc695d220",
          "file": "tests/ui/digest.spec.ts",
          "line": 61,
          "column": 5
        },
        {
          "title": "unfollow uses DELETE + CSRF header, refreshes filter and never requests a global empty feed",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 407,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.141Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-unfollow-uses-DELET-be7d9-equests-a-global-empty-feed-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-b3f88a233df38223f5e0",
          "file": "tests/ui/digest.spec.ts",
          "line": 81,
          "column": 5
        },
        {
          "title": "empty account makes no news request and defaults email to Off",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 137,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.560Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-empty-account-makes-d9843-t-and-defaults-email-to-Off-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-2a9e5035c95d5ed1b072",
          "file": "tests/ui/digest.spec.ts",
          "line": 97,
          "column": 5
        },
        {
          "title": "email supports hourly, daily, weekly and off via PUT with CSRF header",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 471,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.710Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-email-supports-hour-cb13e-ff-via-PUT-with-CSRF-header-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-fbbd5b96c17dbcfda9cd",
          "file": "tests/ui/digest.spec.ts",
          "line": 105,
          "column": 5
        },
        {
          "title": "old backend rejecting hourly restores previous setting and allows retry",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 296,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.192Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-old-backend-rejecti-9c157-us-setting-and-allows-retry-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-28497bba7226a538208f",
          "file": "tests/ui/digest.spec.ts",
          "line": 116,
          "column": 5
        },
        {
          "title": "Digest member control navigates instead of opening modal",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 251,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.500Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-Digest-member-contr-b0274-es-instead-of-opening-modal-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-32c3b928304c860c132b",
          "file": "tests/ui/digest.spec.ts",
          "line": 128,
          "column": 5
        },
        {
          "title": "account failure is recoverable and never leaks global news",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 167,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.766Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-account-failure-is--075cd-and-never-leaks-global-news-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-61e69f241e877a9940b8",
          "file": "tests/ui/digest.spec.ts",
          "line": 137,
          "column": 5
        },
        {
          "title": "digest fits a narrow phone and keyboard filter interaction works",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 151,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:47.948Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-digest-fits-a-narro-638fe-rd-filter-interaction-works-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-b2932b1a57953f77190c",
          "file": "tests/ui/digest.spec.ts",
          "line": 146,
          "column": 5
        },
        {
          "title": "expired account session shows sign-in rather than private digest",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 120,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:48.110Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-expired-account-ses-5b8a1--rather-than-private-digest-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-725fbcb6aa9be0990e9a",
          "file": "tests/ui/digest.spec.ts",
          "line": 157,
          "column": 5
        },
        {
          "title": "failed pagination can retry without duplicating existing articles",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 271,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:48.240Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-failed-pagination-c-38ff3-plicating-existing-articles-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-54b2a1d77c2e9a96be0b",
          "file": "tests/ui/digest.spec.ts",
          "line": 166,
          "column": 5
        },
        {
          "title": "late previous-filter response cannot overwrite the active entity feed",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 1,
                  "parallelIndex": 1,
                  "status": "passed",
                  "duration": 251,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:48.521Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/digest-late-previous-filte-3d92f-rite-the-active-entity-feed-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "d0211ee6f8b93cb5cb5e-6d9085aa012a034a65b1",
          "file": "tests/ui/digest.spec.ts",
          "line": 182,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/follow-roundtrip.spec.ts",
      "file": "tests/ui/follow-roundtrip.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "Follow, see it on the Digest with its news, set email, Unfollow (all real)",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [
                {
                  "type": "skip",
                  "description": "needs a really signed-in visitor (preview front door as preview-e2e)",
                  "location": {
                    "file": "/app/tests/ui/follow-roundtrip.spec.ts",
                    "line": 31,
                    "column": 8
                  }
                }
              ],
              "expectedStatus": "skipped",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 2,
                  "parallelIndex": 2,
                  "status": "skipped",
                  "duration": 122,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.403Z",
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "needs a really signed-in visitor (preview front door as preview-e2e)",
                      "location": {
                        "file": "/app/tests/ui/follow-roundtrip.spec.ts",
                        "line": 31,
                        "column": 8
                      }
                    }
                  ],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/follow-roundtrip-Follow-se-73392-et-email-Unfollow-all-real--ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "skipped"
            }
          ],
          "id": "8df730102832dac74196-d95f68c0ef6515a55ba7",
          "file": "tests/ui/follow-roundtrip.spec.ts",
          "line": 29,
          "column": 5
        },
        {
          "title": "Follow from an entity chip menu, see it on the Digest, Unfollow from the chip (all real, sites#433)",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [
                {
                  "type": "skip",
                  "description": "needs a really signed-in visitor (preview front door as preview-e2e)",
                  "location": {
                    "file": "/app/tests/ui/follow-roundtrip.spec.ts",
                    "line": 81,
                    "column": 8
                  }
                }
              ],
              "expectedStatus": "skipped",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 2,
                  "parallelIndex": 2,
                  "status": "skipped",
                  "duration": 120,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.658Z",
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "needs a really signed-in visitor (preview front door as preview-e2e)",
                      "location": {
                        "file": "/app/tests/ui/follow-roundtrip.spec.ts",
                        "line": 81,
                        "column": 8
                      }
                    }
                  ],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/follow-roundtrip-Follow-fr-93ad2-he-chip-all-real-sites-433--ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "skipped"
            }
          ],
          "id": "8df730102832dac74196-a8725e90ad4f5a2cbbe3",
          "file": "tests/ui/follow-roundtrip.spec.ts",
          "line": 79,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/identity.spec.ts",
      "file": "tests/ui/identity.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "chips carry escaped canonical metadata while keeping existing profile links",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 3,
                  "parallelIndex": 3,
                  "status": "passed",
                  "duration": 176,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.413Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/identity-chips-carry-escap-d1133-ping-existing-profile-links-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "bc384e94f5cb1e491b4d-247138a706ff5c09bd8f",
          "file": "tests/ui/identity.spec.ts",
          "line": 19,
          "column": 5
        },
        {
          "title": "FEC-code entity URL exposes only the API-resolved UUID to follow consumers",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 3,
                  "parallelIndex": 3,
                  "status": "passed",
                  "duration": 176,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.713Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/identity-FEC-code-entity-U-3e41b-ed-UUID-to-follow-consumers-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "bc384e94f5cb1e491b4d-78c52ced57a932f72b4d",
          "file": "tests/ui/identity.spec.ts",
          "line": 41,
          "column": 5
        },
        {
          "title": "unresolvable entity URL REP cannot supply a follow identity",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 3,
                  "parallelIndex": 3,
                  "status": "passed",
                  "duration": 164,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.905Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/identity-unresolvable-enti-cf1bf-ot-supply-a-follow-identity-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "bc384e94f5cb1e491b4d-5785fbe455f87eb66b9c",
          "file": "tests/ui/identity.spec.ts",
          "line": 57,
          "column": 7
        },
        {
          "title": "unresolvable entity URL 22222222-2222-5222-8222-222222222222 cannot supply a follow identity",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 3,
                  "parallelIndex": 3,
                  "status": "passed",
                  "duration": 143,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.082Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/identity-unresolvable-enti-05980-ot-supply-a-follow-identity-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "bc384e94f5cb1e491b4d-72f386879a310d931140",
          "file": "tests/ui/identity.spec.ts",
          "line": 57,
          "column": 7
        },
        {
          "title": "entity follow identity stays absent until graph resolution finishes",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 3,
                  "parallelIndex": 3,
                  "status": "passed",
                  "duration": 139,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.235Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/identity-entity-follow-ide-e8f62-l-graph-resolution-finishes-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "bc384e94f5cb1e491b4d-164797e92a7650c98063",
          "file": "tests/ui/identity.spec.ts",
          "line": 64,
          "column": 5
        },
        {
          "title": "shared follow helper rejects legacy facet aliases before any write",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 3,
                  "parallelIndex": 3,
                  "status": "passed",
                  "duration": 126,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:46.384Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/c310266/news-preview/test-output/identity-shared-follow-hel-73202-et-aliases-before-any-write-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "bc384e94f5cb1e491b4d-c1afd684176ff0fcb8cc",
          "file": "tests/ui/identity.spec.ts",
          "line": 85,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/premium-header.spec.ts",
      "file": "tests/ui/premium-header.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "a client-sent premium marker does not unlock voter records",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 40,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-25T20:10:45.383Z",
                  "annotations": [],
                  "attachments": []
                }
              ],
              "status": "expected"
            }
          ],
          "id": "cc73df0e13e85fdf1cf2-9e57f87c084cd2c98cda",
          "file": "tests/ui/premium-header.spec.ts",
          "line": 7,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/responsive.spec.ts",
      "file": "tests/ui/responsive.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "phone layout (iPhone 13, 390px)",
          "file": "tests/ui/responsive.spec.ts",
          "line": 47,
          "column": 8,
          "specs": [
            {
              "title": "feed fits the screen width",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 1044,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:45.419Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-13f12--feed-fits-the-screen-width-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-3c835ff1b3411f062858",
              "file": "tests/ui/responsive.spec.ts",
              "line": 50,
              "column": 9
            },
            {
              "title": "first article starts on the first screen",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 294,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:46.591Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-2caff--starts-on-the-first-screen-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-9c084ff68c22d5f8bb03",
              "file": "tests/ui/responsive.spec.ts",
              "line": 55,
              "column": 9
            },
            {
              "title": "filter panel scrolls away instead of covering the feed",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 337,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:46.898Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-6b680-nstead-of-covering-the-feed-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-50ba706805d98fcec48e",
              "file": "tests/ui/responsive.spec.ts",
              "line": 62,
              "column": 9
            },
            {
              "title": "filters collapse behind a toggle that counts active filters",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 814,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:47.248Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-decb6--that-counts-active-filters-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-07d69b5171698f68f4ad",
              "file": "tests/ui/responsive.spec.ts",
              "line": 72,
              "column": 9
            },
            {
              "title": "form fields are 16px so iOS does not zoom on focus",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 376,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:48.073Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-e60ac--iOS-does-not-zoom-on-focus-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-c09474f67b72aff4e103",
              "file": "tests/ui/responsive.spec.ts",
              "line": 93,
              "column": 9
            },
            {
              "title": "tap targets are at least 24px tall",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 290,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:48.458Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-4b98a-gets-are-at-least-24px-tall-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-443e74039ab40c7a67fb",
              "file": "tests/ui/responsive.spec.ts",
              "line": 104,
              "column": 9
            },
            {
              "title": "tapping an also-mentioned chip searches for it",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 332,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:48.757Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-c5aa1-tioned-chip-searches-for-it-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-c99136185daf52da3c8d",
              "file": "tests/ui/responsive.spec.ts",
              "line": 120,
              "column": 9
            },
            {
              "title": "entity page fits the screen and its card scrolls away",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 262,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:49.108Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-3d82b-n-and-its-card-scrolls-away-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-08f8dcdf9686c2c99b11",
              "file": "tests/ui/responsive.spec.ts",
              "line": 130,
              "column": 9
            }
          ]
        },
        {
          "title": "phone layout (iPhone SE, 320px)",
          "file": "tests/ui/responsive.spec.ts",
          "line": 47,
          "column": 8,
          "specs": [
            {
              "title": "feed fits the screen width",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 184,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:49.385Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-250df--feed-fits-the-screen-width-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-8a140fa0aa81b532d91a",
              "file": "tests/ui/responsive.spec.ts",
              "line": 50,
              "column": 9
            },
            {
              "title": "first article starts on the first screen",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 201,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:49.577Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-6381c--starts-on-the-first-screen-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-a0282d7dc196ed04b786",
              "file": "tests/ui/responsive.spec.ts",
              "line": 55,
              "column": 9
            },
            {
              "title": "filter panel scrolls away instead of covering the feed",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 239,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:49.789Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-bbd8e-nstead-of-covering-the-feed-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-4fd48ada87ea5478123d",
              "file": "tests/ui/responsive.spec.ts",
              "line": 62,
              "column": 9
            },
            {
              "title": "filters collapse behind a toggle that counts active filters",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 395,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:50.042Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-c4540--that-counts-active-filters-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-1db4e76ac30f347998c7",
              "file": "tests/ui/responsive.spec.ts",
              "line": 72,
              "column": 9
            },
            {
              "title": "form fields are 16px so iOS does not zoom on focus",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 264,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:50.451Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-ad47e--iOS-does-not-zoom-on-focus-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-256a90131eeb2b8887e8",
              "file": "tests/ui/responsive.spec.ts",
              "line": 93,
              "column": 9
            },
            {
              "title": "tap targets are at least 24px tall",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 247,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:50.730Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-c297c-gets-are-at-least-24px-tall-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-609aa6169b2d624b665a",
              "file": "tests/ui/responsive.spec.ts",
              "line": 104,
              "column": 9
            },
            {
              "title": "tapping an also-mentioned chip searches for it",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 259,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:50.992Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-81d4c-tioned-chip-searches-for-it-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-5613f060b4cd05db6a7d",
              "file": "tests/ui/responsive.spec.ts",
              "line": 120,
              "column": 9
            },
            {
              "title": "entity page fits the screen and its card scrolls away",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 212,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:51.262Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-phone-layout-iP-6a63f-n-and-its-card-scrolls-away-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-7782d1fdd2729bfd35b9",
              "file": "tests/ui/responsive.spec.ts",
              "line": 130,
              "column": 9
            }
          ]
        },
        {
          "title": "desktop layout (1280px)",
          "file": "tests/ui/responsive.spec.ts",
          "line": 140,
          "column": 6,
          "specs": [
            {
              "title": "filters stay an open, sticky sidebar beside the feed",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 260,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:51.484Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-desktop-layout--b7d31-cky-sidebar-beside-the-feed-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-1ccdfdca05420b6add45",
              "file": "tests/ui/responsive.spec.ts",
              "line": 143,
              "column": 7
            },
            {
              "title": "search keeps the long placeholder",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 218,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:51.756Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/responsive-desktop-layout--435b1--keeps-the-long-placeholder-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e0223b006feb3d306446-b0ef9e8d1a68f49089b4",
              "file": "tests/ui/responsive.spec.ts",
              "line": 155,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/status-banner.spec.ts",
      "file": "tests/ui/status-banner.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "status banner (sites#522)",
          "file": "tests/ui/status-banner.spec.ts",
          "line": 8,
          "column": 6,
          "specs": [
            {
              "title": "nginx serves /status/banner.json as JSON",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 871,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:45.412Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "ea82a25878e1c01982b1-c09c6467d9f291c5d5dc",
              "file": "tests/ui/status-banner.spec.ts",
              "line": 9,
              "column": 7
            },
            {
              "title": "a maintenance notice for us.elect.news shows above the header",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 257,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-25T20:10:46.323Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/c310266/news-preview/test-output/status-banner-status-banne-42f7a-news-shows-above-the-header-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "ea82a25878e1c01982b1-ee0b6b7f980d57859841",
              "file": "tests/ui/status-banner.spec.ts",
              "line": 16,
              "column": 7
            }
          ]
        }
      ]
    }
  ],
  "errors": [],
  "stats": {
    "startTime": "2026-10-25T20:10:44.636Z",
    "duration": 7416.1140000000005,
    "expected": 52,
    "skipped": 2,
    "unexpected": 0,
    "flaky": 0
  }
}