{
  "config": {
    "argv": [
      "/usr/bin/node",
      "/app/node_modules/.bin/playwright",
      "test",
      "--project=ui",
      "--output=/workspace/artifacts/prod-branch-20261024/us-prod/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": 32
    },
    "preserveOutput": "always",
    "projects": [
      {
        "outputDir": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 32
        },
        "id": "ui",
        "name": "ui",
        "testDir": "/app/tests/ui",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      },
      {
        "outputDir": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 32
        },
        "id": "api",
        "name": "api",
        "testDir": "/app/tests/api",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      }
    ],
    "filteredProjects": [
      {
        "grep": {},
        "grepInvert": null,
        "outputDir": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 32
        },
        "name": "ui",
        "testDir": "/app/tests/ui",
        "snapshotDir": "/app/tests/ui",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000,
        "use": {
          "browserName": "chromium",
          "baseURL": "https://us.elect.info",
          "extraHTTPHeaders": {},
          "screenshot": "on",
          "video": "on-first-retry",
          "trace": "on-first-retry"
        },
        "dependencies": [],
        "ignoreSnapshots": false,
        "__projectId": "ui"
      }
    ],
    "quiet": false,
    "reporter": [
      [
        "html",
        {
          "outputFolder": "/workspace/artifacts/prod-branch-20261024/us-prod/reports/html",
          "open": "never"
        }
      ],
      [
        "json",
        {
          "outputFile": "/workspace/artifacts/prod-branch-20261024/us-prod/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/auth.spec.ts",
      "file": "tests/ui/auth.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "sign-in and premium sections",
          "file": "tests/ui/auth.spec.ts",
          "line": 45,
          "column": 6,
          "specs": [
            {
              "title": "/auth/whoami returns well-formed JSON",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 113,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.816Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-34adcfbb6e371e5c1571",
              "file": "tests/ui/auth.spec.ts",
              "line": 46,
              "column": 7
            },
            {
              "title": "a forged identity header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "host has Authentik: Traefik sets the header",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 64,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 89,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.023Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "host has Authentik: Traefik sets the header",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 64,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-d16713a710dd32aba362",
              "file": "tests/ui/auth.spec.ts",
              "line": 62,
              "column": 7
            },
            {
              "title": "a forged elect-info-premium group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "host has Authentik: Traefik sets the headers",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 72,
                        "column": 12
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 46,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.154Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "host has Authentik: Traefik sets the headers",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 72,
                            "column": 12
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-8b08522ffb6040767729",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "a forged ei-voter-viewers group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "host has Authentik: Traefik sets the headers",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 72,
                        "column": 12
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 89,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.236Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "host has Authentik: Traefik sets the headers",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 72,
                            "column": 12
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-331a481ae815f21adbb5",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "a forged ei-donor-viewers group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "host has Authentik: Traefik sets the headers",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 72,
                        "column": 12
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 26,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.344Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "host has Authentik: Traefik sets the headers",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 72,
                            "column": 12
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-627faecc86d75e536556",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "a forged ei-block-viewers group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "host has Authentik: Traefik sets the headers",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 72,
                        "column": 12
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 34,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.390Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "host has Authentik: Traefik sets the headers",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 72,
                            "column": 12
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-bafaf85fa26bf5a6d3e5",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "a forged elect-news-curators group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "host has Authentik: Traefik sets the headers",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 72,
                        "column": 12
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 39,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.439Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "host has Authentik: Traefik sets the headers",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 72,
                            "column": 12
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-05316fe4e949eabf6cf3",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "a forged ei-preview-viewers group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "host has Authentik: Traefik sets the headers",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 72,
                        "column": 12
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 76,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.491Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "host has Authentik: Traefik sets the headers",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 72,
                            "column": 12
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-b1c4d8cb6ecdc1f6fabd",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "/voters/ is open to an entitled visitor and closed to others",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 163,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.584Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-and-premium-s-d409e-isitor-and-closed-to-others-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-d22dfb99ea0bc7637189",
              "file": "tests/ui/auth.spec.ts",
              "line": 80,
              "column": 9
            },
            {
              "title": "/individuals/ is open to an entitled visitor and closed to others",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 171,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.841Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-and-premium-s-6858c-isitor-and-closed-to-others-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-f1b0e2b9d63295258e61",
              "file": "tests/ui/auth.spec.ts",
              "line": 80,
              "column": 9
            },
            {
              "title": "/blocks/ is open to an entitled visitor and closed to others",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 148,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.041Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-and-premium-s-75d4d-isitor-and-closed-to-others-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-331de3fff507c8d688cc",
              "file": "tests/ui/auth.spec.ts",
              "line": 80,
              "column": 9
            },
            {
              "title": "/voters/ is the voter search page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "no voters access (signed out, or signed in without it)",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 96,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 161,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.220Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "no voters access (signed out, or signed in without it)",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 96,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-and-premium-s-ff81e-rs-is-the-voter-search-page-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-24cc7566a4f160062737",
              "file": "tests/ui/auth.spec.ts",
              "line": 93,
              "column": 7
            },
            {
              "title": "the premium notice page is not directly reachable",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 182,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.409Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-and-premium-s-4eed4-e-is-not-directly-reachable-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-752f790273574f158ca2",
              "file": "tests/ui/auth.spec.ts",
              "line": 103,
              "column": 7
            },
            {
              "title": "homepage premium cards follow the account",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 432,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.625Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-and-premium-s-b27b9-um-cards-follow-the-account-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-25a6d4e0f106df1269de",
              "file": "tests/ui/auth.spec.ts",
              "line": 108,
              "column": 7
            },
            {
              "title": "account slot shows the signed-in email where Authentik is on",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 304,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.075Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-and-premium-s-b2077-email-where-Authentik-is-on-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-1e049c825edca23851b9",
              "file": "tests/ui/auth.spec.ts",
              "line": 126,
              "column": 7
            }
          ]
        },
        {
          "title": "sign-in panel",
          "file": "tests/ui/auth.spec.ts",
          "line": 147,
          "column": 6,
          "specs": [
            {
              "title": "/signin/google redirects to the Google flow, or falls back to the sign-in page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 72,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.407Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-8ef04c02a5acbc6b0869",
              "file": "tests/ui/auth.spec.ts",
              "line": 148,
              "column": 7
            },
            {
              "title": "/signin/register goes to the sign-up flow, or falls back to the sign-in page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 31,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.504Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-93dbd48805f61db758bc",
              "file": "tests/ui/auth.spec.ts",
              "line": 165,
              "column": 7
            },
            {
              "title": "the shared identity bar is served and revalidated",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 37,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.563Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-3bb8375e8399bd8ed909",
              "file": "tests/ui/auth.spec.ts",
              "line": 176,
              "column": 7
            },
            {
              "title": "/signin/google only answers GET, and the outpost hop is internal",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 34,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.623Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-f0802db54d500bb3e896",
              "file": "tests/ui/auth.spec.ts",
              "line": 184,
              "column": 7
            },
            {
              "title": "Log In opens the sign-in panel with Google and email",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 348,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.676Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/auth-sign-in-panel-Log-In--c8811-panel-with-Google-and-email-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-985d1e0afe9b23e56167",
              "file": "tests/ui/auth.spec.ts",
              "line": 190,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/cms-proxy.spec.ts",
      "file": "tests/ui/cms-proxy.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "/api/cms/ proxy",
          "file": "tests/ui/cms-proxy.spec.ts",
          "line": 12,
          "column": 6,
          "specs": [
            {
              "title": "/api/cms/users/me is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 128,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.884Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-cc9bb6a3cfc76f59bc01",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/users is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 123,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.098Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-617668a16c2dee63692c",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/users/login is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 38,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.295Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-18de684729d5b7f54b47",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/payload-mcp-api-keys is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 33,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.372Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-b8a6a58d1ac5d4d968f9",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/payload-preferences is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 29,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.419Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-ae25edf4804185cce0cf",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/payload-locked-documents is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 63,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.462Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-b50cab05dc798cfacc41",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/posts is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 51,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.538Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-abffd54722acee136ad6",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/media is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 32,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.608Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-5b06a815231650bc7724",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/graphql is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 34,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.664Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-ce39e6c13a114fa28f07",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/mcp is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 31,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.721Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-eecb42b6f024183a9e65",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/slug-lookup?collection=politicians&path=x is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 24,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.771Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-3a3d7ba9aee59900e4e8",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/politicians/a/b is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 36,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.814Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-e26099ab3e6165e9bf8e",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/politicians/%2e%2e/users/me is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 49,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.866Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-5be9c9a7194b19ecd45f",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/politicians%2F..%2Fusers%2Fme is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 35,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.934Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-2a09439d06bbeb58d327",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/ is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 29,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.990Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-46084719f8cf8fc9e6af",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "writes are 405",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 42,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.046Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-c3e3f0331df33854dcd3",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 41,
              "column": 7
            },
            {
              "title": "the allowed collections reach the CMS",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 59,
                      "error": {
                        "message": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m",
                        "stack": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m\n    at /app/tests/ui/cms-proxy.spec.ts:52:58",
                        "location": {
                          "file": "/app/tests/ui/cms-proxy.spec.ts",
                          "column": 58,
                          "line": 52
                        },
                        "snippet": "\u001b[0m \u001b[90m 50 |\u001b[39m       \u001b[90m// 200 when the CMS is up; 5xx from nginx when it is down. Never the nginx 404/405.\u001b[39m\n \u001b[90m 51 |\u001b[39m       \u001b[36mconst\u001b[39m status \u001b[33m=\u001b[39m (\u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/api/cms/${collection}?limit=0`\u001b[39m))\u001b[33m.\u001b[39mstatus()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 52 |\u001b[39m       expect([\u001b[35m404\u001b[39m\u001b[33m,\u001b[39m \u001b[35m405\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m`${collection}: ${status}`\u001b[39m)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(status)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 53 |\u001b[39m     }\n \u001b[90m 54 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/cms-proxy.spec.ts",
                            "column": 58,
                            "line": 52
                          },
                          "message": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m\n\n  50 |       // 200 when the CMS is up; 5xx from nginx when it is down. Never the nginx 404/405.\n  51 |       const status = (await request.get(`/api/cms/${collection}?limit=0`)).status();\n> 52 |       expect([404, 405], `${collection}: ${status}`).not.toContain(status);\n     |                                                          ^\n  53 |     }\n  54 |   });\n  55 | });\n    at /app/tests/ui/cms-proxy.spec.ts:52:58"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.107Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cms-proxy--api-cms-proxy-t-21bde-d-collections-reach-the-CMS-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/cms-proxy.spec.ts",
                        "column": 58,
                        "line": 52
                      }
                    },
                    {
                      "workerIndex": 33,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 239,
                      "error": {
                        "message": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m",
                        "stack": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m\n    at /app/tests/ui/cms-proxy.spec.ts:52:58",
                        "location": {
                          "file": "/app/tests/ui/cms-proxy.spec.ts",
                          "column": 58,
                          "line": 52
                        },
                        "snippet": "\u001b[0m \u001b[90m 50 |\u001b[39m       \u001b[90m// 200 when the CMS is up; 5xx from nginx when it is down. Never the nginx 404/405.\u001b[39m\n \u001b[90m 51 |\u001b[39m       \u001b[36mconst\u001b[39m status \u001b[33m=\u001b[39m (\u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/api/cms/${collection}?limit=0`\u001b[39m))\u001b[33m.\u001b[39mstatus()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 52 |\u001b[39m       expect([\u001b[35m404\u001b[39m\u001b[33m,\u001b[39m \u001b[35m405\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m`${collection}: ${status}`\u001b[39m)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(status)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 53 |\u001b[39m     }\n \u001b[90m 54 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/cms-proxy.spec.ts",
                            "column": 58,
                            "line": 52
                          },
                          "message": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m\n\n  50 |       // 200 when the CMS is up; 5xx from nginx when it is down. Never the nginx 404/405.\n  51 |       const status = (await request.get(`/api/cms/${collection}?limit=0`)).status();\n> 52 |       expect([404, 405], `${collection}: ${status}`).not.toContain(status);\n     |                                                          ^\n  53 |     }\n  54 |   });\n  55 | });\n    at /app/tests/ui/cms-proxy.spec.ts:52:58"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-24T00:58:51.926Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cms-proxy--api-cms-proxy-t-21bde-d-collections-reach-the-CMS-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cms-proxy--api-cms-proxy-t-21bde-d-collections-reach-the-CMS-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/cms-proxy.spec.ts",
                        "column": 58,
                        "line": 52
                      }
                    },
                    {
                      "workerIndex": 36,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 131,
                      "error": {
                        "message": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m",
                        "stack": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m\n    at /app/tests/ui/cms-proxy.spec.ts:52:58",
                        "location": {
                          "file": "/app/tests/ui/cms-proxy.spec.ts",
                          "column": 58,
                          "line": 52
                        },
                        "snippet": "\u001b[0m \u001b[90m 50 |\u001b[39m       \u001b[90m// 200 when the CMS is up; 5xx from nginx when it is down. Never the nginx 404/405.\u001b[39m\n \u001b[90m 51 |\u001b[39m       \u001b[36mconst\u001b[39m status \u001b[33m=\u001b[39m (\u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/api/cms/${collection}?limit=0`\u001b[39m))\u001b[33m.\u001b[39mstatus()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 52 |\u001b[39m       expect([\u001b[35m404\u001b[39m\u001b[33m,\u001b[39m \u001b[35m405\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m`${collection}: ${status}`\u001b[39m)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(status)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 53 |\u001b[39m     }\n \u001b[90m 54 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/cms-proxy.spec.ts",
                            "column": 58,
                            "line": 52
                          },
                          "message": "Error: contributors: 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: not \u001b[32m404\u001b[39m\nReceived array:     \u001b[31m[\u001b[7m404\u001b[27m, 405]\u001b[39m\n\n  50 |       // 200 when the CMS is up; 5xx from nginx when it is down. Never the nginx 404/405.\n  51 |       const status = (await request.get(`/api/cms/${collection}?limit=0`)).status();\n> 52 |       expect([404, 405], `${collection}: ${status}`).not.toContain(status);\n     |                                                          ^\n  53 |     }\n  54 |   });\n  55 | });\n    at /app/tests/ui/cms-proxy.spec.ts:52:58"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-24T00:58:53.032Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cms-proxy--api-cms-proxy-t-21bde-d-collections-reach-the-CMS-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/cms-proxy.spec.ts",
                        "column": 58,
                        "line": 52
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-37e9db234d843b0ff2d8",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 48,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/county-filters.spec.ts",
      "file": "tests/ui/county-filters.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "tracts county filter: GEOID option values list the county's tracts",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 120000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 2,
                  "parallelIndex": 2,
                  "status": "passed",
                  "duration": 1348,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:49.856Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/county-filters-tracts-coun-8d5fe-es-list-the-county-s-tracts-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "27700f440bd41f34957a-c91732dd519bda18fdc2",
          "file": "tests/ui/county-filters.spec.ts",
          "line": 40,
          "column": 7
        },
        {
          "title": "blocks county filter: GEOID option values list the county's blocks",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 120000,
              "annotations": [
                {
                  "type": "skip",
                  "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                  "location": {
                    "file": "/app/tests/ui/helpers.ts",
                    "line": 25,
                    "column": 8
                  }
                }
              ],
              "expectedStatus": "skipped",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 2,
                  "parallelIndex": 2,
                  "status": "skipped",
                  "duration": 141,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:51.516Z",
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/county-filters-blocks-coun-76060-es-list-the-county-s-blocks-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "skipped"
            }
          ],
          "id": "27700f440bd41f34957a-f985531d9a6cf726a6b3",
          "file": "tests/ui/county-filters.spec.ts",
          "line": 40,
          "column": 7
        },
        {
          "title": "precincts county filter: GEOID option values list the county's precincts",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 120000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 2,
                  "parallelIndex": 2,
                  "status": "passed",
                  "duration": 844,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:51.684Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/county-filters-precincts-c-f8a85-list-the-county-s-precincts-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "27700f440bd41f34957a-7c41065a343e42681997",
          "file": "tests/ui/county-filters.spec.ts",
          "line": 40,
          "column": 7
        }
      ]
    },
    {
      "title": "tests/ui/cycle-facet.spec.ts",
      "file": "tests/ui/cycle-facet.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "cycle facet (sites#194, #355)",
          "file": "tests/ui/cycle-facet.spec.ts",
          "line": 15,
          "column": 6,
          "specs": [
            {
              "title": "signed out: shown locked, offers sign-in",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 599,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.953Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-facet-cycle-facet-si-d7771-shown-locked-offers-sign-in-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6978d26ba5f0541ddfd1-e30aa77c81b6e0068a2e",
              "file": "tests/ui/cycle-facet.spec.ts",
              "line": 16,
              "column": 7
            },
            {
              "title": "signed in: picking a cycle reloads with ?cycle= and links keep it",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 864,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.818Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-facet-cycle-facet-si-a2a9b-ith-cycle-and-links-keep-it-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6978d26ba5f0541ddfd1-32dc73bc8c14ad3f8f6e",
              "file": "tests/ui/cycle-facet.spec.ts",
              "line": 27,
              "column": 7
            },
            {
              "title": "an invalid ?cycle= means all cycles",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 298,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.706Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-facet-cycle-facet-si-670e3-alid-cycle-means-all-cycles-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6978d26ba5f0541ddfd1-5be095118f9b0a5d97a3",
              "file": "tests/ui/cycle-facet.spec.ts",
              "line": 54,
              "column": 7
            }
          ]
        },
        {
          "title": "graph view control (sites#355)",
          "file": "tests/ui/cycle-facet.spec.ts",
          "line": 61,
          "column": 6,
          "specs": [
            {
              "title": "a member opens the graph from the bar; no header button",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 786,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.030Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-facet-graph-view-con-37808-om-the-bar-no-header-button-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6978d26ba5f0541ddfd1-59a365b7af459e57220a",
              "file": "tests/ui/cycle-facet.spec.ts",
              "line": 62,
              "column": 7
            },
            {
              "title": "signed out: the graph control is locked",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 457,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.836Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-facet-graph-view-con-fd1b6-the-graph-control-is-locked-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6978d26ba5f0541ddfd1-df26a6108fba66053c73",
              "file": "tests/ui/cycle-facet.spec.ts",
              "line": 72,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/cycle-index.spec.ts",
      "file": "tests/ui/cycle-index.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "candidates: legacy requests/rendering unchanged without cycle",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 345,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:53.455Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-candidates-leg-88558-ing-unchanged-without-cycle-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-b93113c811770e6390c0",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 165,
          "column": 9
        },
        {
          "title": "candidates: legacy requests/rendering unchanged ?cycle=2023",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 306,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:53.816Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-candidates-leg-4a35f-dering-unchanged-cycle-2023-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-d4abf828373c6efc362c",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 165,
          "column": 9
        },
        {
          "title": "committees: legacy requests/rendering unchanged without cycle",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 311,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:54.136Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-committees-leg-989dd-ing-unchanged-without-cycle-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-771beaf7f8de23b34648",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 165,
          "column": 9
        },
        {
          "title": "committees: legacy requests/rendering unchanged ?cycle=2023",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 307,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:54.459Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-committees-leg-171c1-dering-unchanged-cycle-2023-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-be0b5c02cb3f3b6f8fb2",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 165,
          "column": 9
        },
        {
          "title": "specialized state search and district selector scope their results and counts using exact CSV year tokens",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 1215,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:54.783Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-specialized-st-fff94-using-exact-CSV-year-tokens-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-ad364ff10417c47d1ccc",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 189,
          "column": 5
        },
        {
          "title": "catalog datasource list explicitly remains all cycles without changing its CMS request",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 192,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:56.008Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-catalog-dataso-6b2d7-ut-changing-its-CMS-request-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-e6514b78618b360eea5f",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 215,
          "column": 5
        },
        {
          "title": "homepage never waits or displays zero for pending heavy counts, and fills them on the next visit without polling",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 4,
                  "parallelIndex": 4,
                  "status": "passed",
                  "duration": 239,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:56.210Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-homepage-never-420b7--next-visit-without-polling-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-2345a0d898bb53afb7f6",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 223,
          "column": 5
        },
        {
          "title": "slow Employer directory explicitly stays all cycles, while measured-fast Vendor lists retain the cycle",
          "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-24T00:58:56.461Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-slow-Employer--a9165-ndor-lists-retain-the-cycle-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "07d5b3b25daacf53cd2a-1b35cdfa66c055f8c936",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 250,
          "column": 5
        }
      ],
      "suites": [
        {
          "title": "cycle-index URL contract (sites#194)",
          "file": "tests/ui/cycle-index.spec.ts",
          "line": 44,
          "column": 6,
          "specs": [
            {
              "title": "homepage uses the fixed cycle-count document only for a supported cycle",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 684,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.869Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-cycle-index-UR-5543a--only-for-a-supported-cycle-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "07d5b3b25daacf53cd2a-22bd75ed47108d3cc049",
              "file": "tests/ui/cycle-index.spec.ts",
              "line": 45,
              "column": 7
            },
            {
              "title": "homepage leaves the legacy anonymous counts query unchanged (no cycle)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 280,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.852Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-cycle-index-UR-63762-s-query-unchanged-no-cycle--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "07d5b3b25daacf53cd2a-eaf998ed2344bec97480",
              "file": "tests/ui/cycle-index.spec.ts",
              "line": 68,
              "column": 9
            },
            {
              "title": "homepage leaves the legacy anonymous counts query unchanged (?cycle=2023)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 277,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.157Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-cycle-index-UR-fbe7c-query-unchanged-cycle-2023--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "07d5b3b25daacf53cd2a-d84c51ce2ce2b956ef67",
              "file": "tests/ui/cycle-index.spec.ts",
              "line": 68,
              "column": 9
            },
            {
              "title": "homepage leaves the legacy anonymous counts query unchanged (?cycle=invalid)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 346,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.454Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-cycle-index-UR-9f23a-ry-unchanged-cycle-invalid--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "07d5b3b25daacf53cd2a-d04b1f0327abf30221ad",
              "file": "tests/ui/cycle-index.spec.ts",
              "line": 68,
              "column": 9
            },
            {
              "title": "supported candidate and committee browse/search requests carry cycle and retain URL state",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 707,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.818Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-cycle-index-UR-c53a8--cycle-and-retain-URL-state-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "07d5b3b25daacf53cd2a-598053d864c7c1b7d87f",
              "file": "tests/ui/cycle-index.spec.ts",
              "line": 83,
              "column": 7
            },
            {
              "title": "supported index types scope results; unsupported county counts stay lifetime and explain scope",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 721,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.544Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-cycle-index-UR-eb97d--lifetime-and-explain-scope-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "07d5b3b25daacf53cd2a-275f1b6e0da5808ad21d",
              "file": "tests/ui/cycle-index.spec.ts",
              "line": 118,
              "column": 7
            },
            {
              "title": "individual global cycle facet is passed to the API independently of lifetime/profile data",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "skipped",
                      "duration": 157,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.282Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/cycle-index-cycle-index-UR-78d64-ly-of-lifetime-profile-data-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "07d5b3b25daacf53cd2a-dc8d6406aa6c5ca9cdac",
              "file": "tests/ui/cycle-index.spec.ts",
              "line": 137,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/data-contracts.spec.ts",
      "file": "tests/ui/data-contracts.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "graph data contracts",
          "file": "tests/ui/data-contracts.spec.ts",
          "line": 24,
          "column": 6,
          "specs": [
            {
              "title": "county state_fips + county_fips is the GEOID tracts and blocks join on",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 813,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] county state_fips + county_fips is the GEOID tracts and blocks join on: {\"name\":\"Erath County\",\"state_fips\":\"48\",\"county_fips\":\"143\"}, {\"name\":\"Brazoria County\",\"state_fips\":\"48\",\"county_fips\":\"039\"}, {\"name\":\"Throckmorton County\",\"state_fips\":\"48\",\"county_fips\":\"447\"}\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.963Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-f384fe1a5980f6fbbab9",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 25,
              "column": 7
            },
            {
              "title": "precincts join on the 5-digit county GEOID",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 104,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.880Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-4429b8eac19c273f24bb",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 50,
              "column": 7
            },
            {
              "title": "candidate ids are UUID5s and carry their FEC id",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 108,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.003Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-0d399e3f265b47191366",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 58,
              "column": 7
            },
            {
              "title": "Party exposes its FEC code",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 49,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.130Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-a452252060391ae22369",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 71,
              "column": 7
            },
            {
              "title": "the graph serves every scalar the schema declares (seeded sample per type)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 240000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 61523,
                      "error": {
                        "message": "Error: committees sample (offset 50000)\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeLessThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: < \u001b[32m500\u001b[39m\nReceived:   \u001b[31m504\u001b[39m",
                        "stack": "Error: committees sample (offset 50000)\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeLessThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: < \u001b[32m500\u001b[39m\nReceived:   \u001b[31m504\u001b[39m\n    at /app/tests/ui/data-contracts.spec.ts:146:67",
                        "location": {
                          "file": "/app/tests/ui/data-contracts.spec.ts",
                          "column": 67,
                          "line": 146
                        },
                        "snippet": "\u001b[0m \u001b[90m 144 |\u001b[39m           headers\u001b[33m:\u001b[39m visitorHeaders()\u001b[33m,\u001b[39m\n \u001b[90m 145 |\u001b[39m         })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 146 |\u001b[39m         expect(res\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${root} sample (offset ${offset})`\u001b[39m)\u001b[33m.\u001b[39mtoBeLessThan(\u001b[35m500\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                   \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 147 |\u001b[39m         \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mjson()\u001b[33m;\u001b[39m\n \u001b[90m 148 |\u001b[39m         \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m e \u001b[36mof\u001b[39m body\u001b[33m.\u001b[39merrors \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m []) {\n \u001b[90m 149 |\u001b[39m           \u001b[90m// field errors carry [root, index, field] or [root, index, conn, 'edges', index, 'properties', field]\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/data-contracts.spec.ts",
                            "column": 67,
                            "line": 146
                          },
                          "message": "Error: committees sample (offset 50000)\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeLessThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: < \u001b[32m500\u001b[39m\nReceived:   \u001b[31m504\u001b[39m\n\n  144 |           headers: visitorHeaders(),\n  145 |         });\n> 146 |         expect(res.status(), `${root} sample (offset ${offset})`).toBeLessThan(500);\n      |                                                                   ^\n  147 |         const body = await res.json();\n  148 |         for (const e of body.errors ?? []) {\n  149 |           // field errors carry [root, index, field] or [root, index, conn, 'edges', index, 'properties', field]\n    at /app/tests/ui/data-contracts.spec.ts:146:67"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Block: 0\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Candidate: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:CodeSource: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Committee: 50000\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.200Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/data-contracts-graph-data--96f60-res-seeded-sample-per-type--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/data-contracts.spec.ts",
                        "column": 67,
                        "line": 146
                      }
                    },
                    {
                      "workerIndex": 88,
                      "parallelIndex": 2,
                      "status": "passed",
                      "duration": 59084,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Block: 0\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Candidate: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:CodeSource: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Committee: 50000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Contributor: 20000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:County: 0\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Cycle: 1000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:DataSource: 50000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:District: 1000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Employer: 50000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Individual: 50000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Office: 20000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Organization: 1000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Party: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Place: 50000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:PostalCode: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Precinct: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Tract: 0\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Stage: 5000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:State: 50000\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] scalars:Vendor: 1000\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-24T00:59:53.214Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/data-contracts-graph-data--96f60-res-seeded-sample-per-type--ui-retry1/trace.zip"
                        }
                      ]
                    }
                  ],
                  "status": "flaky"
                }
              ],
              "id": "370fc745607416148837-83e55b3a887e2ecf6eaf",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 81,
              "column": 7
            },
            {
              "title": "entity counts stay above the accepted baseline",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 88,
                      "parallelIndex": 2,
                      "status": "passed",
                      "duration": 66,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T01:00:52.556Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-d1674ff7d0fddc5795da",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 164,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/disabled-pages.spec.ts",
      "file": "tests/ui/disabled-pages.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "disabled entity pages",
          "file": "tests/ui/disabled-pages.spec.ts",
          "line": 8,
          "column": 6,
          "specs": [
            {
              "title": "/contributors returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 407,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.891Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-15012-es-contributors-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-eeaf2a96904f5fab5855",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/contributors/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 181,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.566Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-15012-es-contributors-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-4ef4084687b4fd401e0e",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/contributors/any-entity-id/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 139,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.782Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-dad75-s-any-entity-id-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-e3ed295c83582d4283c6",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "homepage has no link or visible card for /contributors/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 293,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.949Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-a3004-ible-card-for-contributors--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-dc932c58cabd7e95e978",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 17,
              "column": 9
            },
            {
              "title": "/codesources returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 167,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.264Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-entity-pages-codesources-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-fb06178d006e6578315a",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/codesources/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 205,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.449Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-entity-pages-codesources-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-8235710cd0b53cf94f3d",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/codesources/any-entity-id/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 171,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.683Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-808a2-s-any-entity-id-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-d46c47f30cca6317f3ef",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "homepage has no link or visible card for /codesources/",
              "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-24T00:58:51.875Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-269ae-sible-card-for-codesources--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-315ac629d40ead7d7e3f",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 17,
              "column": 9
            },
            {
              "title": "homepage still shows enabled entity cards",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 312,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.153Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-839ee--shows-enabled-entity-cards-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-9cd10ec808f3bc4b54f0",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 24,
              "column": 7
            },
            {
              "title": "homepage loads without script errors",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 718,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.492Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-9b095-loads-without-script-errors-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-4bdcb6be185099980649",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 31,
              "column": 7
            },
            {
              "title": "disabled-pages runtime script is served",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 181,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.227Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/disabled-pages-disabled-en-07214-es-runtime-script-is-served-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-41968bac84ec1d02c2e6",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 39,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/district-delegates.spec.ts",
      "file": "tests/ui/district-delegates.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "AS delegate district has a current00 canonical and historical98 redirect",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 7,
                  "parallelIndex": 7,
                  "status": "failed",
                  "duration": 1175,
                  "error": {
                    "message": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:49.917Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 34,
                  "parallelIndex": 7,
                  "status": "failed",
                  "duration": 1083,
                  "error": {
                    "message": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:58:52.190Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 38,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 578,
                  "error": {
                    "message": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: AS:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:58:54.088Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-AS-dele-0621b-l-and-historical98-redirect-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "878bfbb19a6f264d20bb-e956837d0c897f40f7bd",
          "file": "tests/ui/district-delegates.spec.ts",
          "line": 11,
          "column": 7
        },
        {
          "title": "GU delegate district has a current00 canonical and historical98 redirect",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 40,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 623,
                  "error": {
                    "message": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:55.336Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 43,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 706,
                  "error": {
                    "message": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:58:56.670Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 45,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 482,
                  "error": {
                    "message": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: GU:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:58:58.141Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-GU-dele-cc4e2-l-and-historical98-redirect-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "878bfbb19a6f264d20bb-ea77f7bfef78384e351e",
          "file": "tests/ui/district-delegates.spec.ts",
          "line": 11,
          "column": 7
        },
        {
          "title": "MP delegate district has a current00 canonical and historical98 redirect",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 47,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 882,
                  "error": {
                    "message": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:59.374Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 50,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 996,
                  "error": {
                    "message": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:01.149Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 54,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 675,
                  "error": {
                    "message": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: MP:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:03.130Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-MP-dele-d4c82-l-and-historical98-redirect-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "878bfbb19a6f264d20bb-3d136330ec679ff6f05a",
          "file": "tests/ui/district-delegates.spec.ts",
          "line": 11,
          "column": 7
        },
        {
          "title": "VI delegate district has a current00 canonical and historical98 redirect",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 56,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 949,
                  "error": {
                    "message": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:04.885Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 59,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 865,
                  "error": {
                    "message": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:07.576Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 64,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 632,
                  "error": {
                    "message": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: VI:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:09.348Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-VI-dele-acc09-l-and-historical98-redirect-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "878bfbb19a6f264d20bb-b5a80f433e14bd85b55d",
          "file": "tests/ui/district-delegates.spec.ts",
          "line": 11,
          "column": 7
        },
        {
          "title": "DC delegate district has a current00 canonical and historical98 redirect",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 65,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 571,
                  "error": {
                    "message": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:10.674Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 66,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 782,
                  "error": {
                    "message": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:11.910Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 68,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 534,
                  "error": {
                    "message": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: DC:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:13.395Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-DC-dele-bb890-l-and-historical98-redirect-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "878bfbb19a6f264d20bb-b0137c4c028c3e01b1d4",
          "file": "tests/ui/district-delegates.spec.ts",
          "line": 11,
          "column": 7
        },
        {
          "title": "PR delegate district has a current00 canonical and historical98 redirect",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 70,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 630,
                  "error": {
                    "message": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:14.551Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 72,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 783,
                  "error": {
                    "message": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:17.762Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                },
                {
                  "workerIndex": 74,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 558,
                  "error": {
                    "message": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m",
                    "stack": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n    at /app/tests/ui/district-delegates.spec.ts:53:104",
                    "location": {
                      "file": "/app/tests/ui/district-delegates.spec.ts",
                      "column": 104,
                      "line": 53
                    },
                    "snippet": "\u001b[0m \u001b[90m 51 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m storage\u001b[33m.\u001b[39mtext())\u001b[33m,\u001b[39m \u001b[32m`${state}: current UUID must share00 canonical`\u001b[39m)\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 52 |\u001b[39m     \u001b[36mconst\u001b[39m historical \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/districts/${state.toLowerCase()}-98/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 53 |\u001b[39m     expect(historical\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${state}:98 must redirect rather than retire or retain an old owner`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m301\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 54 |\u001b[39m     expect(toRelativePath(historical\u001b[33m.\u001b[39mheaders()[\u001b[32m'location'\u001b[39m] \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m))\u001b[33m.\u001b[39mtoBe(canonical)\u001b[33m;\u001b[39m\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 56 |\u001b[39m }\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-delegates.spec.ts",
                        "column": 104,
                        "line": 53
                      },
                      "message": "Error: PR:98 must redirect rather than retire or retain an old owner\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m301\u001b[39m\nReceived: \u001b[31m410\u001b[39m\n\n  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);\n  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });\n> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);\n     |                                                                                                        ^\n  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);\n  55 |   });\n  56 | }\n    at /app/tests/ui/district-delegates.spec.ts:53:104"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:19.238Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-delegates-PR-dele-6e115-l-and-historical98-redirect-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-delegates.spec.ts",
                    "column": 104,
                    "line": 53
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "878bfbb19a6f264d20bb-8e97b638d5e896c3796d",
          "file": "tests/ui/district-delegates.spec.ts",
          "line": 11,
          "column": 7
        }
      ]
    },
    {
      "title": "tests/ui/district-maps.spec.ts",
      "file": "tests/ui/district-maps.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "congressional map of TX: boundaries within budget, polygons keyed to graph Districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 8,
                  "parallelIndex": 8,
                  "status": "failed",
                  "duration": 5670,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:49.946Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 41,
                  "parallelIndex": 2,
                  "status": "failed",
                  "duration": 5734,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:58:56.394Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 53,
                  "parallelIndex": 2,
                  "status": "failed",
                  "duration": 5410,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"cd\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"cd\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"cd\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:03.085Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-congressiona-50304-ns-keyed-to-graph-Districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "747abdf89112f28c94e8-bd1bd99c9423f784b351",
          "file": "tests/ui/district-maps.spec.ts",
          "line": 36,
          "column": 7
        },
        {
          "title": "state-senate map of AK: boundaries within budget, polygons keyed to graph Districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 63,
                  "parallelIndex": 2,
                  "status": "failed",
                  "duration": 5448,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:09.305Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 71,
                  "parallelIndex": 2,
                  "status": "failed",
                  "duration": 5612,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:16.720Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 76,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5455,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:23.016Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-a7f0d-ns-keyed-to-graph-Districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "747abdf89112f28c94e8-12361a1a1eecbcb3347d",
          "file": "tests/ui/district-maps.spec.ts",
          "line": 36,
          "column": 7
        },
        {
          "title": "state-senate map of VT: boundaries within budget, polygons keyed to graph Districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 79,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5367,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:29.066Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 82,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5647,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:35.043Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 84,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5418,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldu\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldu\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldu\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:41.445Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-senate-d5f2d-ns-keyed-to-graph-Districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "747abdf89112f28c94e8-93e708017d995b46584c",
          "file": "tests/ui/district-maps.spec.ts",
          "line": 36,
          "column": 7
        },
        {
          "title": "state-house map of MN: boundaries within budget, polygons keyed to graph Districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 86,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5374,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:47.469Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 89,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5698,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:53.436Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 91,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5370,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:59.826Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--4f234-ns-keyed-to-graph-Districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "747abdf89112f28c94e8-ca46eec18a5cd8cc7969",
          "file": "tests/ui/district-maps.spec.ts",
          "line": 36,
          "column": 7
        },
        {
          "title": "state-house map of TX: boundaries within budget, polygons keyed to graph Districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 93,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5490,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T01:00:05.788Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 95,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5638,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T01:00:11.870Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                },
                {
                  "workerIndex": 97,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 5445,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n    at /app/tests/ui/district-maps.spec.ts:48:80",
                    "location": {
                      "file": "/app/tests/ui/district-maps.spec.ts",
                      "column": 80,
                      "line": 48
                    },
                    "snippet": "\u001b[0m \u001b[90m 46 |\u001b[39m     \u001b[36mconst\u001b[39m inventory \u001b[33m=\u001b[39m sample\u001b[33m.\u001b[39mkind \u001b[33m===\u001b[39m \u001b[32m'cd'\u001b[39m \u001b[33m?\u001b[39m \u001b[36mnull\u001b[39m \u001b[33m:\u001b[39m inventoryResponse(page\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mstate)\u001b[33m;\u001b[39m\n \u001b[90m 47 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 48 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m`.map-chamber-btn[data-kind=\"${sample.kind}\"]`\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 49 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map-view'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'data-loaded'\u001b[39m\u001b[33m,\u001b[39m sample\u001b[33m.\u001b[39mkind\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 50 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#map path[data-district]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(features\u001b[33m.\u001b[39mlength)\u001b[33m;\u001b[39m\n \u001b[90m 51 |\u001b[39m     \u001b[36mif\u001b[39m (sample\u001b[33m.\u001b[39mlabel) {\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 80,
                        "line": 48
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-chamber-btn[data-kind=\"sldl\"]')\nExpected: \u001b[32m\"true\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveAttribute\" locator('.map-chamber-btn[data-kind=\"sldl\"]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-chamber-btn[data-kind=\"sldl\"]')\u001b[22m\n\n\n  46 |     const inventory = sample.kind === 'cd' ? null : inventoryResponse(page, sample.kind, sample.state);\n  47 |     await page.goto(`/districts/?view=map&tab=${sample.tab}&state=${sample.state}`);\n> 48 |     await expect(page.locator(`.map-chamber-btn[data-kind=\"${sample.kind}\"]`)).toHaveAttribute('aria-pressed', 'true');\n     |                                                                                ^\n  49 |     await expect(page.locator('#map-view')).toHaveAttribute('data-loaded', sample.kind, { timeout: 45000 });\n  50 |     await expect(page.locator('#map path[data-district]')).toHaveCount(features.length);\n  51 |     if (sample.label) {\n    at /app/tests/ui/district-maps.spec.ts:48:80"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T01:00:18.212Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-state-house--87395-ns-keyed-to-graph-Districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/district-maps.spec.ts",
                    "column": 80,
                    "line": 48
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "747abdf89112f28c94e8-6086b9661ec52534e0c2",
          "file": "tests/ui/district-maps.spec.ts",
          "line": 36,
          "column": 7
        },
        {
          "title": "State House on Nebraska explains the unicameral legislature",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 98,
                  "parallelIndex": 0,
                  "status": "timedOut",
                  "duration": 30093,
                  "error": {
                    "message": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m",
                    "stack": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m"
                  },
                  "errors": [
                    {
                      "message": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m"
                    },
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 45,
                        "line": 83
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-notice')\nExpected substring: \u001b[32m\"unicameral\"\u001b[39m\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('.map-notice') with timeout 45000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-notice')\u001b[22m\n\u001b[2m  - Test timeout of 30000ms exceeded.\u001b[22m\n\n\n  81 | test('State House on Nebraska explains the unicameral legislature', async ({ page }) => {\n  82 |   await page.goto('/districts/?view=map&tab=state-house&state=NE');\n> 83 |   await expect(page.locator('.map-notice')).toContainText('unicameral', { timeout: 45000 });\n     |                                             ^\n  84 | });\n  85 |\n    at /app/tests/ui/district-maps.spec.ts:83:45"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T01:00:24.260Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui/error-context.md"
                    }
                  ]
                },
                {
                  "workerIndex": 99,
                  "parallelIndex": 0,
                  "status": "timedOut",
                  "duration": 30825,
                  "error": {
                    "message": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m",
                    "stack": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m"
                  },
                  "errors": [
                    {
                      "message": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m"
                    },
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 45,
                        "line": 83
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-notice')\nExpected substring: \u001b[32m\"unicameral\"\u001b[39m\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('.map-notice') with timeout 45000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-notice')\u001b[22m\n\u001b[2m  - Test timeout of 30000ms exceeded.\u001b[22m\n\n\n  81 | test('State House on Nebraska explains the unicameral legislature', async ({ page }) => {\n  82 |   await page.goto('/districts/?view=map&tab=state-house&state=NE');\n> 83 |   await expect(page.locator('.map-notice')).toContainText('unicameral', { timeout: 45000 });\n     |                                             ^\n  84 | });\n  85 |\n    at /app/tests/ui/district-maps.spec.ts:83:45"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T01:00:54.941Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui-retry1/trace.zip"
                    }
                  ]
                },
                {
                  "workerIndex": 100,
                  "parallelIndex": 0,
                  "status": "timedOut",
                  "duration": 30088,
                  "error": {
                    "message": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m",
                    "stack": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m"
                  },
                  "errors": [
                    {
                      "message": "\u001b[31mTest timeout of 30000ms exceeded.\u001b[39m"
                    },
                    {
                      "location": {
                        "file": "/app/tests/ui/district-maps.spec.ts",
                        "column": 45,
                        "line": 83
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.map-notice')\nExpected substring: \u001b[32m\"unicameral\"\u001b[39m\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('.map-notice') with timeout 45000ms\u001b[22m\n\u001b[2m  - waiting for locator('.map-notice')\u001b[22m\n\u001b[2m  - Test timeout of 30000ms exceeded.\u001b[22m\n\n\n  81 | test('State House on Nebraska explains the unicameral legislature', async ({ page }) => {\n  82 |   await page.goto('/districts/?view=map&tab=state-house&state=NE');\n> 83 |   await expect(page.locator('.map-notice')).toContainText('unicameral', { timeout: 45000 });\n     |                                             ^\n  84 | });\n  85 |\n    at /app/tests/ui/district-maps.spec.ts:83:45"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T01:01:26.527Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/district-maps-State-House--e11b7--the-unicameral-legislature-ui-retry2/error-context.md"
                    }
                  ]
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "747abdf89112f28c94e8-845da3e4433ba5358010",
          "file": "tests/ui/district-maps.spec.ts",
          "line": 81,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/district-sitemap-audit.spec.ts",
      "file": "tests/ui/district-sitemap-audit.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "districts sitemap: every listed URL",
          "file": "tests/ui/district-sitemap-audit.spec.ts",
          "line": 42,
          "column": 6,
          "specs": [
            {
              "title": "each URL is a well-formed 200 canonical page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 600000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 2027,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Audited 441 district sitemap URLs, 0 problem(s)\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.946Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e5f1a3dc33493a5d5693-1cd9b524fab8feffa129",
              "file": "tests/ui/district-sitemap-audit.spec.ts",
              "line": 43,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/entities.spec.ts",
      "file": "tests/ui/entities.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "us.elect.info entity sections",
          "file": "tests/ui/entities.spec.ts",
          "line": 13,
          "column": 6,
          "specs": [
            {
              "title": "candidates section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 1431,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] candidates section - index and random pages: /politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/, /politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/, /politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.003Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-27dbb3fc8778de5a92d1",
              "file": "tests/ui/entities.spec.ts",
              "line": 15,
              "column": 7
            },
            {
              "title": "committees section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 1619,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] committees section - index and random pages: /committees/0c1dc29f-4c16-d088-4721-a10b1634a797/, /committees/16e80634-d3c7-b266-a589-f2e8932c117d/, /committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.605Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-e974c5cf3a3265485947",
              "file": "tests/ui/entities.spec.ts",
              "line": 36,
              "column": 7
            },
            {
              "title": "parties section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 539,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] parties section - index and random pages: /parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/, /parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/, /parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.246Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-10bf5643f2069b30d1e6",
              "file": "tests/ui/entities.spec.ts",
              "line": 57,
              "column": 7
            },
            {
              "title": "offices section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 440,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] offices section - index and random pages: /offices/ba48d955-6e7e-670e-b85a-2537687c4175/, /offices/b279284d-a3bf-24a2-94b8-0322becdccf4/, /offices/684f6e2d-7105-932b-8b7f-94016580f727/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.800Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-57c837c2cf446c42d558",
              "file": "tests/ui/entities.spec.ts",
              "line": 78,
              "column": 7
            },
            {
              "title": "districts section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 797,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] districts section - index and random pages: /districts/ca-06/, /districts/ca-08/, /districts/ca-12/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.254Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-0603cede9ea0f43c33a6",
              "file": "tests/ui/entities.spec.ts",
              "line": 99,
              "column": 7
            },
            {
              "title": "states section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 1169,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] states section - index and random pages: /states/az/, /states/ct/, /states/de/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.064Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-859b9ebc18597fc7cd99",
              "file": "tests/ui/entities.spec.ts",
              "line": 135,
              "column": 7
            },
            {
              "title": "elections section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 980,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] elections section - index and random pages: /elections/2020/, /elections/2018/, /elections/1996/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.246Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-b8ea6926bb024b138407",
              "file": "tests/ui/entities.spec.ts",
              "line": 164,
              "column": 7
            }
          ]
        },
        {
          "title": "office profile - dynamic candidates",
          "file": "tests/ui/entities.spec.ts",
          "line": 186,
          "column": 6,
          "specs": [
            {
              "title": "office profile loads candidates filtered to office",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 179,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.237Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-754cb9c02b5294c0dd5c",
              "file": "tests/ui/entities.spec.ts",
              "line": 190,
              "column": 7
            },
            {
              "title": "office profile candidates sorted by total contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 203,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.430Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-office-profile----9afcc-al-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-6e65f0bd8866689ca94b",
              "file": "tests/ui/entities.spec.ts",
              "line": 212,
              "column": 7
            },
            {
              "title": "office profile renders candidate results in UI",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 168,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.645Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-138301d01ff79967b9fa",
              "file": "tests/ui/entities.spec.ts",
              "line": 240,
              "column": 7
            }
          ]
        },
        {
          "title": "state profile - dynamic candidates",
          "file": "tests/ui/entities.spec.ts",
          "line": 255,
          "column": 6,
          "specs": [
            {
              "title": "state profile loads candidates filtered to state",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 319,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.826Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-23323ef80148534fb960",
              "file": "tests/ui/entities.spec.ts",
              "line": 258,
              "column": 7
            },
            {
              "title": "state profile candidates sorted by total contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 241,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.155Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-631c42730cdb715cf791",
              "file": "tests/ui/entities.spec.ts",
              "line": 277,
              "column": 7
            }
          ]
        },
        {
          "title": "district profile - dynamic candidates",
          "file": "tests/ui/entities.spec.ts",
          "line": 305,
          "column": 6,
          "specs": [
            {
              "title": "district profile loads candidates filtered to district",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 173,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.410Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-775cbc1b1c48b28b5324",
              "file": "tests/ui/entities.spec.ts",
              "line": 308,
              "column": 7
            },
            {
              "title": "district profile candidates sorted by total contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 191,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.595Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-district-profile--1321e-al-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-f00bfce3824e336086aa",
              "file": "tests/ui/entities.spec.ts",
              "line": 330,
              "column": 7
            }
          ]
        },
        {
          "title": "entity browse sort order - quantitative fields",
          "file": "tests/ui/entities.spec.ts",
          "line": 373,
          "column": 6,
          "specs": [
            {
              "title": "candidates sorted by total contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 5180,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.796Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-entity-browse-sor-5c84b-al-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-e799dea180dde7b078da",
              "file": "tests/ui/entities.spec.ts",
              "line": 375,
              "column": 7
            },
            {
              "title": "committees sorted by total receipts descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 172,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:03.990Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-entity-browse-sor-e4166-y-total-receipts-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-717048594564fd91aeee",
              "file": "tests/ui/entities.spec.ts",
              "line": 383,
              "column": 7
            },
            {
              "title": "vendors sorted by total received descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 2321,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:04.176Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-entity-browse-sor-fb9d9-y-total-received-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-3102f0e0d367177cc559",
              "file": "tests/ui/entities.spec.ts",
              "line": 391,
              "column": 7
            },
            {
              "title": "individuals sorted by total contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "skipped",
                      "duration": 116,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:06.511Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-entity-browse-sor-9b1cc-al-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "e590b0e25242679a26f1-4172cf90fdc39f1e8b04",
              "file": "tests/ui/entities.spec.ts",
              "line": 399,
              "column": 7
            },
            {
              "title": "employers sorted by total employee contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 159,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:06.639Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-entity-browse-sor-2868b-ee-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-2ca76e131a1ccafc504c",
              "file": "tests/ui/entities.spec.ts",
              "line": 411,
              "column": 7
            }
          ]
        },
        {
          "title": "us.elect.info entity sections - additional index + detail",
          "file": "tests/ui/entities.spec.ts",
          "line": 420,
          "column": 6,
          "specs": [
            {
              "title": "employers section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 1661,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] employers section - index and random pages: /employers/b4116417-a32c-5f1b-cef0-033c090ea585/, /employers/9dcdb4bb-6588-3a32-1bae-e49ee15b7a70/, /employers/233356c6-077e-a4cc-cf1d-5b12bcc88379/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:06.808Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-095ba-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-b6b14a576f48b71af5e5",
              "file": "tests/ui/entities.spec.ts",
              "line": 422,
              "column": 7
            },
            {
              "title": "vendors section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 348,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] vendors section - index and random pages: /vendors/3a3ab30c-8a65-ae9d-d7e5-ab7b71005eb5/, /vendors/ddc36f53-2814-b02e-5659-89ca531d22e8/, /vendors/f5ee1323-d683-b8d3-3080-2b393004cd0d/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:08.482Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-29463-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-586eade1e031f2078f6b",
              "file": "tests/ui/entities.spec.ts",
              "line": 442,
              "column": 7
            },
            {
              "title": "counties section - index and random detail pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 1071,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] counties section - index and random detail pages: /counties/7bf931c8-aaef-c646-303b-b858999f30a4/, /counties/bf0e6e18-a242-db31-b344-697a6988b1aa/, /counties/be6a4f4e-b42f-9a62-a8cd-9cead78ac8f7/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:08.842Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-6889bbe45fe800e5d9be",
              "file": "tests/ui/entities.spec.ts",
              "line": 462,
              "column": 7
            },
            {
              "title": "places section - index and random detail pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 1498,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] places section - index and random detail pages: /places/b7c286fc-4ec4-62ea-98ad-b20d1f26cf44/, /places/cb8c83e7-7b03-eb26-7f51-091b0f0dd030/, /places/ee6067f1-0185-ef01-bd9a-00721805bcf7/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:09.933Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-c9580fbe75551276dc4a",
              "file": "tests/ui/entities.spec.ts",
              "line": 490,
              "column": 7
            },
            {
              "title": "postalcodes section - index and random detail pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 1459,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] postalcodes section - index and random detail pages: /postalcodes/1457efc0-aa45-6b2e-812c-cfd4d796c306/, /postalcodes/bf100119-0032-613f-410c-4fa9ebb30bfa/, /postalcodes/0374e329-b508-2fb5-89fe-da47b8f948ec/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:11.447Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-7378845a8b20f0ca8dc7",
              "file": "tests/ui/entities.spec.ts",
              "line": 518,
              "column": 7
            },
            {
              "title": "precincts section - map view and state filter",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 796,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] precincts section - map view and state filter: /precincts/d09c62a5-afea-e346-73df-500187a05791/, /precincts/d4ef24d0-7c5e-773b-93cc-a2eb135d92d9/, /precincts/827d0b4a-0891-2296-0320-db3fa623d1b5/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:12.917Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-94b96---map-view-and-state-filter-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-b994931c7f61cea69263",
              "file": "tests/ui/entities.spec.ts",
              "line": 546,
              "column": 7
            },
            {
              "title": "tracts section - state/county filter and random detail pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "passed",
                      "duration": 877,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] tracts section - state/county filter and random detail pages: /tracts/34aa88f8-957f-207b-713f-22b6e0d82915/, /tracts/f5b910d5-3f74-c6af-933d-c8491f680bf8/, /tracts/392ec8e1-2af4-9f42-23e2-dbd48a48d184/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:13.725Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-bf75c-ter-and-random-detail-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-073b2eb60264357a1ca9",
              "file": "tests/ui/entities.spec.ts",
              "line": 599,
              "column": 7
            }
          ]
        },
        {
          "title": "us.elect.info entity sections - individuals (premium)",
          "file": "tests/ui/entities.spec.ts",
          "line": 652,
          "column": 6,
          "specs": [
            {
              "title": "individuals section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Requires PLAYWRIGHT_AUTH_USER/PLAYWRIGHT_AUTH_PASS",
                      "location": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "line": 661,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "skipped",
                      "duration": 72,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:14.612Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Requires PLAYWRIGHT_AUTH_USER/PLAYWRIGHT_AUTH_PASS",
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "line": 661,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entities-us-elect-info-ent-7f2e9-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "e590b0e25242679a26f1-fa85143bab060214a738",
              "file": "tests/ui/entities.spec.ts",
              "line": 660,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/entity-filters.spec.ts",
      "file": "tests/ui/entity-filters.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "individual donor filters",
          "file": "tests/ui/entity-filters.spec.ts",
          "line": 20,
          "column": 6,
          "specs": [
            {
              "title": "state, cycle, lifetime total and lean narrow the list and land in the URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "skipped",
                      "duration": 134,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.982Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "589b4d2d59414df6d16a-86f7e52d8ac4c2add6d3",
              "file": "tests/ui/entity-filters.spec.ts",
              "line": 30,
              "column": 7
            },
            {
              "title": "text filters: employer and ZIP prefix",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "skipped",
                      "duration": 52,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.327Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "589b4d2d59414df6d16a-d602b2d29045026bf1c1",
              "file": "tests/ui/entity-filters.spec.ts",
              "line": 51,
              "column": 7
            },
            {
              "title": "an unknown filter field is refused by the API",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "skipped",
                      "duration": 75,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.410Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "589b4d2d59414df6d16a-2f26c7bcfc0fe5f858da",
              "file": "tests/ui/entity-filters.spec.ts",
              "line": 59,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/entity-graph.spec.ts",
      "file": "tests/ui/entity-graph.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "entity-graph script injection",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 26,
          "column": 6,
          "specs": [
            {
              "title": "injected once on /committees/a75a9110-f1db-a945-39a8-7503ed3c04da/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 478,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.036Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-29e66cb8f40124191f24",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 28,
              "column": 9
            },
            {
              "title": "injected once on /candidates/a8897257-430c-2bf3-4498-349021b09ca3/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 55,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.595Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-8caee27d666b889f629d",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 28,
              "column": 9
            },
            {
              "title": "a geography page names its graph node: /states/032f8d61-f554-f435-2a6d-50b3c8cc01d7/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 35,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.687Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-497a9a5f2e51230029f1",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 35,
              "column": 7
            },
            {
              "title": "not injected on /elections/2024/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 529,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.774Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-a1eb6278fed6d4b5614b",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "not injected on /offices/president/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 27,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.321Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-b3bac75bfbf090c5eca2",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 44,
              "column": 9
            }
          ]
        },
        {
          "title": "entityGraph API",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 52,
          "column": 6,
          "specs": [
            {
              "title": "C00010603: neighbours without individuals, money edges with amounts",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 10354,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.367Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-b3fdec8c25bff91f5112",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 54,
              "column": 9
            },
            {
              "title": "P00009423: neighbours without individuals, money edges with amounts",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 3079,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:01.738Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-dd19f11790f289a6f255",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 54,
              "column": 9
            }
          ]
        },
        {
          "title": "nodeGraph API",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 88,
          "column": 6,
          "specs": [
            {
              "title": "a county: neighbours drawn, blocks counted, no individuals",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 3446,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:04.835Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-6cf3b7da2391e0b9f756",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 89,
              "column": 7
            },
            {
              "title": "an unknown label is null",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 25,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:08.298Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-d4d728dc8f6243f72793",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 103,
              "column": 7
            },
            {
              "title": "voterGraph is refused on the public endpoint",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 24,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:08.339Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-4a33ed5ca2bf00946a08",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 109,
              "column": 7
            }
          ]
        },
        {
          "title": "entity-graph pop-over",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 133,
          "column": 6,
          "specs": [
            {
              "title": "opens and draws on /committees/a75a9110-f1db-a945-39a8-7503ed3c04da/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 1809,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:08.379Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-759bfd2643a325762edb",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 135,
              "column": 9
            },
            {
              "title": "opens and draws on /candidates/a8897257-430c-2bf3-4498-349021b09ca3/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 1785,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:10.257Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-d147fc999d701bc54cf5",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 135,
              "column": 9
            }
          ]
        },
        {
          "title": "graph pop-over on geography and leaf pages",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 159,
          "column": 6,
          "specs": [
            {
              "title": "opens and draws on /states/032f8d61-f554-f435-2a6d-50b3c8cc01d7/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 1829,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:12.062Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-graph-graph-pop-ove-e623a-554-f435-2a6d-50b3c8cc01d7--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-4b62c7bc3a5bf61d49f1",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 161,
              "column": 9
            },
            {
              "title": "opens and draws on /tracts/0078f0bb-c0ad-4639-13fc-a29547adddac/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 1079,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:13.901Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-graph-graph-pop-ove-c4836-0ad-4639-13fc-a29547adddac--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-92c7a00e30ecee37a7cd",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 161,
              "column": 9
            }
          ]
        },
        {
          "title": "expanding the graph one hop at a time",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 185,
          "column": 6,
          "specs": [
            {
              "title": "a county in /states/032f8d61-f554-f435-2a6d-50b3c8cc01d7/'s graph expands into the drawing",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 4589,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:14.995Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-graph-expanding-the-28b41-ph-expands-into-the-drawing-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-79a77bf4fc790cdade5c",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 186,
              "column": 7
            }
          ]
        },
        {
          "title": "entity-graph without accounts",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 217,
          "column": 6,
          "specs": [
            {
              "title": "a host without Authentik keeps the header Graph button",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 12,
                      "status": "passed",
                      "duration": 339,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:19.600Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-graph-entity-graph--f23c6-eps-the-header-Graph-button-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-e685eda07b21192e4f91",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 218,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/entity-suggest.spec.ts",
      "file": "tests/ui/entity-suggest.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "entity type-ahead (sites#392)",
          "file": "tests/ui/entity-suggest.spec.ts",
          "line": 37,
          "column": 6,
          "specs": [
            {
              "title": "waits for two characters, debounces, displays context and uses the Candidate/cycle contract",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 1548,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.984Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-31348-he-Candidate-cycle-contract-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-950ba490faaf52c7f89e",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 38,
              "column": 7
            },
            {
              "title": "candidates scopes suggestions to Candidate, without a cycle by default",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 598,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.712Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-44f35--without-a-cycle-by-default-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-7a8fa78a152c4ed46f29",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 65,
              "column": 9
            },
            {
              "title": "committees scopes suggestions to Committee, without a cycle by default",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 619,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.337Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-3c068--without-a-cycle-by-default-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-be8d4922b513b25d13ff",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 65,
              "column": 9
            },
            {
              "title": "parties scopes suggestions to Party, without a cycle by default",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 505,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.978Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-5fe7c--without-a-cycle-by-default-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-950f4122cdc1954ce13f",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 65,
              "column": 9
            },
            {
              "title": "keyboard wraps, Escape dismisses, and selected Enter opens the published canonical on the same host",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 886,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.507Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-6e9dd--canonical-on-the-same-host-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-aa5015c987e3cd4772ea",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 74,
              "column": 7
            },
            {
              "title": "pointer opens committees via UUID fallback if canonical lookup is unavailable",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 567,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.407Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-16c45-nical-lookup-is-unavailable-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-98e7d549fdfbf97fe40b",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 102,
              "column": 9
            },
            {
              "title": "pointer opens parties via UUID fallback if canonical lookup is unavailable",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 552,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.992Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-d2e78-nical-lookup-is-unavailable-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-957edcffd9c2277ba3cd",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 102,
              "column": 9
            },
            {
              "title": "submitted search still displays returned rows with total=0 (ok)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 481,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.556Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-766c6-urned-rows-with-total-0-ok--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-80d4047fd0a5dde972cd",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 118,
              "column": 9
            },
            {
              "title": "submitted search still displays returned rows with total=0 (http-error)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 504,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.048Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-6e15d-ws-with-total-0-http-error--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-39d81cc47e4aab3f6a60",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 118,
              "column": 9
            },
            {
              "title": "submitted search still displays returned rows with total=0 (graphql-error)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 520,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.567Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-b4c7d-with-total-0-graphql-error--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-687b0cc8a228a1273510",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 118,
              "column": 9
            },
            {
              "title": "empty suggestions keep explicit Search and Show All working",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 566,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.101Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-47298-Search-and-Show-All-working-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-c8d158429afe7fe17f60",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 136,
              "column": 7
            },
            {
              "title": "ignores late replies after a new prefix, dismissal, or clearing below the minimum",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 1648,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.680Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-42169--clearing-below-the-minimum-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-1c57a12821077d85d1e1",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 148,
              "column": 7
            },
            {
              "title": "does not fetch while composing and fits the mobile search form",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 975,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:00.145Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-e3686-fits-the-mobile-search-form-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "50d55db3dfe905c8dee9-f522b655170ed1aa18c2",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 187,
              "column": 7
            }
          ],
          "suites": [
            {
              "title": "touch selection",
              "file": "tests/ui/entity-suggest.spec.ts",
              "line": 172,
              "column": 8,
              "specs": [
                {
                  "title": "tap opens an option without blur removing it first",
                  "ok": true,
                  "tags": [],
                  "tests": [
                    {
                      "timeout": 30000,
                      "annotations": [],
                      "expectedStatus": "passed",
                      "projectId": "ui",
                      "projectName": "ui",
                      "results": [
                        {
                          "workerIndex": 13,
                          "parallelIndex": 13,
                          "status": "passed",
                          "duration": 777,
                          "errors": [],
                          "stdout": [],
                          "stderr": [],
                          "retry": 0,
                          "startTime": "2026-10-24T00:58:59.344Z",
                          "annotations": [],
                          "attachments": [
                            {
                              "name": "screenshot",
                              "contentType": "image/png",
                              "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/entity-suggest-entity-type-540f8-hout-blur-removing-it-first-ui/test-finished-1.png"
                            }
                          ]
                        }
                      ],
                      "status": "expected"
                    }
                  ],
                  "id": "50d55db3dfe905c8dee9-eb70e4228570fd6a9954",
                  "file": "tests/ui/entity-suggest.spec.ts",
                  "line": 174,
                  "column": 9
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/follow-control.spec.ts",
      "file": "tests/ui/follow-control.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "profile Follow (sites#435)",
          "file": "tests/ui/follow-control.spec.ts",
          "line": 58,
          "column": 6,
          "specs": [
            {
              "title": "profile pages carry their entity on <body>",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 14,
                      "status": "passed",
                      "duration": 423,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.956Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6eae7daf7bd84ee8aac1-c14b99e50a9e542b4425",
              "file": "tests/ui/follow-control.spec.ts",
              "line": 59,
              "column": 7
            },
            {
              "title": "signed in: Follow toggles to Following ✓ and back through account-api",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 14,
                      "status": "passed",
                      "duration": 1550,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.472Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/follow-control-profile-Fol-188e2-nd-back-through-account-api-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6eae7daf7bd84ee8aac1-d7c093bb06d03d102737",
              "file": "tests/ui/follow-control.spec.ts",
              "line": 69,
              "column": 7
            },
            {
              "title": "signed in and already following: Following ✓",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 14,
                      "status": "passed",
                      "duration": 630,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.106Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/follow-control-profile-Fol-622d5-ready-following-Following-✓-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6eae7daf7bd84ee8aac1-bc1416243e95ca446345",
              "file": "tests/ui/follow-control.spec.ts",
              "line": 92,
              "column": 7
            },
            {
              "title": "News on elect.news opens the filtered feed in a new tab",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 14,
                      "status": "passed",
                      "duration": 809,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.765Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/follow-control-profile-Fol-bf1c7--filtered-feed-in-a-new-tab-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6eae7daf7bd84ee8aac1-fa5f62994055d402b129",
              "file": "tests/ui/follow-control.spec.ts",
              "line": 99,
              "column": 7
            },
            {
              "title": "signed out: Follow opens the sign-in panel, and the follow completes after sign-in",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 14,
                      "status": "passed",
                      "duration": 590,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.595Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/follow-control-profile-Fol-14487-low-completes-after-sign-in-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6eae7daf7bd84ee8aac1-91572a7defe02657ddb4",
              "file": "tests/ui/follow-control.spec.ts",
              "line": 110,
              "column": 7
            },
            {
              "title": "no control on a profile without news",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 14,
                      "status": "passed",
                      "duration": 768,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.201Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/follow-control-profile-Fol-e0176-l-on-a-profile-without-news-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6eae7daf7bd84ee8aac1-f86b5cc63fbd824bd49b",
              "file": "tests/ui/follow-control.spec.ts",
              "line": 127,
              "column": 7
            }
          ]
        },
        {
          "title": "profile Follow, really signed in (sites#435)",
          "file": "tests/ui/follow-control.spec.ts",
          "line": 138,
          "column": 6,
          "specs": [
            {
              "title": "follow and unfollow through account-api as the signed-in visitor",
              "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-control.spec.ts",
                        "line": 142,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 275,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.983Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "needs a really signed-in visitor (preview front door as preview-e2e)",
                          "location": {
                            "file": "/app/tests/ui/follow-control.spec.ts",
                            "line": 142,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/follow-control-profile-Fol-2e464-pi-as-the-signed-in-visitor-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6eae7daf7bd84ee8aac1-814877e5e725711b581b",
              "file": "tests/ui/follow-control.spec.ts",
              "line": 139,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/geo-map.spec.ts",
      "file": "tests/ui/geo-map.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "/districts/ny-16/: boundary map, no missing scripts or shapes",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 60000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 15,
                  "parallelIndex": 15,
                  "status": "failed",
                  "duration": 5360,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:50.126Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 22,
                  "parallelIndex": 22,
                  "status": "failed",
                  "duration": 5551,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:58:55.729Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 52,
                  "parallelIndex": 4,
                  "status": "failed",
                  "duration": 5297,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:02.107Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ny-16-b-e793c-o-missing-scripts-or-shapes-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "aeca45b1951573114fd2-26f1eddd3c5504dad49e",
          "file": "tests/ui/geo-map.spec.ts",
          "line": 18,
          "column": 7
        },
        {
          "title": "/districts/ak-00/: boundary map, no missing scripts or shapes",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 60000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 61,
                  "parallelIndex": 4,
                  "status": "failed",
                  "duration": 5221,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:08.135Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 69,
                  "parallelIndex": 3,
                  "status": "failed",
                  "duration": 5474,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:13.986Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 75,
                  "parallelIndex": 3,
                  "status": "failed",
                  "duration": 5214,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:20.206Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--districts-ak-00-b-b3fdf-o-missing-scripts-or-shapes-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "aeca45b1951573114fd2-4cc2918265d9c81185a1",
          "file": "tests/ui/geo-map.spec.ts",
          "line": 18,
          "column": 7
        },
        {
          "title": "/counties/kerr-county-tx/: boundary map, no missing scripts or shapes",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 60000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 78,
                  "parallelIndex": 2,
                  "status": "failed",
                  "duration": 5364,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:26.027Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 81,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 6815,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:31.976Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 83,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 5230,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:39.662Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--counties-kerr-cou-3cb9b-o-missing-scripts-or-shapes-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "aeca45b1951573114fd2-bf1fc2f9e43f4dd64e82",
          "file": "tests/ui/geo-map.spec.ts",
          "line": 18,
          "column": 7
        },
        {
          "title": "/places/megargel-cdp-al/: boundary map, no missing scripts or shapes",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 60000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 85,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 5227,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:45.482Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 87,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 5394,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:51.317Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 90,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 5227,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:57.355Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--places-megargel-c-1c423-o-missing-scripts-or-shapes-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "aeca45b1951573114fd2-e3e936249d93d6f68d31",
          "file": "tests/ui/geo-map.spec.ts",
          "line": 18,
          "column": 7
        },
        {
          "title": "/postalcodes/73762/: boundary map, no missing scripts or shapes",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 60000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 92,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 5201,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T01:00:03.193Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 94,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 5392,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T01:00:08.982Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                },
                {
                  "workerIndex": 96,
                  "parallelIndex": 1,
                  "status": "failed",
                  "duration": 5220,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/geo-map.spec.ts:29:23",
                    "location": {
                      "file": "/app/tests/ui/geo-map.spec.ts",
                      "column": 23,
                      "line": 29
                    },
                    "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     expect(res\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mconst\u001b[39m tag \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'script[src=\"/js/geo-map.js\"][data-geo-shape]'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m     \u001b[36mawait\u001b[39m expect(tag)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m     expect(\u001b[36mawait\u001b[39m tag\u001b[33m.\u001b[39mgetAttribute(\u001b[32m'data-geo-shape'\u001b[39m))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary[data-loaded=\"true\"] .leaflet-container'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     expect(\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'section#boundary'\u001b[39m)\u001b[33m.\u001b[39mevaluate(s \u001b[33m=>\u001b[39m s\u001b[33m.\u001b[39mpreviousElementSibling\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid))\u001b[33m.\u001b[39mtoBe(after)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/geo-map.spec.ts",
                        "column": 23,
                        "line": 29
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('script[src=\"/js/geo-map.js\"][data-geo-shape]') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('script[src=\"/js/geo-map.js\"][data-geo-shape]')\u001b[22m\n\u001b[2m    14 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  27 |     expect(res?.status(), `${path} should answer 200`).toBe(200);\n  28 |     const tag = page.locator('script[src=\"/js/geo-map.js\"][data-geo-shape]');\n> 29 |     await expect(tag).toHaveCount(1);\n     |                       ^\n  30 |     expect(await tag.getAttribute('data-geo-shape')).toMatch(/^\\/geo\\/(districts|counties|places|zcta)\\/.+\\.geojson$/);\n  31 |     await expect(page.locator('section#boundary[data-loaded=\"true\"] .leaflet-container')).toBeVisible({ timeout: 30000 });\n  32 |     expect(await page.locator('section#boundary').evaluate(s => s.previousElementSibling?.id)).toBe(after);\n    at /app/tests/ui/geo-map.spec.ts:29:23"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T01:00:15.035Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/geo-map--postalcodes-73762-6c23f-o-missing-scripts-or-shapes-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/geo-map.spec.ts",
                    "column": 23,
                    "line": 29
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "aeca45b1951573114fd2-e530e73c9cf719f4b9d0",
          "file": "tests/ui/geo-map.spec.ts",
          "line": 18,
          "column": 7
        }
      ]
    },
    {
      "title": "tests/ui/graph-control.spec.ts",
      "file": "tests/ui/graph-control.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "graph control everywhere (sites#355)",
          "file": "tests/ui/graph-control.spec.ts",
          "line": 16,
          "column": 6,
          "specs": [
            {
              "title": "a member sees Graph on / and gets the hint",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 16,
                      "status": "passed",
                      "duration": 629,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:49.991Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/graph-control-graph-contro-0bc4d--Graph-on-and-gets-the-hint-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "0db1e5a4a35d5c975675-c9c4cb661d574f9d01c0",
              "file": "tests/ui/graph-control.spec.ts",
              "line": 18,
              "column": 9
            },
            {
              "title": "a member sees Graph on /candidates/ and gets the hint",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 16,
                      "status": "passed",
                      "duration": 343,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.816Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/graph-control-graph-contro-1adde-andidates-and-gets-the-hint-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "0db1e5a4a35d5c975675-b68c424c467012fbf13a",
              "file": "tests/ui/graph-control.spec.ts",
              "line": 18,
              "column": 9
            },
            {
              "title": "signed out, the homepage Graph is locked and offers sign-in",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 16,
                      "status": "passed",
                      "duration": 301,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.183Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/graph-control-graph-contro-03882-s-locked-and-offers-sign-in-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "0db1e5a4a35d5c975675-a7d88a9a5ca0bd481c26",
              "file": "tests/ui/graph-control.spec.ts",
              "line": 30,
              "column": 7
            },
            {
              "title": "a committee page keeps one Graph control: the real pop-over",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 16,
                      "status": "passed",
                      "duration": 683,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.506Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/graph-control-graph-contro-91ad1-h-control-the-real-pop-over-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "0db1e5a4a35d5c975675-75db582a009902b0a5ee",
              "file": "tests/ui/graph-control.spec.ts",
              "line": 39,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/identity-bar.spec.ts",
      "file": "tests/ui/identity-bar.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "identity bar (sites#355)",
          "file": "tests/ui/identity-bar.spec.ts",
          "line": 30,
          "column": 6,
          "specs": [
            {
              "title": "spans the page width under the header",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 618,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.039Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c1b68-page-width-under-the-header-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-9dcbbbb9e824920aea79",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 31,
              "column": 7
            },
            {
              "title": "one row at 1280px: identity and account actions left, controls right",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 406,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.822Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--78b12-actions-left-controls-right-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-160c4c25106888353012",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 40,
              "column": 9
            },
            {
              "title": "one row at 390px: identity and account actions left, controls right",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 383,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.247Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--eb035-actions-left-controls-right-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-0bece716b3f0672b536f",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 40,
              "column": 9
            },
            {
              "title": "one row at 320px: identity and account actions left, controls right",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 372,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.653Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--f3428-actions-left-controls-right-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-689d04705a9b2cc425aa",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 40,
              "column": 9
            },
            {
              "title": "signed out at 1280px: Log in and Create an account are buttons in one row",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 393,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.044Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--6b600-ount-are-buttons-in-one-row-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-e07c8deb6e75a0779103",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 65,
              "column": 9
            },
            {
              "title": "signed out at 390px: Log in and Create an account are buttons in one row",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 321,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.458Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--7dc41-ount-are-buttons-in-one-row-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-e8fd3f0dcb15a84240d1",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 65,
              "column": 9
            },
            {
              "title": "signed out at 320px: Log in and Create an account are buttons in one row",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 325,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.802Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--8918a-ount-are-buttons-in-one-row-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-5da6c1a3ca35936cab4d",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 65,
              "column": 9
            },
            {
              "title": "signed out: controls are shown locked and only offer sign-in",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 272,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.153Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--ee107-cked-and-only-offer-sign-in-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-0d86a4cf589feeeec51e",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 81,
              "column": 7
            },
            {
              "title": "signed in: member controls work; area controls stay locked and offer Request access",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 280,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.438Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--a6c2b-ed-and-offer-Request-access-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-af488c5deb8434e1716f",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 96,
              "column": 7
            },
            {
              "title": "entitled: the area control works",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 244,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.731Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--32980-tled-the-area-control-works-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-60a5cc8118857078ffcb",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 112,
              "column": 7
            },
            {
              "title": "entitlements open from Registered and never push the controls off the bar",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 17,
                      "status": "failed",
                      "duration": 5258,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n\n    at /app/tests/ui/identity-bar.spec.ts:122:25",
                        "location": {
                          "file": "/app/tests/ui/identity-bar.spec.ts",
                          "column": 25,
                          "line": 122
                        },
                        "snippet": "\u001b[0m \u001b[90m 120 |\u001b[39m     \u001b[36mawait\u001b[39m open(page\u001b[33m,\u001b[39m \u001b[32m'jane.reporter@example.org'\u001b[39m\u001b[33m,\u001b[39m { voters\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m individuals\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m blocks\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m curator\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m preview\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 121 |\u001b[39m     \u001b[36mconst\u001b[39m chips \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-chip'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 122 |\u001b[39m     \u001b[36mawait\u001b[39m expect(chips)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 123 |\u001b[39m     \u001b[36mawait\u001b[39m expect(chips)\u001b[33m.\u001b[39mtoHaveText(\u001b[32m'Registered'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 124 |\u001b[39m     \u001b[36mconst\u001b[39m controls \u001b[33m=\u001b[39m (\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-bar__controls'\u001b[39m)\u001b[33m.\u001b[39mboundingBox())\u001b[33m!\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 125 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m id \u001b[36mof\u001b[39m [\u001b[32m'save'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'export'\u001b[39m]) {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/identity-bar.spec.ts",
                            "column": 25,
                            "line": 122
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n\n\n  120 |     await open(page, 'jane.reporter@example.org', { voters: true, individuals: true, blocks: true, curator: true, preview: true });\n  121 |     const chips = page.locator('#auth-slot .ei-chip');\n> 122 |     await expect(chips).toHaveCount(1);\n      |                         ^\n  123 |     await expect(chips).toHaveText('Registered');\n  124 |     const controls = (await page.locator('#auth-slot .ei-bar__controls').boundingBox())!;\n  125 |     for (const id of ['save', 'export']) {\n    at /app/tests/ui/identity-bar.spec.ts:122:25"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.989Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/identity-bar.spec.ts",
                        "column": 25,
                        "line": 122
                      }
                    },
                    {
                      "workerIndex": 48,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 5656,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n\n    at /app/tests/ui/identity-bar.spec.ts:122:25",
                        "location": {
                          "file": "/app/tests/ui/identity-bar.spec.ts",
                          "column": 25,
                          "line": 122
                        },
                        "snippet": "\u001b[0m \u001b[90m 120 |\u001b[39m     \u001b[36mawait\u001b[39m open(page\u001b[33m,\u001b[39m \u001b[32m'jane.reporter@example.org'\u001b[39m\u001b[33m,\u001b[39m { voters\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m individuals\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m blocks\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m curator\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m preview\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 121 |\u001b[39m     \u001b[36mconst\u001b[39m chips \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-chip'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 122 |\u001b[39m     \u001b[36mawait\u001b[39m expect(chips)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 123 |\u001b[39m     \u001b[36mawait\u001b[39m expect(chips)\u001b[33m.\u001b[39mtoHaveText(\u001b[32m'Registered'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 124 |\u001b[39m     \u001b[36mconst\u001b[39m controls \u001b[33m=\u001b[39m (\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-bar__controls'\u001b[39m)\u001b[33m.\u001b[39mboundingBox())\u001b[33m!\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 125 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m id \u001b[36mof\u001b[39m [\u001b[32m'save'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'export'\u001b[39m]) {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/identity-bar.spec.ts",
                            "column": 25,
                            "line": 122
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n\n\n  120 |     await open(page, 'jane.reporter@example.org', { voters: true, individuals: true, blocks: true, curator: true, preview: true });\n  121 |     const chips = page.locator('#auth-slot .ei-chip');\n> 122 |     await expect(chips).toHaveCount(1);\n      |                         ^\n  123 |     await expect(chips).toHaveText('Registered');\n  124 |     const controls = (await page.locator('#auth-slot .ei-bar__controls').boundingBox())!;\n  125 |     for (const id of ['save', 'export']) {\n    at /app/tests/ui/identity-bar.spec.ts:122:25"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-24T00:59:00.138Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/identity-bar.spec.ts",
                        "column": 25,
                        "line": 122
                      }
                    },
                    {
                      "workerIndex": 58,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 5272,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n\n    at /app/tests/ui/identity-bar.spec.ts:122:25",
                        "location": {
                          "file": "/app/tests/ui/identity-bar.spec.ts",
                          "column": 25,
                          "line": 122
                        },
                        "snippet": "\u001b[0m \u001b[90m 120 |\u001b[39m     \u001b[36mawait\u001b[39m open(page\u001b[33m,\u001b[39m \u001b[32m'jane.reporter@example.org'\u001b[39m\u001b[33m,\u001b[39m { voters\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m individuals\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m blocks\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m curator\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m\u001b[33m,\u001b[39m preview\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 121 |\u001b[39m     \u001b[36mconst\u001b[39m chips \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-chip'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 122 |\u001b[39m     \u001b[36mawait\u001b[39m expect(chips)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 123 |\u001b[39m     \u001b[36mawait\u001b[39m expect(chips)\u001b[33m.\u001b[39mtoHaveText(\u001b[32m'Registered'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 124 |\u001b[39m     \u001b[36mconst\u001b[39m controls \u001b[33m=\u001b[39m (\u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-bar__controls'\u001b[39m)\u001b[33m.\u001b[39mboundingBox())\u001b[33m!\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 125 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m id \u001b[36mof\u001b[39m [\u001b[32m'save'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'export'\u001b[39m]) {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/identity-bar.spec.ts",
                            "column": 25,
                            "line": 122
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#auth-slot .ei-chip')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m6\u001b[39m\nTimeout:  5000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#auth-slot .ei-chip') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#auth-slot .ei-chip')\u001b[22m\n\u001b[2m    14 × locator resolved to 6 elements\u001b[22m\n\u001b[2m       - unexpected value \"6\"\u001b[22m\n\n\n  120 |     await open(page, 'jane.reporter@example.org', { voters: true, individuals: true, blocks: true, curator: true, preview: true });\n  121 |     const chips = page.locator('#auth-slot .ei-chip');\n> 122 |     await expect(chips).toHaveCount(1);\n      |                         ^\n  123 |     await expect(chips).toHaveText('Registered');\n  124 |     const controls = (await page.locator('#auth-slot .ei-bar__controls').boundingBox())!;\n  125 |     for (const id of ['save', 'export']) {\n    at /app/tests/ui/identity-bar.spec.ts:122:25"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-24T00:59:06.632Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--c3965-sh-the-controls-off-the-bar-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/identity-bar.spec.ts",
                        "column": 25,
                        "line": 122
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "02f484a7e876cce0644e-d6c93f7bcc18da1339a9",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 118,
              "column": 7
            },
            {
              "title": "Registered with nothing extra offers Request additional access",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 67,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 5277,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n\n    at /app/tests/ui/identity-bar.spec.ts:153:55",
                        "location": {
                          "file": "/app/tests/ui/identity-bar.spec.ts",
                          "column": 55,
                          "line": 153
                        },
                        "snippet": "\u001b[0m \u001b[90m 151 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-chip'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 152 |\u001b[39m     \u001b[36mconst\u001b[39m pop \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#ei-access-pop'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 153 |\u001b[39m     \u001b[36mawait\u001b[39m expect(pop\u001b[33m.\u001b[39mlocator(\u001b[32m'.ei-access-pop__note'\u001b[39m))\u001b[33m.\u001b[39mtoHaveText(\u001b[32m'No additional access yet.'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 154 |\u001b[39m     \u001b[36mawait\u001b[39m pop\u001b[33m.\u001b[39mlocator(\u001b[32m'.ei-access-pop__request'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 155 |\u001b[39m     \u001b[36mawait\u001b[39m expect(pop)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 156 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog#ei-request'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/identity-bar.spec.ts",
                            "column": 55,
                            "line": 153
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n\n\n  151 |     await page.locator('#auth-slot .ei-chip').click();\n  152 |     const pop = page.locator('#ei-access-pop');\n> 153 |     await expect(pop.locator('.ei-access-pop__note')).toHaveText('No additional access yet.');\n      |                                                       ^\n  154 |     await pop.locator('.ei-access-pop__request').click();\n  155 |     await expect(pop).toHaveCount(0);\n  156 |     await expect(page.locator('dialog#ei-request')).toBeVisible();\n    at /app/tests/ui/identity-bar.spec.ts:153:55"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:12.536Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/identity-bar.spec.ts",
                        "column": 55,
                        "line": 153
                      }
                    },
                    {
                      "workerIndex": 73,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 5573,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n\n    at /app/tests/ui/identity-bar.spec.ts:153:55",
                        "location": {
                          "file": "/app/tests/ui/identity-bar.spec.ts",
                          "column": 55,
                          "line": 153
                        },
                        "snippet": "\u001b[0m \u001b[90m 151 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-chip'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 152 |\u001b[39m     \u001b[36mconst\u001b[39m pop \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#ei-access-pop'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 153 |\u001b[39m     \u001b[36mawait\u001b[39m expect(pop\u001b[33m.\u001b[39mlocator(\u001b[32m'.ei-access-pop__note'\u001b[39m))\u001b[33m.\u001b[39mtoHaveText(\u001b[32m'No additional access yet.'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 154 |\u001b[39m     \u001b[36mawait\u001b[39m pop\u001b[33m.\u001b[39mlocator(\u001b[32m'.ei-access-pop__request'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 155 |\u001b[39m     \u001b[36mawait\u001b[39m expect(pop)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 156 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog#ei-request'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/identity-bar.spec.ts",
                            "column": 55,
                            "line": 153
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n\n\n  151 |     await page.locator('#auth-slot .ei-chip').click();\n  152 |     const pop = page.locator('#ei-access-pop');\n> 153 |     await expect(pop.locator('.ei-access-pop__note')).toHaveText('No additional access yet.');\n      |                                                       ^\n  154 |     await pop.locator('.ei-access-pop__request').click();\n  155 |     await expect(pop).toHaveCount(0);\n  156 |     await expect(page.locator('dialog#ei-request')).toBeVisible();\n    at /app/tests/ui/identity-bar.spec.ts:153:55"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-24T00:59:18.446Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/identity-bar.spec.ts",
                        "column": 55,
                        "line": 153
                      }
                    },
                    {
                      "workerIndex": 77,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 5270,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n\n    at /app/tests/ui/identity-bar.spec.ts:153:55",
                        "location": {
                          "file": "/app/tests/ui/identity-bar.spec.ts",
                          "column": 55,
                          "line": 153
                        },
                        "snippet": "\u001b[0m \u001b[90m 151 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#auth-slot .ei-chip'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 152 |\u001b[39m     \u001b[36mconst\u001b[39m pop \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#ei-access-pop'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 153 |\u001b[39m     \u001b[36mawait\u001b[39m expect(pop\u001b[33m.\u001b[39mlocator(\u001b[32m'.ei-access-pop__note'\u001b[39m))\u001b[33m.\u001b[39mtoHaveText(\u001b[32m'No additional access yet.'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                       \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 154 |\u001b[39m     \u001b[36mawait\u001b[39m pop\u001b[33m.\u001b[39mlocator(\u001b[32m'.ei-access-pop__request'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 155 |\u001b[39m     \u001b[36mawait\u001b[39m expect(pop)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 156 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog#ei-request'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/identity-bar.spec.ts",
                            "column": 55,
                            "line": 153
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#ei-access-pop').locator('.ei-access-pop__note')\nExpected: \u001b[32m\"No additional access yet.\"\u001b[39m\nTimeout: 5000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toHaveText\" locator('#ei-access-pop').locator('.ei-access-pop__note') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('#ei-access-pop').locator('.ei-access-pop__note')\u001b[22m\n\n\n  151 |     await page.locator('#auth-slot .ei-chip').click();\n  152 |     const pop = page.locator('#ei-access-pop');\n> 153 |     await expect(pop.locator('.ei-access-pop__note')).toHaveText('No additional access yet.');\n      |                                                       ^\n  154 |     await pop.locator('.ei-access-pop__request').click();\n  155 |     await expect(pop).toHaveCount(0);\n  156 |     await expect(page.locator('dialog#ei-request')).toBeVisible();\n    at /app/tests/ui/identity-bar.spec.ts:153:55"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-24T00:59:24.724Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--559fc-s-Request-additional-access-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/identity-bar.spec.ts",
                        "column": 55,
                        "line": 153
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "02f484a7e876cce0644e-8fa4f7dd1d74c9ba7ac6",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 148,
              "column": 7
            },
            {
              "title": "controls registered after the bar rendered appear",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 80,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 270,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:30.594Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/identity-bar-identity-bar--41d5d-ter-the-bar-rendered-appear-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "02f484a7e876cce0644e-c4d66bbb8ebe94ba4b0d",
              "file": "tests/ui/identity-bar.spec.ts",
              "line": 159,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/layout.spec.ts",
      "file": "tests/ui/layout.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "landing page layout",
          "file": "tests/ui/layout.spec.ts",
          "line": 35,
          "column": 6,
          "specs": [
            {
              "title": "/offices/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 477,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.061Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-f9a0f--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-b103aceb46d9e33c607c",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/candidates/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 254,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.769Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-e1535--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-501813caa83ee6ffddae",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/committees/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 232,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.046Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-f8e77--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-de18f184843b0fae568d",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/districts/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 410,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.300Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-35cf0--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-1f26499e48b19f3c5079",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/elections/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 280,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.731Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-95621--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-199799185e5210591ab4",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/employers/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 261,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.032Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-7159b--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-2140f49bb861fe7bbe46",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/individuals/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 221,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.321Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-b60e0--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-a633dc3b7a23c4f18ee7",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/parties/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 252,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.566Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-93081--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-4e481b7b1ad5efb291d8",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/vendors/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 251,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.839Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-3b19b--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-88452699ffd4b556e70b",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/counties/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 423,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.106Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-00485--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-6758f7f476db88956d39",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/places/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 402,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.545Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-places-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-f549dc77f989ce03913a",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/precincts/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 368,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.966Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-03eaf--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-2b94cf26eef28c61b95a",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/tracts/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 376,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.346Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-tracts-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-6f56d03ec531675b43bb",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/postalcodes/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 368,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.733Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-2fbed--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-cec77f76cc935aa28244",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/blocks/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 107,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.115Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-blocks-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-c7888d679ec3d65988bb",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/states/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 401,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.234Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-states-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-cb2a9d49b945fcadff5b",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/datasources/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 153,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.648Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-d7e7f--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-e15a22bb0b0e0b8702da",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            },
            {
              "title": "/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 166,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.814Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-landing-page-layout-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-b3bb4507b2ed87666026",
              "file": "tests/ui/layout.spec.ts",
              "line": 37,
              "column": 9
            }
          ]
        },
        {
          "title": "entity index layout - search UI above results",
          "file": "tests/ui/layout.spec.ts",
          "line": 45,
          "column": 6,
          "specs": [
            {
              "title": "/offices/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 174,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.994Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-d0829--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-2f959d27c43f09851847",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/candidates/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 174,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.180Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-5cf92--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-00076dbe4f0c22864078",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/committees/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 191,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.365Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-f16d0--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-0fe38d5384d0548662ad",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/districts/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 340,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.567Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-59044--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-5648e4a82b3c14f4b29a",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/elections/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 177,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.922Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-069e9--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-baff7226ae19ee1c41c4",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/employers/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 168,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.109Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-0759c--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-f8acbc052c6aa8109879",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/individuals/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 90,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.287Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-37753--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-012ad5df38578222c51a",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/parties/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 161,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.387Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-06b7d--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-c3c8681cb3628cf835f3",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/vendors/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 167,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.562Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-0b4b4--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-fdfc262d12f616388ed5",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/counties/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 428,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.743Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-cc2cb--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-fd21bba6e2c81307bfbb",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/places/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 429,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.183Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-03981--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-dc93ee5eb496af9f132d",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/precincts/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 361,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.624Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-b2a82--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-b398a97535a50c3906a3",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/tracts/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 515,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.995Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-819d4--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-f1e37aa61dc45b736499",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/postalcodes/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 748,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:59.527Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-7b0e8--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-c665f4d02c3670bb60f1",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "/blocks/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 145,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:00.299Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-3f3cc--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-a296b365c921f935f0ac",
              "file": "tests/ui/layout.spec.ts",
              "line": 47,
              "column": 9
            },
            {
              "title": "offices - search container appears before main in DOM",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 193,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:00.463Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-59504--appears-before-main-in-DOM-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-025db2696f459ca9ce93",
              "file": "tests/ui/layout.spec.ts",
              "line": 59,
              "column": 7
            },
            {
              "title": "candidates - search container appears before main in DOM",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 18,
                      "status": "passed",
                      "duration": 219,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:00.674Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/layout-entity-index-layout-729a8--appears-before-main-in-DOM-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-fc645687ac9b64d16a9d",
              "file": "tests/ui/layout.spec.ts",
              "line": 74,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/leaf-details.spec.ts",
      "file": "tests/ui/leaf-details.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "leaf collection client-side detail pages",
          "file": "tests/ui/leaf-details.spec.ts",
          "line": 69,
          "column": 6,
          "specs": [
            {
              "title": "individual detail renders a bounded contribution profile",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "skipped",
                      "duration": 204,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.096Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-c5a9d-ounded-contribution-profile-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-a2db653e74557c471e56",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 70,
              "column": 7
            },
            {
              "title": "employer detail renders totals and a bounded donor list below threshold",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 3661,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.466Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-26705--donor-list-below-threshold-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-f7566958d39b4e43ad90",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 89,
              "column": 7
            },
            {
              "title": "vendor detail renders totals and committee clients, ranked or edge-sorted",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 1118,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.141Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-1a58b-ients-ranked-or-edge-sorted-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-4a09f332855f839e222b",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 98,
              "column": 7
            },
            {
              "title": "block detail renders voter data and bounded geography links",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "skipped",
                      "duration": 124,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.271Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-50a84-and-bounded-geography-links-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-8e2fbaa51cd3bb771d1c",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 118,
              "column": 7
            },
            {
              "title": "block map links (/blocks/<geoid>/) resolve to the block by its derived id",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "skipped",
                      "duration": 143,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.407Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-3e05c-the-block-by-its-derived-id-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-e2fa35759bb0fb651ac4",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 127,
              "column": 7
            },
            {
              "title": "precinct detail bootstraps directly and renders results",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 375,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.561Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-ad0bd-irectly-and-renders-results-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-498f148b1bb8c8ca5043",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 135,
              "column": 7
            },
            {
              "title": "tract detail remains client-rendered under the generalized leaf route",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 505,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.949Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-6e33d--the-generalized-leaf-route-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-943e9e10b1959a53f29b",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 144,
              "column": 7
            },
            {
              "title": "hub employer renders totals without issuing a live connection query",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 204,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.469Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-84944-ing-a-live-connection-query-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-a8b9358953cbb0b8c0a9",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 164,
              "column": 7
            },
            {
              "title": "hub vendor resolves an alias without issuing a live connection query",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 221,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.685Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-86be8-ing-a-live-connection-query-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-f2d8cbd96bd16419f748",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 214,
              "column": 7
            },
            {
              "title": "hub vendor lists its ranked top clients with a top-N-of-P footer and Sankey (sites#261)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 359,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.919Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-22f5d-ooter-and-Sankey-sites-261--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-efc8dff31707720d5493",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 285,
              "column": 7
            },
            {
              "title": "individual Overview, Location and Districts link like the voter page, districts by ZIP overlap",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "skipped",
                      "duration": 84,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.290Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-746b8-ge-districts-by-ZIP-overlap-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-996e402e97983a8e9e9e",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 353,
              "column": 7
            },
            {
              "title": "individual Top Committees: one row per committee and a distinct-committee footer (sites#194)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "skipped",
                      "duration": 84,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.387Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-c9ccd-committee-footer-sites-194--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-e7d9a1f93425703003bf",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 413,
              "column": 7
            },
            {
              "title": "individual Top Committees: Sankey by category, decoded types, refund columns only when refunded (sites#413)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "skipped",
                      "duration": 92,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.484Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/individuals/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-034c4-ly-when-refunded-sites-413--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-1986b3c0dcd9a2db60fc",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 460,
              "column": 7
            },
            {
              "title": "vendor live clients come from moneyCounterparties when the graph has no ranks (sites#194)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 19,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 328,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.587Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/leaf-details-leaf-collecti-92c9b-aph-has-no-ranks-sites-194--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-8ec7a2312ae8e8cad842",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 520,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/map-insets.spec.ts",
      "file": "tests/ui/map-insets.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "/districts/ map draws AK, HI and DC insets and drills in from a label",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "passed",
                  "duration": 1004,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:50.006Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--districts-map--6e244--and-drills-in-from-a-label-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "8c8626a2a2859708e98d-a3e97435c9e0d3e45fba",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 20,
          "column": 7
        },
        {
          "title": "/counties/ map draws AK, HI and DC insets and drills in from a label",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "passed",
                  "duration": 761,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:51.201Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--counties-map-d-6daa6--and-drills-in-from-a-label-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "8c8626a2a2859708e98d-a77db558efcf1ad0db31",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 20,
          "column": 7
        },
        {
          "title": "/places/ map draws AK, HI and DC insets and drills in from a label",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "passed",
                  "duration": 785,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:52.014Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--places-map-dra-cdb87--and-drills-in-from-a-label-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "8c8626a2a2859708e98d-624d5260ac6ac832968b",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 20,
          "column": 7
        },
        {
          "title": "/postalcodes/ map draws AK, HI and DC insets and drills in from a label",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "passed",
                  "duration": 580,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:52.826Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--postalcodes-ma-78035--and-drills-in-from-a-label-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "8c8626a2a2859708e98d-c0e2b394b83c4f049726",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 20,
          "column": 7
        },
        {
          "title": "/tracts/ map draws AK, HI and DC insets and drills in from a label",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "passed",
                  "duration": 649,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:53.424Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--tracts-map-dra-fa276--and-drills-in-from-a-label-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "8c8626a2a2859708e98d-f77eb6cadecb3e9478cd",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 20,
          "column": 7
        },
        {
          "title": "/precincts/ map draws AK, HI and DC insets and drills in from a label",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "passed",
                  "duration": 530,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:54.087Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--precincts-map--32f4c--and-drills-in-from-a-label-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "8c8626a2a2859708e98d-58e522f8f980e1ee90e3",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 20,
          "column": 7
        },
        {
          "title": "/blocks/ map draws AK, HI and DC insets and drills in from a label",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [
                {
                  "type": "skip",
                  "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                  "location": {
                    "file": "/app/tests/ui/helpers.ts",
                    "line": 25,
                    "column": 8
                  }
                }
              ],
              "expectedStatus": "skipped",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "skipped",
                  "duration": 98,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:54.632Z",
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/blocks/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--blocks-map-dra-47d1e--and-drills-in-from-a-label-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "skipped"
            }
          ],
          "id": "8c8626a2a2859708e98d-6e0a7da708471aec2cbc",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 20,
          "column": 7
        },
        {
          "title": "/states/ map frames AK, HI and DC insets and a label opens the state page",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 20,
                  "parallelIndex": 20,
                  "status": "passed",
                  "duration": 573,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:54.743Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/map-insets--states-map-fra-484b8--label-opens-the-state-page-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "8c8626a2a2859708e98d-146f5ff8d2b9e4c7bba5",
          "file": "tests/ui/map-insets.spec.ts",
          "line": 46,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/money-flow-mount.spec.ts",
      "file": "tests/ui/money-flow-mount.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "Candidate: two-column mount still toggles and disposes",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 21,
                  "parallelIndex": 21,
                  "status": "passed",
                  "duration": 608,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:50.101Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-mount-Candidate-fb352--still-toggles-and-disposes-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "0a17689d70e3e5ee0c25-0e163677fe23b16c04ff",
          "file": "tests/ui/money-flow-mount.spec.ts",
          "line": 10,
          "column": 7
        },
        {
          "title": "Committee: two-column mount still toggles and disposes",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 21,
                  "parallelIndex": 21,
                  "status": "passed",
                  "duration": 560,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:50.910Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-mount-Committee-41495--still-toggles-and-disposes-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "0a17689d70e3e5ee0c25-4556932a37ce611852fd",
          "file": "tests/ui/money-flow-mount.spec.ts",
          "line": 10,
          "column": 7
        },
        {
          "title": "Vendor: two-column mount still toggles and disposes",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 21,
                  "parallelIndex": 21,
                  "status": "passed",
                  "duration": 560,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:51.490Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-mount-Vendor-tw-8746b--still-toggles-and-disposes-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "0a17689d70e3e5ee0c25-39393939450120315a11",
          "file": "tests/ui/money-flow-mount.spec.ts",
          "line": 10,
          "column": 7
        }
      ]
    },
    {
      "title": "tests/ui/money-flow.spec.ts",
      "file": "tests/ui/money-flow.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "money-flow script injection",
          "file": "tests/ui/money-flow.spec.ts",
          "line": 25,
          "column": 6,
          "specs": [
            {
              "title": "injected once on /committees/a75a9110-f1db-a945-39a8-7503ed3c04da/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 146,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.130Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-ac19bd19a112bbc633b9",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 27,
              "column": 9
            },
            {
              "title": "injected once on /candidates/a8897257-430c-2bf3-4498-349021b09ca3/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 53,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.349Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-1e24093b4e753edfa81f",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 27,
              "column": 9
            },
            {
              "title": "not injected on /states/032f8d61-f554-f435-2a6d-50b3c8cc01d7/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 272,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.419Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-7a4f8e57d8a34b965055",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "not injected on /elections/2024/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 253,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.708Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-2dcd02a112846a1c74ab",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "not injected on /offices/president/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 33,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.996Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-a7c67ffeb658d5760d58",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "not injected on /districts/ak/00/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 42,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.052Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-70d1251eabbd50eef434",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            }
          ]
        },
        {
          "title": "money-flow card toggle",
          "file": "tests/ui/money-flow.spec.ts",
          "line": 44,
          "column": 6,
          "specs": [
            {
              "title": "committee: each money card defaults to the Sankey",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 1332,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.114Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-1379512e23819a3f13a3",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 45,
              "column": 7
            },
            {
              "title": "candidate: Top Contributors toggles between Sankey and table",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 541,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.538Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-66eef433452cb5f4518f",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 59,
              "column": 7
            },
            {
              "title": "candidate: #ie-support card follows the independent-expenditure data",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 455,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.105Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-1839d1cd12dab3de3014",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            },
            {
              "title": "committee: #ie-support card follows the independent-expenditure data",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 449,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.575Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-c03ecaaa846d30d640c2",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            },
            {
              "title": "candidate: #ie-oppose card follows the independent-expenditure data",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 361,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.037Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-cd8390d905a0c386907e",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            },
            {
              "title": "committee: #ie-oppose card follows the independent-expenditure data",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 22,
                      "status": "passed",
                      "duration": 394,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.414Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-b82415fcc5b419d3939e",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/news-feed.spec.ts",
      "file": "tests/ui/news-feed.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "news feed (source: OPENSEARCH)",
          "file": "tests/ui/news-feed.spec.ts",
          "line": 38,
          "column": 6,
          "specs": [
            {
              "title": "the feed serves articles with resolved entities",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 23,
                      "parallelIndex": 23,
                      "status": "passed",
                      "duration": 1549,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.079Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "1af1026586bac743cce4-f13e5cf3d2f509b8f6ed",
              "file": "tests/ui/news-feed.spec.ts",
              "line": 39,
              "column": 7
            },
            {
              "title": "candidate chips carry an FEC party code, never a graph id",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 23,
                      "parallelIndex": 23,
                      "status": "passed",
                      "duration": 376,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.685Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "1af1026586bac743cce4-a0d92ad6dfd4d6b3887d",
              "file": "tests/ui/news-feed.spec.ts",
              "line": 47,
              "column": 7
            },
            {
              "title": "party facet keys are FEC codes and the party filter matches",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 23,
                      "parallelIndex": 23,
                      "status": "passed",
                      "duration": 685,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.087Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "1af1026586bac743cce4-ad8d68d0c5df3f8fda27",
              "file": "tests/ui/news-feed.spec.ts",
              "line": 61,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/page-aliases.spec.ts",
      "file": "tests/ui/page-aliases.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "static page aliases",
          "file": "tests/ui/page-aliases.spec.ts",
          "line": 45,
          "column": 6,
          "specs": [
            {
              "title": "canonical vanity URL serves the stored page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 24,
                      "parallelIndex": 24,
                      "status": "passed",
                      "duration": 355,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.071Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "435b8a583a557afdb4f4-01c6492deafe21c2f9dd",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 48,
              "column": 7
            },
            {
              "title": "vanity lookup ignores case, trailing slash and index.html",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 24,
                      "parallelIndex": 24,
                      "status": "passed",
                      "duration": 100,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.500Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "435b8a583a557afdb4f4-07e8807475348f87bc20",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 52,
              "column": 7
            },
            {
              "title": "UUID URL serves the page with its vanity canonical",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 24,
                      "parallelIndex": 24,
                      "status": "passed",
                      "duration": 553,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.621Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "435b8a583a557afdb4f4-d8a32d62d9503bea2b6e",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 58,
              "column": 7
            },
            {
              "title": "secondary keys redirect to the canonical URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 24,
                      "parallelIndex": 24,
                      "status": "passed",
                      "duration": 83,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.199Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "435b8a583a557afdb4f4-79778d6ee4c3fd5bcef0",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 66,
              "column": 7
            },
            {
              "title": "legacy URL shapes redirect to the canonical URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 24,
                      "parallelIndex": 24,
                      "status": "passed",
                      "duration": 127,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.306Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "435b8a583a557afdb4f4-b1dcc28f4f8ac7c8b0e9",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 76,
              "column": 7
            },
            {
              "title": "redirect targets are served",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 24,
                      "parallelIndex": 24,
                      "status": "passed",
                      "duration": 572,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.471Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "435b8a583a557afdb4f4-1953e0e87b9ede5e9f3e",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 82,
              "column": 7
            },
            {
              "title": "an unknown address is not served as a page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 24,
                      "parallelIndex": 24,
                      "status": "passed",
                      "duration": 38,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.066Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "435b8a583a557afdb4f4-cf40560c183e754a8e41",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 88,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/postalcodes.spec.ts",
      "file": "tests/ui/postalcodes.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "ZIP code overlaps (API)",
          "file": "tests/ui/postalcodes.spec.ts",
          "line": 38,
          "column": 6,
          "specs": [
            {
              "title": "78701 overlaps TX-37 and Travis County, with land area",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 208,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.184Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-fd9f717d5d792e008913",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 43,
              "column": 7
            },
            {
              "title": "a ZIP split across districts and counties: 02467 (Chestnut Hill, MA)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 224,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.540Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-b1cff2326cd3f5773029",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 54,
              "column": 7
            },
            {
              "title": "the edges read both ways: TX-37 and Travis County list 78701",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 135,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.801Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-9053988a012c927e29a5",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 61,
              "column": 7
            },
            {
              "title": "almost every ZIP has a county",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "ZIPs without a county",
                      "description": "17 of 33791"
                    }
                  ],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 16397,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.965Z",
                      "annotations": [
                        {
                          "type": "ZIPs without a county",
                          "description": "17 of 33791"
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-91224e7aa3b0911623c7",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 73,
              "column": 7
            }
          ]
        },
        {
          "title": "ZIP code pages",
          "file": "tests/ui/postalcodes.spec.ts",
          "line": 86,
          "column": 6,
          "specs": [
            {
              "title": "78701 lists TX-37 and Travis County, linked",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 302,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:07.393Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-dcfd4ffc4d7c795082e0",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 95,
              "column": 7
            },
            {
              "title": "02467 lists three districts, largest overlap first, and three counties",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 211,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:07.779Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-29298cb4d577f7a7bfe7",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 104,
              "column": 7
            },
            {
              "title": "the water-only \"ZZ\" district is not listed: 60611 (Chicago, on Lake Michigan)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 379,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:08.009Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-c65d4ecf3d263b810145",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 113,
              "column": 7
            },
            {
              "title": "the ZIP list shows each ZIP with its districts",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 25,
                      "parallelIndex": 25,
                      "status": "passed",
                      "duration": 1163,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:08.404Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/postalcodes-ZIP-code-pages-69177-each-ZIP-with-its-districts-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-6c3a7e83de813fd10f0b",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 120,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/routing.spec.ts",
      "file": "tests/ui/routing.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "routing: canonical URLs per collection",
          "file": "tests/ui/routing.spec.ts",
          "line": 40,
          "column": 6,
          "specs": [
            {
              "title": "candidates: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 388,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] child:/candidates/sitemap-candidates.xml: https://us.elect.info/candidates/sitemap-candidates-e.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] candidates: sitemap URLs serve their page with rel=canonical = the sitemap URL: https://us.elect.info/candidates/enrique-s-serra-h6mn05019/, https://us.elect.info/candidates/eric-taylor-h0ca14109/, https://us.elect.info/candidates/ed-scharf-h2tx23090/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.169Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-7e72ef257b7e33487ee9",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "committees: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 970,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] child:/committees/sitemap-committees.xml: https://us.elect.info/committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] committees: sitemap URLs serve their page with rel=canonical = the sitemap URL: https://us.elect.info/committees/verizon-communications-inc-political-action-committee-c00025163/, https://us.elect.info/committees/vector-hastings-for-president-c00707562/, https://us.elect.info/committees/victory-for-democrats-in-2004-c00408211/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.696Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-6a2ccbae2d970ac2c3e6",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "parties: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 164,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] parties: sitemap URLs serve their page with rel=canonical = the sitemap URL: https://us.elect.info/parties/nwp/, https://us.elect.info/parties/cbr/, https://us.elect.info/parties/mar/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.726Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-9a390171348199e3fe37",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "offices: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 88,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] offices: sitemap URLs serve their page with rel=canonical = the sitemap URL: https://us.elect.info/offices/house/pa-35/, https://us.elect.info/offices/house/or-12/, https://us.elect.info/offices/house/va-00/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.912Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-d3be535c29f4096c9220",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "districts: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 97,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] districts: sitemap URLs serve their page with rel=canonical = the sitemap URL: https://us.elect.info/districts/ny-01/, https://us.elect.info/districts/tx-18/, https://us.elect.info/districts/tx-30/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.021Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-427ce06575114febc501",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "states: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 155,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] states: sitemap URLs serve their page with rel=canonical = the sitemap URL: https://us.elect.info/states/maryland/, https://us.elect.info/states/delaware/, https://us.elect.info/states/idaho/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.140Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-8e99a0e3eb3637999e3a",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "elections: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 339,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=prod-branch-20261024] elections: sitemap URLs serve their page with rel=canonical = the sitemap URL: https://us.elect.info/elections/2018/, https://us.elect.info/elections/2000/, https://us.elect.info/elections/1994/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.322Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-9897885e79ca8680f521",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "party badge links by FEC code redirect to the party page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 677,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.681Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-6f7f16146e9fcae9c6f1",
              "file": "tests/ui/routing.spec.ts",
              "line": 59,
              "column": 7
            }
          ]
        },
        {
          "title": "routing: every index link resolves",
          "file": "tests/ui/routing.spec.ts",
          "line": 71,
          "column": 6,
          "specs": [
            {
              "title": "/candidates/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 9837,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.373Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-a17ae3fc2924fcb5ebd6",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/committees/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 7397,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:03.282Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-5a49ba9c6938493d73e1",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/parties/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 1639,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:10.702Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-c682837875ef71f142bb",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/offices/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 739,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:12.355Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-89f42d8f841e3082c77a",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/districts/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 693,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:13.112Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-05f7d-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-88f733cf8629f34dddff",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/elections/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 2085,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:13.820Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-3800effe3714880c03cd",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/employers/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 361,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:15.918Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-96c98-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-22e23060552aa17bc15f",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/vendors/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 640,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:16.295Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/routing-routing-every-inde-cf190-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-676c232661cc4f58e461",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            }
          ]
        },
        {
          "title": "routing: unknown addresses",
          "file": "tests/ui/routing.spec.ts",
          "line": 91,
          "column": 6,
          "specs": [
            {
              "title": "an unknown entity path answers 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 20,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:16.951Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-b05908296c32b152b967",
              "file": "tests/ui/routing.spec.ts",
              "line": 92,
              "column": 7
            },
            {
              "title": "an unknown leaf entity path serves the collection shell",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 26,
                      "parallelIndex": 26,
                      "status": "passed",
                      "duration": 45,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:59:16.980Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-bcb1fae8f9ad8a3e2a8b",
              "file": "tests/ui/routing.spec.ts",
              "line": 103,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/serving.spec.ts",
      "file": "tests/ui/serving.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "sitemaps",
          "file": "tests/ui/serving.spec.ts",
          "line": 22,
          "column": 6,
          "specs": [
            {
              "title": "candidates: the index lists one file per lead character, each a urlset",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 4594,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.218Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-9767824df806d6118ac7",
              "file": "tests/ui/serving.spec.ts",
              "line": 24,
              "column": 9
            },
            {
              "title": "committees: the index lists one file per lead character, each a urlset",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 1920,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.878Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-94aa544e2eac8eead0f5",
              "file": "tests/ui/serving.spec.ts",
              "line": 24,
              "column": 9
            },
            {
              "title": "a single-file collection sitemap is a urlset of its own pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 103,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.814Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-63d1a6acfa8333a6974d",
              "file": "tests/ui/serving.spec.ts",
              "line": 42,
              "column": 7
            },
            {
              "title": "a sitemap that does not exist is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 27,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.930Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-27904f07922a9c50fc21",
              "file": "tests/ui/serving.spec.ts",
              "line": 50,
              "column": 7
            }
          ]
        },
        {
          "title": "static assets",
          "file": "tests/ui/serving.spec.ts",
          "line": 57,
          "column": 6,
          "specs": [
            {
              "title": "state images are SVG with CORS and caching headers",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 38,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.967Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-1fa533f3ce271bd3f9a7",
              "file": "tests/ui/serving.spec.ts",
              "line": 58,
              "column": 7
            },
            {
              "title": "district GeoJSON is application/geo+json and parses",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 28,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.017Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-84da73e251953bb6b35b",
              "file": "tests/ui/serving.spec.ts",
              "line": 68,
              "column": 7
            },
            {
              "title": "a missing asset is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 40,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.059Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-ee59e849ca62b46a41f2",
              "file": "tests/ui/serving.spec.ts",
              "line": 76,
              "column": 7
            }
          ]
        },
        {
          "title": "collection roots",
          "file": "tests/ui/serving.spec.ts",
          "line": 83,
          "column": 6,
          "specs": [
            {
              "title": "a collection without its trailing slash redirects relatively to the index page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 45,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.110Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-35c0c19fdb3025d1d766",
              "file": "tests/ui/serving.spec.ts",
              "line": 84,
              "column": 7
            }
          ]
        },
        {
          "title": "rendered candidate and committee pages (us-pages)",
          "file": "tests/ui/serving.spec.ts",
          "line": 94,
          "column": 6,
          "specs": [
            {
              "title": "a candidate page is rendered for the current graph build",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 167,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.169Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-2a6fb769baeb12eacefb",
              "file": "tests/ui/serving.spec.ts",
              "line": 95,
              "column": 7
            },
            {
              "title": "/politicians/<id>/ is the candidate page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 25,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.347Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-780f42d8689617265d3c",
              "file": "tests/ui/serving.spec.ts",
              "line": 113,
              "column": 7
            },
            {
              "title": "a House candidate links its party, office and district",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 23,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.383Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-b0f8bf3b14a6ada4429f",
              "file": "tests/ui/serving.spec.ts",
              "line": 120,
              "column": 7
            },
            {
              "title": "a committee page lists its money and its party affinity",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 25,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.418Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-7f762ab6b05cacd4df49",
              "file": "tests/ui/serving.spec.ts",
              "line": 133,
              "column": 7
            },
            {
              "title": "an upper-case path renders with the lower-case canonical",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 93,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.455Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-a1e3e44aa623c8acb1ed",
              "file": "tests/ui/serving.spec.ts",
              "line": 149,
              "column": 7
            },
            {
              "title": "unknown candidate, committee and party paths are 404 without a static fallback",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 27,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.564Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-174b09c2fe387e2121a8",
              "file": "tests/ui/serving.spec.ts",
              "line": 155,
              "column": 7
            },
            {
              "title": "the money-flow Sankey and the Graph button work on a rendered candidate page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 27,
                      "parallelIndex": 27,
                      "status": "passed",
                      "duration": 1071,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.603Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-bdca150ccaebfd909ea8",
              "file": "tests/ui/serving.spec.ts",
              "line": 164,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/sitemap.spec.ts",
      "file": "tests/ui/sitemap.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "sitemap URL validation",
          "file": "tests/ui/sitemap.spec.ts",
          "line": 202,
          "column": 6,
          "specs": [
            {
              "title": "sitemap index loads and contains child sitemaps",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 379,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.187Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-4660f-and-contains-child-sitemaps-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-c60e93b9c98b61485b7c",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 204,
              "column": 7
            },
            {
              "title": "sitemap index lists no nested index",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 1030,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.712Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-9c49175d52fd8bbb5808",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 220,
              "column": 7
            },
            {
              "title": "candidates sitemap - sample URLs resolve",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 1192,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /candidates/sitemap-candidates.xml: https://us.elect.info/candidates/sitemap-candidates-w.xml, https://us.elect.info/candidates/sitemap-candidates-0-9.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-w.xml\n"
                        },
                        {
                          "text": "  Found 1907 URLs in /candidates/sitemap-candidates-w.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /candidates/sitemap-candidates-w.xml: https://us.elect.info/candidates/william-flynn-iii-kelly-h6ga14284/, https://us.elect.info/candidates/wesley-todd-inselman-p40010084/, https://us.elect.info/candidates/wisdom-zerit-teklay-s4tn00518/, https://us.elect.info/candidates/william-r-gaskill-s6ut00253/, https://us.elect.info/candidates/wyatt-endres-p40008062/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/william-flynn-iii-kelly-h6ga14284/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/wesley-todd-inselman-p40010084/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/wisdom-zerit-teklay-s4tn00518/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/william-r-gaskill-s6ut00253/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/wyatt-endres-p40008062/\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /candidates/sitemap-candidates-w.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-0-9.xml\n"
                        },
                        {
                          "text": "  Found 1 URLs in /candidates/sitemap-candidates-0-9.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /candidates/sitemap-candidates-0-9.xml: https://us.elect.info/candidates/911-bushdid-p60016649/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/911-bushdid-p60016649/\n"
                        },
                        {
                          "text": "  Tested 1 URLs from /candidates/sitemap-candidates-0-9.xml\n"
                        },
                        {
                          "text": "Tested 6 URLs from /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Tested 6 URLs from candidates sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.779Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-a80be8d946ded7f69d5c",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 235,
              "column": 7
            },
            {
              "title": "committees sitemap - sample URLs resolve",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 1796,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /committees/sitemap-committees.xml: https://us.elect.info/committees/sitemap-committees-m.xml, https://us.elect.info/committees/sitemap-committees-z.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-m.xml\n"
                        },
                        {
                          "text": "  Found 6133 URLs in /committees/sitemap-committees-m.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /committees/sitemap-committees-m.xml: https://us.elect.info/committees/mindy-mcconnell-for-congress-c00767145/, https://us.elect.info/committees/meyer-in-congress-committee-c00204347/, https://us.elect.info/committees/matt-miller-for-congress-2014-c00557256/, https://us.elect.info/committees/more-pac-c00816777/, https://us.elect.info/committees/mcconnell-tillis-majority-committee-c00567438/\n"
                        },
                        {
                          "text": "  Testing page: /committees/mindy-mcconnell-for-congress-c00767145/\n"
                        },
                        {
                          "text": "  Testing page: /committees/meyer-in-congress-committee-c00204347/\n"
                        },
                        {
                          "text": "  Testing page: /committees/matt-miller-for-congress-2014-c00557256/\n"
                        },
                        {
                          "text": "  Testing page: /committees/more-pac-c00816777/\n"
                        },
                        {
                          "text": "  Testing page: /committees/mcconnell-tillis-majority-committee-c00567438/\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-m.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-z.xml\n"
                        },
                        {
                          "text": "  Found 202 URLs in /committees/sitemap-committees-z.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /committees/sitemap-committees-z.xml: https://us.elect.info/committees/zale-political-action-committee-c00034652/, https://us.elect.info/committees/zaleski-for-congress-c00475871/, https://us.elect.info/committees/zero-media-co-c00786509/, https://us.elect.info/committees/zmich-for-congress-c00731802/, https://us.elect.info/committees/zul-mohamed-c00959197/\n"
                        },
                        {
                          "text": "  Testing page: /committees/zale-political-action-committee-c00034652/\n"
                        },
                        {
                          "text": "  Testing page: /committees/zaleski-for-congress-c00475871/\n"
                        },
                        {
                          "text": "  Testing page: /committees/zero-media-co-c00786509/\n"
                        },
                        {
                          "text": "  Testing page: /committees/zmich-for-congress-c00731802/\n"
                        },
                        {
                          "text": "  Testing page: /committees/zul-mohamed-c00959197/\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-z.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from committees sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.001Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-87023309750eb69e70c2",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 254,
              "column": 7
            },
            {
              "title": "parties sitemap - sample URLs resolve",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 426,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Found 290 URLs in /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /parties/sitemap-parties.xml: https://us.elect.info/parties/lpf/, https://us.elect.info/parties/flo/, https://us.elect.info/parties/win/, https://us.elect.info/parties/mlg/, https://us.elect.info/parties/cnc/\n"
                        },
                        {
                          "text": "Testing page: /parties/lpf/\n"
                        },
                        {
                          "text": "Testing page: /parties/flo/\n"
                        },
                        {
                          "text": "Testing page: /parties/win/\n"
                        },
                        {
                          "text": "Testing page: /parties/mlg/\n"
                        },
                        {
                          "text": "Testing page: /parties/cnc/\n"
                        },
                        {
                          "text": "Tested 5 URLs from /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from parties sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.815Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-8947fc49728288b347b0",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 273,
              "column": 7
            },
            {
              "title": "offices sitemap - sample URLs resolve",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 489,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Found 741 URLs in /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /offices/sitemap-offices.xml: https://us.elect.info/offices/house/tn-07/, https://us.elect.info/offices/house/mi-19/, https://us.elect.info/offices/house/wa-04/, https://us.elect.info/offices/house/tx-24/, https://us.elect.info/offices/house/pa-06/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tn-07/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/mi-19/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/wa-04/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tx-24/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/pa-06/\n"
                        },
                        {
                          "text": "Tested 5 URLs from /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from offices sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.257Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-8e94254e8554d3a49e2d",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 289,
              "column": 7
            },
            {
              "title": "districts sitemap - sample URLs resolve",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 409,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Found 441 URLs in /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /districts/sitemap-districts.xml: https://us.elect.info/districts/ny-05/, https://us.elect.info/districts/fl-01/, https://us.elect.info/districts/ca-09/, https://us.elect.info/districts/tx-25/, https://us.elect.info/districts/il-16/\n"
                        },
                        {
                          "text": "Testing page: /districts/ny-05/\n"
                        },
                        {
                          "text": "Testing page: /districts/fl-01/\n"
                        },
                        {
                          "text": "Testing page: /districts/ca-09/\n"
                        },
                        {
                          "text": "Testing page: /districts/tx-25/\n"
                        },
                        {
                          "text": "Testing page: /districts/il-16/\n"
                        },
                        {
                          "text": "Tested 5 URLs from /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from districts sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.760Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-e977450acfe43ef5ce30",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 305,
              "column": 7
            },
            {
              "title": "states sitemap - sample URLs resolve",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 732,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Found 52 URLs in /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /states/sitemap-states.xml: https://us.elect.info/states/south-carolina/, https://us.elect.info/states/kentucky/, https://us.elect.info/states/idaho/, https://us.elect.info/states/connecticut/, https://us.elect.info/states/illinois/\n"
                        },
                        {
                          "text": "Testing page: /states/south-carolina/\n"
                        },
                        {
                          "text": "Testing page: /states/kentucky/\n"
                        },
                        {
                          "text": "Testing page: /states/idaho/\n"
                        },
                        {
                          "text": "Testing page: /states/connecticut/\n"
                        },
                        {
                          "text": "Testing page: /states/illinois/\n"
                        },
                        {
                          "text": "Tested 5 URLs from /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from states sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.183Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-2974a6e40c0ee82198bf",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 321,
              "column": 7
            },
            {
              "title": "elections sitemap - sample URLs resolve",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 28,
                      "parallelIndex": 28,
                      "status": "passed",
                      "duration": 1091,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "Found 25 URLs in /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "[sample seed=prod-branch-20261024] /elections/sitemap-elections.xml: https://us.elect.info/elections/1984/, https://us.elect.info/elections/2014/, https://us.elect.info/elections/1990/, https://us.elect.info/elections/1996/, https://us.elect.info/elections/2008/\n"
                        },
                        {
                          "text": "Testing page: /elections/1984/\n"
                        },
                        {
                          "text": "Testing page: /elections/2014/\n"
                        },
                        {
                          "text": "Testing page: /elections/1990/\n"
                        },
                        {
                          "text": "Testing page: /elections/1996/\n"
                        },
                        {
                          "text": "Testing page: /elections/2008/\n"
                        },
                        {
                          "text": "Tested 5 URLs from /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from elections sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.928Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-869ad0437e25b2768dea",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 337,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/sld-profile.spec.ts",
      "file": "tests/ui/sld-profile.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "/districts/mn-sd-001/: area, interactive map and related districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 29,
                  "parallelIndex": 29,
                  "status": "failed",
                  "duration": 285,
                  "error": {
                    "message": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:49.878Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 32,
                  "parallelIndex": 29,
                  "status": "failed",
                  "duration": 443,
                  "error": {
                    "message": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:58:51.261Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 35,
                  "parallelIndex": 29,
                  "status": "failed",
                  "duration": 233,
                  "error": {
                    "message": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/mn-sd-001/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:58:52.794Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--cf7c2-e-map-and-related-districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "dd54b48fb9d572a1ac58-0ffd90d6e2d299648e46",
          "file": "tests/ui/sld-profile.spec.ts",
          "line": 22,
          "column": 7
        },
        {
          "title": "/districts/mn-hd-01a/: area, interactive map and related districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 30,
                  "parallelIndex": 30,
                  "status": "failed",
                  "duration": 202,
                  "error": {
                    "message": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:53.210Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 37,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 287,
                  "error": {
                    "message": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:58:53.999Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 39,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 204,
                  "error": {
                    "message": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/mn-hd-01a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:58:55.289Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-mn--df056-e-map-and-related-districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "dd54b48fb9d572a1ac58-90e6dfb86443964e02a4",
          "file": "tests/ui/sld-profile.spec.ts",
          "line": 22,
          "column": 7
        },
        {
          "title": "/districts/az-sd-005/: area, interactive map and related districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 42,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 186,
                  "error": {
                    "message": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:56.485Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 44,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 264,
                  "error": {
                    "message": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:58:57.852Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 46,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 321,
                  "error": {
                    "message": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/az-sd-005/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:58:59.200Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-az--022f9-e-map-and-related-districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "dd54b48fb9d572a1ac58-4a577e4dd42e923e7d54",
          "file": "tests/ui/sld-profile.spec.ts",
          "line": 22,
          "column": 7
        },
        {
          "title": "/districts/ak-sd-00a/: area, interactive map and related districts",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 49,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 274,
                  "error": {
                    "message": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:00.587Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 51,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 333,
                  "error": {
                    "message": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:02.111Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                },
                {
                  "workerIndex": 55,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 207,
                  "error": {
                    "message": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:25:102",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 102,
                      "line": 25
                    },
                    "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test\u001b[33m.\u001b[39msetTimeout(\u001b[35m90000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 24 |\u001b[39m     \u001b[36mconst\u001b[39m head \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m     expect(head\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${c.path} should answer 200 on a graph with state legislative Districts`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m     \u001b[36mconst\u001b[39m errors\u001b[33m:\u001b[39m string[] \u001b[33m=\u001b[39m []\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m e \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(e\u001b[33m.\u001b[39mmessage))\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(c\u001b[33m.\u001b[39mpath)\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 102,
                        "line": 25
                      },
                      "message": "Error: /districts/ak-sd-00a/ should answer 200 on a graph with state legislative Districts\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  23 |     test.setTimeout(90000);\n  24 |     const head = await request.get(c.path);\n> 25 |     expect(head.status(), `${c.path} should answer 200 on a graph with state legislative Districts`).toBe(200);\n     |                                                                                                      ^\n  26 |     const errors: string[] = [];\n  27 |     page.on('pageerror', e => errors.push(e.message));\n  28 |     await page.goto(c.path);\n    at /app/tests/ui/sld-profile.spec.ts:25:102"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:03.445Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile--districts-ak--052d2-e-map-and-related-districts-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 102,
                    "line": 25
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "dd54b48fb9d572a1ac58-44aca351524d09183264",
          "file": "tests/ui/sld-profile.spec.ts",
          "line": 22,
          "column": 7
        },
        {
          "title": "Nebraska explains its one-house legislature",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 57,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 235,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:46:24",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 24,
                      "line": 46
                    },
                    "snippet": "\u001b[0m \u001b[90m 44 |\u001b[39m test(\u001b[32m'Nebraska explains its one-house legislature'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page\u001b[33m,\u001b[39m request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 45 |\u001b[39m   \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m'/districts/ne-sd-010/'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 46 |\u001b[39m   expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 47 |\u001b[39m   \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m'/districts/ne-sd-010/'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 48 |\u001b[39m   \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#sld-related'\u001b[39m))\u001b[33m.\u001b[39mtoContainText(\u001b[32m'unicameral'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 49 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 24,
                        "line": 46
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  44 | test('Nebraska explains its one-house legislature', async ({ page, request }) => {\n  45 |   const res = await request.get('/districts/ne-sd-010/');\n> 46 |   expect(res.status()).toBe(200);\n     |                        ^\n  47 |   await page.goto('/districts/ne-sd-010/');\n  48 |   await expect(page.locator('#sld-related')).toContainText('unicameral', { timeout: 45000 });\n  49 | });\n    at /app/tests/ui/sld-profile.spec.ts:46:24"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:59:04.950Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 24,
                    "line": 46
                  }
                },
                {
                  "workerIndex": 60,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 312,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:46:24",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 24,
                      "line": 46
                    },
                    "snippet": "\u001b[0m \u001b[90m 44 |\u001b[39m test(\u001b[32m'Nebraska explains its one-house legislature'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page\u001b[33m,\u001b[39m request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 45 |\u001b[39m   \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m'/districts/ne-sd-010/'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 46 |\u001b[39m   expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 47 |\u001b[39m   \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m'/districts/ne-sd-010/'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 48 |\u001b[39m   \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#sld-related'\u001b[39m))\u001b[33m.\u001b[39mtoContainText(\u001b[32m'unicameral'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 49 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 24,
                        "line": 46
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  44 | test('Nebraska explains its one-house legislature', async ({ page, request }) => {\n  45 |   const res = await request.get('/districts/ne-sd-010/');\n> 46 |   expect(res.status()).toBe(200);\n     |                        ^\n  47 |   await page.goto('/districts/ne-sd-010/');\n  48 |   await expect(page.locator('#sld-related')).toContainText('unicameral', { timeout: 45000 });\n  49 | });\n    at /app/tests/ui/sld-profile.spec.ts:46:24"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-24T00:59:07.610Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui-retry1/test-failed-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui-retry1/video.webm"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui-retry1/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui-retry1/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 24,
                    "line": 46
                  }
                },
                {
                  "workerIndex": 62,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 225,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n    at /app/tests/ui/sld-profile.spec.ts:46:24",
                    "location": {
                      "file": "/app/tests/ui/sld-profile.spec.ts",
                      "column": 24,
                      "line": 46
                    },
                    "snippet": "\u001b[0m \u001b[90m 44 |\u001b[39m test(\u001b[32m'Nebraska explains its one-house legislature'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page\u001b[33m,\u001b[39m request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 45 |\u001b[39m   \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m'/districts/ne-sd-010/'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 46 |\u001b[39m   expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 47 |\u001b[39m   \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m'/districts/ne-sd-010/'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 48 |\u001b[39m   \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#sld-related'\u001b[39m))\u001b[33m.\u001b[39mtoContainText(\u001b[32m'unicameral'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m45000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 49 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/sld-profile.spec.ts",
                        "column": 24,
                        "line": 46
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m404\u001b[39m\n\n  44 | test('Nebraska explains its one-house legislature', async ({ page, request }) => {\n  45 |   const res = await request.get('/districts/ne-sd-010/');\n> 46 |   expect(res.status()).toBe(200);\n     |                        ^\n  47 |   await page.goto('/districts/ne-sd-010/');\n  48 |   await expect(page.locator('#sld-related')).toContainText('unicameral', { timeout: 45000 });\n  49 | });\n    at /app/tests/ui/sld-profile.spec.ts:46:24"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 2,
                  "startTime": "2026-10-24T00:59:09.097Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui-retry2/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/sld-profile-Nebraska-explains-its-one-house-legislature-ui-retry2/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/sld-profile.spec.ts",
                    "column": 24,
                    "line": 46
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "dd54b48fb9d572a1ac58-9c8487335b1915a00278",
          "file": "tests/ui/sld-profile.spec.ts",
          "line": 44,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/us.spec.ts",
      "file": "tests/ui/us.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "us.elect.info",
          "file": "tests/ui/us.spec.ts",
          "line": 3,
          "column": 6,
          "specs": [
            {
              "title": "homepage loads with title",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "passed",
                      "duration": 377,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.366Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/us-us-elect-info-homepage-loads-with-title-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-8afeb95d04c94adeed96",
              "file": "tests/ui/us.spec.ts",
              "line": 4,
              "column": 7
            },
            {
              "title": "entity stats display",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "passed",
                      "duration": 315,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.847Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/us-us-elect-info-entity-stats-display-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-49e351c56a50ed35776c",
              "file": "tests/ui/us.spec.ts",
              "line": 10,
              "column": 7
            },
            {
              "title": "CSS assets load",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "passed",
                      "duration": 173,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.189Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/us-us-elect-info-CSS-assets-load-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-9f6402d7bf0b7a821851",
              "file": "tests/ui/us.spec.ts",
              "line": 16,
              "column": 7
            },
            {
              "title": "JS assets load",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "passed",
                      "duration": 209,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.386Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/us-us-elect-info-JS-assets-load-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-6e13cf9f04841582af4e",
              "file": "tests/ui/us.spec.ts",
              "line": 21,
              "column": 7
            },
            {
              "title": "404 page works",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "passed",
                      "duration": 225,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.618Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/us-us-elect-info-404-page-works-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-f161db786bfcba883987",
              "file": "tests/ui/us.spec.ts",
              "line": 27,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/vendor-purpose-lifecycle.spec.ts",
      "file": "tests/ui/vendor-purpose-lifecycle.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "unavailable cycle empty groups retains raw disclosure",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 31,
                  "parallelIndex": 31,
                  "status": "passed",
                  "duration": 608,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:50.279Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purpose-lifecycle-u-ddd71-oups-retains-raw-disclosure-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "fe31ae87325961aac612-8330dde0efbedb1a3667",
          "file": "tests/ui/vendor-purpose-lifecycle.spec.ts",
          "line": 25,
          "column": 7
        },
        {
          "title": "unavailable cycle request error retains raw disclosure",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 31,
                  "parallelIndex": 31,
                  "status": "passed",
                  "duration": 555,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:51.021Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purpose-lifecycle-u-93fce-rror-retains-raw-disclosure-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "fe31ae87325961aac612-16fd070860d17139476d",
          "file": "tests/ui/vendor-purpose-lifecycle.spec.ts",
          "line": 25,
          "column": 7
        },
        {
          "title": "latest cycle wins over a slow previous request, without duplicate charts",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 31,
                  "parallelIndex": 31,
                  "status": "passed",
                  "duration": 604,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:51.601Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purpose-lifecycle-l-22cdc-st-without-duplicate-charts-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "fe31ae87325961aac612-24b76132a8b01c12dfcb",
          "file": "tests/ui/vendor-purpose-lifecycle.spec.ts",
          "line": 43,
          "column": 5
        },
        {
          "title": "top-purpose text is escaped in the expandable table",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 31,
                  "parallelIndex": 31,
                  "status": "passed",
                  "duration": 535,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:52.228Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purpose-lifecycle-t-d5080-ped-in-the-expandable-table-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "fe31ae87325961aac612-274c346af4b1f907ee13",
          "file": "tests/ui/vendor-purpose-lifecycle.spec.ts",
          "line": 71,
          "column": 5
        },
        {
          "title": "signed group amounts use positive shares and stable IDs without negative ribbons",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 31,
                  "parallelIndex": 31,
                  "status": "passed",
                  "duration": 470,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:52.786Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purpose-lifecycle-s-4147f-Ds-without-negative-ribbons-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "fe31ae87325961aac612-0682bfcec137b189cf58",
          "file": "tests/ui/vendor-purpose-lifecycle.spec.ts",
          "line": 81,
          "column": 5
        },
        {
          "title": "refund-only groups keep the signed table without a misleading share or empty Sankey",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 31,
                  "parallelIndex": 31,
                  "status": "passed",
                  "duration": 296,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:53.273Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purpose-lifecycle-r-6695c-ading-share-or-empty-Sankey-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "fe31ae87325961aac612-ef072c682574434209c9",
          "file": "tests/ui/vendor-purpose-lifecycle.spec.ts",
          "line": 110,
          "column": 5
        }
      ]
    },
    {
      "title": "tests/ui/vendor-purposes.spec.ts",
      "file": "tests/ui/vendor-purposes.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "three-column Sankey fills the card and contains both link stages after mount and resize",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 11,
                  "parallelIndex": 11,
                  "status": "passed",
                  "duration": 392,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:58.573Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-three-colu-97f70-ages-after-mount-and-resize-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "77632b1a04bb4d3528ee-446a5f1868754a5eda1b",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 429,
          "column": 5
        },
        {
          "title": "mobile table scrolls all numeric columns and expands raw purposes at full width",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 11,
                  "parallelIndex": 11,
                  "status": "passed",
                  "duration": 658,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:58.978Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-mobile-tab-69ed3--raw-purposes-at-full-width-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "77632b1a04bb4d3528ee-aa725f965345886a8917",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 461,
          "column": 5
        }
      ],
      "suites": [
        {
          "title": "vendor purpose card — section and query",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 88,
          "column": 6,
          "specs": [
            {
              "title": "#purposes section is rendered on a vendor detail page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 402,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.522Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-11765-red-on-a-vendor-detail-page-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-e051af057221aef61daf",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 89,
              "column": 7
            },
            {
              "title": "VendorPurposeFlow query is issued with id and null cycle on initial load",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 403,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:50.942Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-4bd93--null-cycle-on-initial-load-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-ad4fc7ef3fa5b3608ee2",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 101,
              "column": 7
            },
            {
              "title": "query operation name is VendorPurposeFlow",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 410,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.374Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-9e3c5-n-name-is-VendorPurposeFlow-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-f95588600897b5c7f7b3",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 115,
              "column": 7
            }
          ]
        },
        {
          "title": "vendor purpose card — cycle selector",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 126,
          "column": 6,
          "specs": [
            {
              "title": "cycle selector is present with aria-label \"Purpose cycle\"",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 363,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.804Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-7e5d3-h-aria-label-Purpose-cycle--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-eaf613e13663e4046779",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 127,
              "column": 7
            },
            {
              "title": "cycle selector has an \"All cycles\" option as the first entry",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 470,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.187Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-361e5-s-option-as-the-first-entry-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-7d6b1fc2644e17d7a6be",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 136,
              "column": 7
            },
            {
              "title": "cycle options are populated from the vendor cycles field",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 381,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.679Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-8a1fb-rom-the-vendor-cycles-field-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-28b4f3dcccf27ac21ab6",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 147,
              "column": 7
            },
            {
              "title": "selecting a cycle issues a new VendorPurposeFlow query with that cycle",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 386,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.081Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-876f1-eFlow-query-with-that-cycle-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-f9b4e907cf9ab0f5d176",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 159,
              "column": 7
            },
            {
              "title": "switching back to All cycles sends cycle: null",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 334,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.484Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-aecf0-All-cycles-sends-cycle-null-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-991420bd044423ba273e",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 179,
              "column": 7
            }
          ]
        },
        {
          "title": "vendor purpose card — filter input",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 197,
          "column": 6,
          "specs": [
            {
              "title": "filter input has aria-label \"Filter purpose groups\"",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 220,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.832Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-3173c-abel-Filter-purpose-groups--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-7ee276eeb86ebedd6b54",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 201,
              "column": 7
            },
            {
              "title": "typing in the filter narrows visible rows by group name",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 250,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.067Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-f3055--visible-rows-by-group-name-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-6b70488c25c6b61eeec0",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 210,
              "column": 7
            },
            {
              "title": "filter matches topPurpose text as well as the group name",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 254,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.333Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-f6779-t-as-well-as-the-group-name-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-d44b01d8826479b74bd2",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 221,
              "column": 7
            },
            {
              "title": "no match shows the empty message and zero rows",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 214,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.601Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-b8c47-empty-message-and-zero-rows-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-ab32474acc004d74f6ba",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 232,
              "column": 7
            }
          ]
        },
        {
          "title": "vendor purpose card — sortable headers",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 244,
          "column": 6,
          "specs": [
            {
              "title": "sortable headers Group, Amount, %, Payments, Clients are present",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 242,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:54.828Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-6167a-ayments-Clients-are-present-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-365b20a02a1208c75e4c",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 248,
              "column": 7
            },
            {
              "title": "default sort is Amount descending — Media Buying first",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 199,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.083Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-f6547-ending-—-Media-Buying-first-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-39040b7c2d6ab8ee710b",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 262,
              "column": 7
            },
            {
              "title": "clicking Group sorts alphabetically ascending, then descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 303,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.296Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-f26bf-y-ascending-then-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-088449e62c586454d490",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 272,
              "column": 7
            },
            {
              "title": "clicking the active Amount header flips from desc to asc and back",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 277,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.612Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-99469-s-from-desc-to-asc-and-back-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-67e14db3fba142c57711",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 288,
              "column": 7
            },
            {
              "title": "non-active headers show aria-sort=\"none\"",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 214,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:55.903Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-215dc-eaders-show-aria-sort-none--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-d77070761e614b03420c",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 306,
              "column": 7
            }
          ]
        },
        {
          "title": "vendor purpose card — expandable group detail",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 318,
          "column": 6,
          "specs": [
            {
              "title": "each row has a details/summary element with the group name",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 189,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.130Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-84aa0-element-with-the-group-name-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-aee3634fc70c27c6e676",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 322,
              "column": 7
            },
            {
              "title": "expanding details reveals topPurposes for that group",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 276,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.333Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-9dcd6--topPurposes-for-that-group-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-834a1301aa31030c82e5",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 336,
              "column": 7
            }
          ]
        },
        {
          "title": "vendor purpose card — Sankey / Table toggle",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 350,
          "column": 6,
          "specs": [
            {
              "title": "Sankey is the default view with a canvas visible",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 281,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.623Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-f797c--view-with-a-canvas-visible-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-f60df3b0e1a2bc247fd1",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 351,
              "column": 7
            },
            {
              "title": "Table button shows the table and hides the chart",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 357,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:56.921Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-54b56-e-table-and-hides-the-chart-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-d87e42dc7f697dfcfd2b",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 363,
              "column": 7
            },
            {
              "title": "switching back to Sankey restores the canvas",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 338,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.291Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-eb032--Sankey-restores-the-canvas-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-08c094850d3797551c61",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 375,
              "column": 7
            }
          ]
        },
        {
          "title": "vendor purpose card — fallback / empty states",
          "file": "tests/ui/vendor-purposes.spec.ts",
          "line": 388,
          "column": 6,
          "specs": [
            {
              "title": "\"Raw purposes\" disclosure appears when vendorPurposeFlow returns null",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 206,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.644Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-7b254-dorPurposeFlow-returns-null-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-6590a658907075686038",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 389,
              "column": 7
            },
            {
              "title": "\"Raw purposes\" disclosure appears when groups array is empty",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 184,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:57.862Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-6114c--when-groups-array-is-empty-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-01f46cd24f7650b234a4",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 400,
              "column": 7
            },
            {
              "title": "no \"Raw purposes\" disclosure when valid groups are present",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 234,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.056Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-72d06-en-valid-groups-are-present-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-cedf79b9e30f52c9bde6",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 408,
              "column": 7
            },
            {
              "title": "status element shows a message while loading and clears on success",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 265,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:58.298Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/vendor-purposes-vendor-pur-92a35-ading-and-clears-on-success-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "77632b1a04bb4d3528ee-ef48471b651b0a19c4d4",
              "file": "tests/ui/vendor-purposes.spec.ts",
              "line": 416,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/visitor-token.spec.ts",
      "file": "tests/ui/visitor-token.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "GET /api/token is never an error, with or without the gate",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 30,
                  "parallelIndex": 30,
                  "status": "passed",
                  "duration": 81,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-24T00:58:51.877Z",
                  "annotations": [],
                  "attachments": []
                }
              ],
              "status": "expected"
            }
          ],
          "id": "66d11097bc5ff2c625f4-ba2e689c22ca1eb58a86",
          "file": "tests/ui/visitor-token.spec.ts",
          "line": 30,
          "column": 5
        }
      ],
      "suites": [
        {
          "title": "visitor-token gate",
          "file": "tests/ui/visitor-token.spec.ts",
          "line": 41,
          "column": 6,
          "specs": [
            {
              "title": "GET /api/token sets an HttpOnly token and a readable expiry",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 45,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "skipped",
                      "duration": 28,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:51.979Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 45,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-6a345a67524e2f99f69c",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 42,
              "column": 7
            },
            {
              "title": "without a token, /api/graphql answers 401",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 58,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "skipped",
                      "duration": 40,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.037Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 58,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-f396d27256170349746e",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 57,
              "column": 7
            },
            {
              "title": "an anon token runs persisted documents and nothing else",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 70,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "skipped",
                      "duration": 42,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.099Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 70,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-fb37317a2cef824e3dad",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 69,
              "column": 7
            }
          ]
        },
        {
          "title": "donor records are premium",
          "file": "tests/ui/visitor-token.spec.ts",
          "line": 98,
          "column": 6,
          "specs": [
            {
              "title": "an anonymous visitor gets the premium notice on Individual Donors",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 100,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "skipped",
                      "duration": 31,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.166Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 100,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-c8ffc6d48edd62fa84f1",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 103,
              "column": 7
            },
            {
              "title": "an anonymous visitor sees employer totals but not donor names",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 100,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 30,
                      "parallelIndex": 30,
                      "status": "skipped",
                      "duration": 28,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.224Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 100,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-70bd87774f0fc06f5206",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 109,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/voter-cycles.spec.ts",
      "file": "tests/ui/voter-cycles.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "voters and the cycle facet (sites#355)",
          "file": "tests/ui/voter-cycles.spec.ts",
          "line": 34,
          "column": 6,
          "specs": [
            {
              "title": "a cycle scopes the voter list; the page offers the cycle and voting-history filters",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "skipped",
                      "duration": 50,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.079Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "ec825ded4a6ea67b77e4-8dcb0d388f170a31c159",
              "file": "tests/ui/voter-cycles.spec.ts",
              "line": 39,
              "column": 7
            },
            {
              "title": "without a cycle, the primary filter means any cycle and no cycle is sent",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "skipped",
                      "duration": 27,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.158Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "ec825ded4a6ea67b77e4-c01c2baeab4bd4c00ab1",
              "file": "tests/ui/voter-cycles.spec.ts",
              "line": 67,
              "column": 7
            },
            {
              "title": "an index without cycle history falls back to all cycles, saying so",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "skipped",
                      "duration": 29,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.223Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "ec825ded4a6ea67b77e4-251403d4611ce926f6ff",
              "file": "tests/ui/voter-cycles.spec.ts",
              "line": 76,
              "column": 7
            },
            {
              "title": "the voter detail page lists voting by cycle when the index has it",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "skipped",
                      "duration": 27,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.286Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "ec825ded4a6ea67b77e4-45177bf124f1603697d9",
              "file": "tests/ui/voter-cycles.spec.ts",
              "line": 84,
              "column": 7
            }
          ]
        },
        {
          "title": "homepage voters count in a cycle (sites#355)",
          "file": "tests/ui/voter-cycles.spec.ts",
          "line": 97,
          "column": 6,
          "specs": [
            {
              "title": "shows voters who voted in the cycle",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 336,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.338Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voter-cycles-homepage-vote-ef75e-ters-who-voted-in-the-cycle-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "ec825ded4a6ea67b77e4-460240d59590ab4bf6b9",
              "file": "tests/ui/voter-cycles.spec.ts",
              "line": 104,
              "column": 7
            },
            {
              "title": "before the voters index has cycles: the all-cycles total, labelled",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 292,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.791Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voter-cycles-homepage-vote-d30dd-e-all-cycles-total-labelled-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "ec825ded4a6ea67b77e4-c806f2648f3d7ab76d1b",
              "file": "tests/ui/voter-cycles.spec.ts",
              "line": 114,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/voters.spec.ts",
      "file": "tests/ui/voters.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "voters (premium)",
          "file": "tests/ui/voters.spec.ts",
          "line": 25,
          "column": 6,
          "specs": [
            {
              "title": "the public /api/graphql refuses voter queries",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "passed",
                      "duration": 70,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.087Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-5353dc9ff6280b8b8ce8",
              "file": "tests/ui/voters.spec.ts",
              "line": 30,
              "column": 7
            },
            {
              "title": "a premium visitor token reads voters through /api/graphql",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "needs the target's visitor-token key (EI_VT_KEY)",
                      "location": {
                        "file": "/app/tests/ui/voters.spec.ts",
                        "line": 56,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 32,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.187Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "needs the target's visitor-token key (EI_VT_KEY)",
                          "location": {
                            "file": "/app/tests/ui/voters.spec.ts",
                            "line": 56,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-7fde10790fe436f2ce41",
              "file": "tests/ui/voters.spec.ts",
              "line": 55,
              "column": 7
            },
            {
              "title": "/voters/api/graphql answers voter queries and only POST",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 34,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.239Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-804985811ed788cbb4b3",
              "file": "tests/ui/voters.spec.ts",
              "line": 63,
              "column": 7
            },
            {
              "title": "browse lists the most active voters and links to detail pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 197,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.298Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voters-voters-premium-brow-b8f67-s-and-links-to-detail-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-0c1aedbfd096b779cf2a",
              "file": "tests/ui/voters.spec.ts",
              "line": 75,
              "column": 7
            },
            {
              "title": "search needs every term: name plus city",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 152,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.530Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voters-voters-premium-search-needs-every-term-name-plus-city-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-d68c8209b5444194b927",
              "file": "tests/ui/voters.spec.ts",
              "line": 93,
              "column": 7
            },
            {
              "title": "state filter narrows the list and scopes the county and district dropdowns",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 167,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.706Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voters-voters-premium-stat-66ee5-unty-and-district-dropdowns-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-715d172cd99b39041bec",
              "file": "tests/ui/voters.spec.ts",
              "line": 103,
              "column": 7
            },
            {
              "title": "filters combine, count matches and survive a reload",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 169,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:52.898Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voters-voters-premium-filt-1ca12-atches-and-survive-a-reload-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-135d5a7d039193b89e35",
              "file": "tests/ui/voters.spec.ts",
              "line": 115,
              "column": 7
            },
            {
              "title": "race and Civitech score filters (persuadable, high-turnout Latinx voters in Miami-Dade)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 124,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.086Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voters-voters-premium-race-5358f-atinx-voters-in-Miami-Dade--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-8448f6ea1dd523d04da6",
              "file": "tests/ui/voters.spec.ts",
              "line": 131,
              "column": 7
            },
            {
              "title": "every Districts row links; legislative districts open the filtered voters list",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 249,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.227Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voters-voters-premium-ever-c7b29-en-the-filtered-voters-list-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-73036fbfee8d2c5e0709",
              "file": "tests/ui/voters.spec.ts",
              "line": 140,
              "column": 7
            },
            {
              "title": "an unknown voter id renders Not Found",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 131,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.495Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/prod-branch-20261024/us-prod/test-output/voters-voters-premium-an-unknown-voter-id-renders-Not-Found-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-e0441edf222b4f45ecb0",
              "file": "tests/ui/voters.spec.ts",
              "line": 176,
              "column": 7
            }
          ]
        },
        {
          "title": "voter Location card (mocked)",
          "file": "tests/ui/voters.spec.ts",
          "line": 183,
          "column": 6,
          "specs": [
            {
              "title": "State, Place, Postal code and County link their pages plus the filtered voters list; Overview and Districts drop them",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 39,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.640Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-9ec004703b65c8d29915",
              "file": "tests/ui/voters.spec.ts",
              "line": 194,
              "column": 7
            },
            {
              "title": "without graph matches (or a failed lookup) each value opens the filtered voters list",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                      "location": {
                        "file": "/app/tests/ui/helpers.ts",
                        "line": 25,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 21,
                      "parallelIndex": 21,
                      "status": "skipped",
                      "duration": 26,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-24T00:58:53.694Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "/voters/ is gated for this visitor (sign-in or premium notice)",
                          "location": {
                            "file": "/app/tests/ui/helpers.ts",
                            "line": 25,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-9e2248c87e42f3e8058a",
              "file": "tests/ui/voters.spec.ts",
              "line": 225,
              "column": 7
            }
          ]
        }
      ]
    }
  ],
  "errors": [],
  "stats": {
    "startTime": "2026-10-24T00:58:48.369Z",
    "duration": 188407.37300000002,
    "expected": 306,
    "skipped": 47,
    "unexpected": 25,
    "flaky": 1
  }
}