{
  "config": {
    "argv": [
      "/usr/bin/node",
      "/app/node_modules/.bin/playwright",
      "test",
      "--project=ui",
      "--output=/workspace/artifacts/23b8f68/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": 5
    },
    "preserveOutput": "always",
    "projects": [
      {
        "outputDir": "/workspace/artifacts/23b8f68/news-preview/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 5
        },
        "id": "ui",
        "name": "ui",
        "testDir": "/app/tests/ui",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      },
      {
        "outputDir": "/workspace/artifacts/23b8f68/news-preview/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 5
        },
        "id": "api",
        "name": "api",
        "testDir": "/app/tests/api",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      }
    ],
    "filteredProjects": [
      {
        "grep": {},
        "grepInvert": null,
        "outputDir": "/workspace/artifacts/23b8f68/news-preview/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 5
        },
        "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/23b8f68/news-preview/reports/html",
          "open": "never"
        }
      ],
      [
        "json",
        {
          "outputFile": "/workspace/artifacts/23b8f68/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": 605,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:56.680Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 233,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.405Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 406,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.653Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 425,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:59.078Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 343,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:59.520Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 378,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:59.878Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 195,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:00.271Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 243,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:00.477Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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-23T00:27:00.732Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 263,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:01.062Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 282,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:01.339Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 316,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:01.632Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 316,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:01.962Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 419,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:56.676Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 366,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.216Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 380,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.595Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 143,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.989Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 472,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:59.145Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 294,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:59.633Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 227,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:59.941Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 154,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:00.183Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 149,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:00.355Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 170,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:00.519Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 290,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:00.702Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 209,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:27:01.008Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 307,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:56.668Z",
                  "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/23b8f68/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": 72,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.105Z",
                  "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/23b8f68/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": 392,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:56.695Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 157,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.192Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 137,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.361Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 150,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.512Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 140,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.676Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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": 153,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-23T00:26:58.830Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/23b8f68/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/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 3877,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:26:56.704Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 335,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:01.675Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 310,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:02.023Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 1398,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:02.357Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 353,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:03.767Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 332,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:04.131Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 296,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:04.474Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 204,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:04.784Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 193,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:05.000Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 223,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:05.204Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 322,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:05.438Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 399,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:05.771Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 264,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:06.183Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 244,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:06.457Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 271,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:06.713Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 203,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:06.996Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 233,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:07.211Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 248,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-23T00:27:07.457Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/23b8f68/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
            }
          ]
        }
      ]
    }
  ],
  "errors": [],
  "stats": {
    "startTime": "2026-10-23T00:26:56.000Z",
    "duration": 11783.348,
    "expected": 49,
    "skipped": 2,
    "unexpected": 0,
    "flaky": 0
  }
}