Skip to content

sdk-core string ref replacements#21

Merged
djanogly merged 2 commits intodevfrom
openspec/replace-sdk-core-string-ref-factories
Mar 11, 2026
Merged

sdk-core string ref replacements#21
djanogly merged 2 commits intodevfrom
openspec/replace-sdk-core-string-ref-factories

Conversation

@djanogly
Copy link
Contributor

This pull request updates the sdk-core API wrapper modules to remove the use of generic string-based factory selectors (e.g., getQueryRef(name: string)) and replaces them with explicit, fixed function reference constants. This improves type safety, makes the code easier to audit, and prevents accidental usage of unapproved or deprecated API references. The changes also update related tests and fixtures, and mark the relevant migration checklist as complete.

Key changes by theme:

API Factory Refactoring:

  • Replaced all instances of getQueryRef(name: string) and getMutationRef(name: string) with explicit, module-scoped constants for each API operation in aiAgent.ts, articles.ts, carousels.ts, checklists.ts, commonIssues.ts, and conversations.ts. This ensures only approved function references are used throughout the codebase. [1] [2] [3] [4] [5] [6]

  • Updated all API calls in these modules to use the new explicit reference constants instead of the previous generic helper functions. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]

Migration Task Tracking:

  • Marked all related migration tasks as complete in openspec/changes/replace-sdk-core-string-ref-factories/tasks.md, reflecting that the refactoring and verification steps have been finished.

These updates make the codebase more robust, maintainable, and less error-prone by enforcing explicit API boundaries and references.

@djanogly djanogly requested a review from Copilot March 11, 2026 16:53
@vercel
Copy link

vercel bot commented Mar 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
opencom-landing Ready Ready Preview, Comment Mar 11, 2026 5:32pm
opencom-web Ready Ready Preview, Comment Mar 11, 2026 5:32pm

@qodo-code-review
Copy link

Review Summary by Qodo

Replace sdk-core string-based factory functions with explicit fixed reference constants

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Replace generic string-based factory functions with explicit fixed reference constants across 12
  API wrapper modules
• Improve type safety and auditability by eliminating dynamic function reference selection
• Add comprehensive test coverage and guardrails to prevent regression to string-based factories
• Mark migration checklist as complete with all verification steps passed
Diagram
flowchart LR
  A["Generic Factories<br/>getQueryRef/getMutationRef"] -->|"Replace with"| B["Fixed Reference Constants<br/>GET_*_REF, SUBMIT_*_REF"]
  B -->|"Applied to"| C["12 API Modules<br/>aiAgent, articles, carousels, etc."]
  C -->|"Protected by"| D["Hardening Guards<br/>refHardeningGuard.test.ts"]
  D -->|"Verified by"| E["Contract Tests<br/>contracts.test.ts"]
Loading

Grey Divider

File Changes

1. packages/sdk-core/src/api/aiAgent.ts ✨ Enhancement +18/-13

Replace generic factories with 6 explicit AI agent references

packages/sdk-core/src/api/aiAgent.ts


2. packages/sdk-core/src/api/articles.ts ✨ Enhancement +8/-6

Replace generic factories with 3 explicit article references

packages/sdk-core/src/api/articles.ts


3. packages/sdk-core/src/api/carousels.ts ✨ Enhancement +8/-10

Replace generic factories with 3 explicit carousel references

packages/sdk-core/src/api/carousels.ts


View more (12)
4. packages/sdk-core/src/api/checklists.ts ✨ Enhancement +11/-12

Replace generic factories with 3 explicit checklist references

packages/sdk-core/src/api/checklists.ts


5. packages/sdk-core/src/api/commonIssues.ts ✨ Enhancement +3/-4

Replace generic factory with 1 explicit common issue reference

packages/sdk-core/src/api/commonIssues.ts


6. packages/sdk-core/src/api/conversations.ts ✨ Enhancement +18/-13

Replace generic factories with 6 explicit conversation references

packages/sdk-core/src/api/conversations.ts


7. packages/sdk-core/src/api/events.ts ✨ Enhancement +5/-5

Replace generic factory with 2 explicit event tracking references

packages/sdk-core/src/api/events.ts


8. packages/sdk-core/src/api/officeHours.ts ✨ Enhancement +9/-6

Replace generic factory with 3 explicit office hours references

packages/sdk-core/src/api/officeHours.ts


9. packages/sdk-core/src/api/outbound.ts ✨ Enhancement +6/-9

Replace generic factories with 2 explicit outbound message references

packages/sdk-core/src/api/outbound.ts


10. packages/sdk-core/src/api/sessions.ts ✨ Enhancement +9/-6

Replace generic factory with 3 explicit session lifecycle references

packages/sdk-core/src/api/sessions.ts


11. packages/sdk-core/src/api/tickets.ts ✨ Enhancement +13/-12

Replace generic factories with 5 explicit ticket operation references

packages/sdk-core/src/api/tickets.ts


12. packages/sdk-core/src/api/visitors.ts ✨ Enhancement +10/-7

Replace generic factory with 3 explicit visitor operation references

packages/sdk-core/src/api/visitors.ts


13. packages/sdk-core/tests/contracts.test.ts 🧪 Tests +453/-17

Expand contract tests with comprehensive API reference validation

packages/sdk-core/tests/contracts.test.ts


14. packages/sdk-core/tests/refHardeningGuard.test.ts 🧪 Tests +58/-0

Add new test suite preventing regression to string-based factories

packages/sdk-core/tests/refHardeningGuard.test.ts


15. openspec/changes/replace-sdk-core-string-ref-factories/tasks.md 📝 Documentation +9/-9

Mark all migration checklist items as complete

openspec/changes/replace-sdk-core-string-ref-factories/tasks.md


Grey Divider

Qodo Logo

@qodo-code-review
Copy link

qodo-code-review bot commented Mar 11, 2026

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (1) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Ref guard bypassable🐞 Bug ⛯ Reliability
Description
The new ref hardening guard only matches getQueryRef(name: string), `getMutationRef(name:
string), and makeFunctionReference(name)`, so equivalent dynamic factories (e.g.,
getQueryRef(path: string) or makeFunctionReference(refName)) can be reintroduced without failing
CI. This undermines the intended enforcement that covered wrappers must use only fixed,
explicitly-declared refs.
Code

packages/sdk-core/tests/refHardeningGuard.test.ts[R24-28]

+const GENERIC_QUERY_FACTORY_PATTERN = /\bfunction getQueryRef\(name: string\)/;
+const GENERIC_MUTATION_FACTORY_PATTERN = /\bfunction getMutationRef\(name: string\)/;
+const DYNAMIC_REF_FACTORY_PATTERN = /\bmakeFunctionReference\(\s*name\s*\)/;
+const FIXED_REF_DECLARATION_PATTERN =
+  /\bconst [A-Z0-9_]+_REF\s*=\s*makeFunctionReference\("[^"]+"\)\s*as FunctionReference<"(?:query|mutation)">;/g;
Evidence
The guard patterns hard-code the parameter/identifier name name and the exact helper signatures,
so semantically identical dynamic ref factories with a different parameter/variable name will not
match and will slip through the guard.

packages/sdk-core/tests/refHardeningGuard.test.ts[24-28]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`packages/sdk-core/tests/refHardeningGuard.test.ts` intends to prevent reintroduction of dynamic string-based Convex function reference factories, but its regexes only match the specific identifier `name` and exact helper signatures. This can be bypassed by renaming the parameter/variable.
## Issue Context
This guard is part of the PR’s enforcement story (preventing accidental use of unapproved/deprecated refs). If the guard is bypassable by trivial renames, CI won’t reliably catch regressions.
## Fix Focus Areas
- packages/sdk-core/tests/refHardeningGuard.test.ts[24-56]
## Suggested direction
- Prefer an AST-based check:
- Parse each covered wrapper with the TypeScript compiler API.
- Flag any `CallExpression` where callee is `makeFunctionReference` and the first argument is not a string literal.
- Optionally flag any function declarations/identifiers named `getQueryRef` or `getMutationRef` (regardless of parameter list), and/or any invocation of those identifiers.
- If staying regex-only, broaden patterns to:
- Detect any `function getQueryRef(` / `function getMutationRef(` (without requiring `(name: string)`), and
- Detect `makeFunctionReference(` where the next non-whitespace non-comment token is not a quote character (`&amp;quot;`, `&amp;#x27;`, or backtick).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. String makeFunctionReference refs 📘 Rule violation ✓ Correctness
Description
New fixed refs are still created via makeFunctionReference("module:function") string literals
instead of generated api/internal references. Without an explicit TS2589 hotspot justification,
this violates the preference for generated cross-function refs and reduces auditability/type-safety.
Code

packages/sdk-core/src/api/aiAgent.ts[R7-18]

+const GET_PUBLIC_AI_SETTINGS_REF =
+  makeFunctionReference("aiAgent:getPublicSettings") as FunctionReference<"query">;
+const GET_RELEVANT_KNOWLEDGE_REF =
+  makeFunctionReference("aiAgent:getRelevantKnowledge") as FunctionReference<"query">;
+const GET_CONVERSATION_AI_RESPONSES_REF =
+  makeFunctionReference("aiAgent:getConversationResponses") as FunctionReference<"query">;
+const SUBMIT_AI_FEEDBACK_REF =
+  makeFunctionReference("aiAgent:submitFeedback") as FunctionReference<"mutation">;
+const HANDOFF_TO_HUMAN_REF =
+  makeFunctionReference("aiAgent:handoffToHuman") as FunctionReference<"mutation">;
+const SHOULD_AI_RESPOND_REF =
+  makeFunctionReference("aiAgent:shouldRespond") as FunctionReference<"query">;
Evidence
PR Compliance ID 72008 requires using generated api/internal references for cross-function calls
and only allows makeFunctionReference("module:function") when justified as a TS2589 hotspot via
comment/ticket. The added module-scope refs in aiAgent.ts are created from string literals and
include no TS2589 justification.

Rule 72008: Prefer generated api/internal references for backend cross-function calls
packages/sdk-core/src/api/aiAgent.ts[7-18]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The sdk-core wrapper modules introduce new module-scoped refs that still use `makeFunctionReference(&amp;quot;module:function&amp;quot;)` string literals, which conflicts with the preference for generated `api`/`internal` references unless there is a documented TS2589 hotspot justification.
## Issue Context
These refs were refactored from generic factories into explicit constants, but they remain string-based references. The compliance requirement expects generated references by default or an explicit TS2589 hotspot comment/ticket for any manual `makeFunctionReference` usage.
## Fix Focus Areas
- packages/sdk-core/src/api/aiAgent.ts[7-18] आरोप

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors @opencom/sdk-core API wrapper modules to eliminate generic string-based Convex ref factories and replace them with explicit, module-scoped fixed FunctionReference constants, with tests/guardrails added to prevent regressions.

Changes:

  • Replaced getQueryRef(name: string) / getMutationRef(name: string) usage in multiple wrapper modules with explicit *_REF constants built via makeFunctionReference(...).
  • Expanded contract tests to assert stable function paths + argument shapes for the affected wrappers.
  • Added a guard test to prevent reintroducing dynamic/string-based ref factories; marked the migration checklist tasks complete.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/sdk-core/tests/refHardeningGuard.test.ts Adds guardrails to detect reintroduction of generic/dynamic ref factories in selected wrappers.
packages/sdk-core/tests/contracts.test.ts Extends contract conformance coverage across sessions, visitors, tickets, AI, articles, carousels, events, office hours, etc.
packages/sdk-core/src/api/aiAgent.ts Introduces fixed refs for AI Agent queries/mutations and updates calls to use them.
packages/sdk-core/src/api/articles.ts Introduces fixed refs for article queries and updates calls to use them.
packages/sdk-core/src/api/carousels.ts Introduces fixed refs for carousel queries/mutations and updates calls to use them.
packages/sdk-core/src/api/checklists.ts Introduces fixed refs for checklist queries/mutations and updates calls to use them (including dismiss flow).
packages/sdk-core/src/api/commonIssues.ts Introduces fixed ref for common issue buttons query and updates call to use it.
packages/sdk-core/src/api/conversations.ts Introduces fixed refs for conversation/message operations and updates calls to use them.
packages/sdk-core/src/api/events.ts Introduces fixed refs for event mutations and updates calls to use them.
packages/sdk-core/src/api/officeHours.ts Introduces fixed refs for office-hours queries and updates calls to use them.
packages/sdk-core/src/api/outbound.ts Introduces fixed refs for outbound message query/mutation and updates calls to use them.
packages/sdk-core/src/api/sessions.ts Introduces fixed refs for session lifecycle mutations and updates calls to use them.
packages/sdk-core/src/api/tickets.ts Introduces fixed refs for ticket queries/mutations and updates calls to use them.
packages/sdk-core/src/api/visitors.ts Introduces fixed refs for visitor mutations and updates calls to use them.
openspec/changes/replace-sdk-core-string-ref-factories/tasks.md Marks migration tasks as complete.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +24 to +26
const GENERIC_QUERY_FACTORY_PATTERN = /\bfunction getQueryRef\(name: string\)/;
const GENERIC_MUTATION_FACTORY_PATTERN = /\bfunction getMutationRef\(name: string\)/;
const DYNAMIC_REF_FACTORY_PATTERN = /\bmakeFunctionReference\(\s*name\s*\)/;
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The guard regexes are narrowly scoped and can be bypassed by small refactors. For example, GENERIC_QUERY_FACTORY_PATTERN / GENERIC_MUTATION_FACTORY_PATTERN only match function get*Ref(name: string) declarations (not const get*Ref = (name: string) => ...), and DYNAMIC_REF_FACTORY_PATTERN only flags makeFunctionReference(name) (not other identifiers like refName). Consider broadening the patterns to also catch arrow-function variants and any non-string-literal makeFunctionReference(...) usage so the hardening test reliably prevents reintroducing dynamic ref factories.

Suggested change
const GENERIC_QUERY_FACTORY_PATTERN = /\bfunction getQueryRef\(name: string\)/;
const GENERIC_MUTATION_FACTORY_PATTERN = /\bfunction getMutationRef\(name: string\)/;
const DYNAMIC_REF_FACTORY_PATTERN = /\bmakeFunctionReference\(\s*name\s*\)/;
const GENERIC_QUERY_FACTORY_PATTERN =
/\b(?:function\s+getQueryRef\s*\(\s*name:\s*string\s*\)|const\s+getQueryRef\s*=\s*\(\s*name:\s*string\s*\)\s*=>)/;
const GENERIC_MUTATION_FACTORY_PATTERN =
/\b(?:function\s+getMutationRef\s*\(\s*name:\s*string\s*\)|const\s+getMutationRef\s*=\s*\(\s*name:\s*string\s*\)\s*=>)/;
const DYNAMIC_REF_FACTORY_PATTERN = /\bmakeFunctionReference\(\s*(?!["'`])[^\s,)]+/;

Copilot uses AI. Check for mistakes.
@qodo-code-review
Copy link

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: e2e

Failed stage: Playwright E2E suite [❌]

Failed test name: Web Admin - AI Agent Settings › should display AI Agent section on settings page

Failure summary:

  • The E2E Playwright test job failed because Playwright could not launch Chromium: browserType.launch:
    Executable doesn't exist at
    /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/.../chrome-headless-shell.
  • This indicates the Playwright browser binaries were not installed/downloaded in CI (Playwright
    suggests running pnpm exec playwright install), causing widespread E2E failures (138 failed, 52 did
    not run) and the pnpm playwright test command to exit with code 1.
  • The follow-up e2e-reliability-gate step then failed because unexpected failures exceeded the allowed
    budget: observed unexpected=138 with budget 0 ([e2e-reliability-gate] unexpected exceeded
    threshold).
Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

217:  + @vitest/ui 4.0.17
218:  + convex 1.32.0
219:  + eslint 8.57.1
220:  + eslint-plugin-react 7.37.5
221:  + eslint-plugin-react-hooks 5.2.0
222:  + prettier 3.8.0
223:  + tsx 4.21.0
224:  + typescript 5.9.3
225:  + vitest 4.0.17
226:  + wrangler 4.66.0
227:  Done in 9.6s
228:  ##[group]Run missing=0
229:  �[36;1mmissing=0�[0m
230:  �[36;1mfor name in E2E_BACKEND_URL TEST_ADMIN_SECRET; do�[0m
231:  �[36;1m  if [ -z "${!name}" ]; then�[0m
232:  �[36;1m    echo "::error::Missing required secret: $name"�[0m
233:  �[36;1m    missing=1�[0m
...

259:  E2E_TEST_PASSWORD: 
260:  E2E_SUMMARY_PATH: artifacts/e2e-summary.json
261:  E2E_RELIABILITY_REPORT_PATH: artifacts/e2e-reliability-report.json
262:  E2E_RELIABILITY_BUDGET_PATH: security/e2e-reliability-budget.json
263:  E2E_RELIABILITY_ALLOWLIST_PATH: security/e2e-reliability-allowlist.json
264:  TEST_RUN_ID: ci-22964214414-1
265:  PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin
266:  ##[endgroup]
267:  > opencom@0.1.0 web:test:e2e /home/runner/work/opencom/opencom
268:  > set -a; source packages/convex/.env.local; set +a; pnpm playwright test
269:  sh: 1: source: not found
270:  [WebServer] 
271:  [WebServer]  �[33m�[1m⚠�[22m�[39m The Next.js plugin was not detected in your ESLint configuration. See https://nextjs.org/docs/app/api-reference/config/eslint#migrating-existing-config
272:  Running 190 tests using 4 workers
273:  ✘    1 [chromium] › apps/web/e2e/carousels.spec.ts:87:7 › Web Admin - Carousel Management › runs deterministic activate/pause/duplicate/delete lifecycle (2ms)
274:  -    5 [chromium] › apps/web/e2e/carousels.spec.ts:137:7 › Web Admin - Carousel Management › surfaces editor validation errors for CTA URLs and deep links
275:  ✘    3 [chromium] › apps/web/e2e/ai-agent.spec.ts:123:7 › Inbox AI deterministic workflow › shows AI-handled review metadata and deep-links to the source message (1ms)
276:  -    6 [chromium] › apps/web/e2e/ai-agent.spec.ts:170:7 › Inbox AI deterministic workflow › filters handoff conversations and shows handoff reason consistency
277:  ✘    2 [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:59:7 › Web Admin - AI Agent Settings › should display AI Agent section on settings page (2ms)
278:  ✘    4 [chromium] › apps/web/e2e/audit-logs.spec.ts:107:7 › Web Admin - Audit Logs › should navigate to audit logs page (2ms)
279:  -    7 [chromium] › apps/web/e2e/audit-logs.spec.ts:114:7 › Web Admin - Audit Logs › should display seeded audit entries and show detail metadata
280:  -    8 [chromium] › apps/web/e2e/audit-logs.spec.ts:143:7 › Web Admin - Audit Logs › should filter audit logs by resource type
281:  -    9 [chromium] › apps/web/e2e/audit-logs.spec.ts:176:7 › Web Admin - Audit Logs › should trigger filtered export
282:  ✘   11 [chromium] › apps/web/e2e/audit-logs.spec.ts:107:7 › Web Admin - Audit Logs › should navigate to audit logs page (retry #1) (2ms)
283:  -   14 [chromium] › apps/web/e2e/audit-logs.spec.ts:114:7 › Web Admin - Audit Logs › should display seeded audit entries and show detail metadata (retry #1)
284:  -   15 [chromium] › apps/web/e2e/audit-logs.spec.ts:143:7 › Web Admin - Audit Logs › should filter audit logs by resource type (retry #1)
285:  -   16 [chromium] › apps/web/e2e/audit-logs.spec.ts:176:7 › Web Admin - Audit Logs › should trigger filtered export (retry #1)
286:  ✘   10 [chromium] › apps/web/e2e/carousels.spec.ts:87:7 › Web Admin - Carousel Management › runs deterministic activate/pause/duplicate/delete lifecycle (retry #1) (1ms)
287:  -   17 [chromium] › apps/web/e2e/carousels.spec.ts:137:7 › Web Admin - Carousel Management › surfaces editor validation errors for CTA URLs and deep links (retry #1)
288:  ✘   12 [chromium] › apps/web/e2e/ai-agent.spec.ts:123:7 › Inbox AI deterministic workflow › shows AI-handled review metadata and deep-links to the source message (retry #1) (1ms)
289:  -   18 [chromium] › apps/web/e2e/ai-agent.spec.ts:170:7 › Inbox AI deterministic workflow › filters handoff conversations and shows handoff reason consistency (retry #1)
290:  ✘   13 [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:59:7 › Web Admin - AI Agent Settings › should display AI Agent section on settings page (retry #1) (2ms)
291:  ✘   19 [chromium] › apps/web/e2e/audit-logs.spec.ts:107:7 › Web Admin - Audit Logs › should navigate to audit logs page (retry #2) (6ms)
292:  -   23 [chromium] › apps/web/e2e/audit-logs.spec.ts:114:7 › Web Admin - Audit Logs › should display seeded audit entries and show detail metadata (retry #2)
293:  -   24 [chromium] › apps/web/e2e/audit-logs.spec.ts:143:7 › Web Admin - Audit Logs › should filter audit logs by resource type (retry #2)
294:  -   25 [chromium] › apps/web/e2e/audit-logs.spec.ts:176:7 › Web Admin - Audit Logs › should trigger filtered export (retry #2)
295:  ✘   20 [chromium] › apps/web/e2e/ai-agent.spec.ts:123:7 › Inbox AI deterministic workflow › shows AI-handled review metadata and deep-links to the source message (retry #2) (1ms)
296:  -   26 [chromium] › apps/web/e2e/ai-agent.spec.ts:170:7 › Inbox AI deterministic workflow › filters handoff conversations and shows handoff reason consistency (retry #2)
297:  ✘   22 [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:59:7 › Web Admin - AI Agent Settings › should display AI Agent section on settings page (retry #2) (2ms)
298:  ✘   21 [chromium] › apps/web/e2e/carousels.spec.ts:87:7 › Web Admin - Carousel Management › runs deterministic activate/pause/duplicate/delete lifecycle (retry #2) (2ms)
299:  -   27 [chromium] › apps/web/e2e/carousels.spec.ts:137:7 › Web Admin - Carousel Management › surfaces editor validation errors for CTA URLs and deep links (retry #2)
300:  ✘   28 [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:65:7 › Web Admin - AI Agent Settings › should toggle AI agent enable/disable (2ms)
...

834:  ✘  562 [chromium] › apps/web/e2e/outbound.spec.ts:617:7 › Series Builder › should gate activation with readiness blockers until valid (1ms)
835:  ✘  563 [chromium] › apps/web/e2e/outbound.spec.ts:617:7 › Series Builder › should gate activation with readiness blockers until valid (retry #1) (1ms)
836:  ✘  564 [chromium] › apps/web/e2e/outbound.spec.ts:617:7 › Series Builder › should gate activation with readiness blockers until valid (retry #2) (1ms)
837:  ✘  565 [chromium] › apps/web/e2e/outbound.spec.ts:635:7 › Series Builder › should support connection authoring with explicit default branch labels (1ms)
838:  ✘  566 [chromium] › apps/web/e2e/outbound.spec.ts:635:7 › Series Builder › should support connection authoring with explicit default branch labels (retry #1) (1ms)
839:  ✘  567 [chromium] › apps/web/e2e/outbound.spec.ts:635:7 › Series Builder › should support connection authoring with explicit default branch labels (retry #2) (1ms)
840:  ✘  568 [chromium] › apps/web/e2e/outbound.spec.ts:678:7 › Series Builder › should validate global rule editors before save (1ms)
841:  ✘  569 [chromium] › apps/web/e2e/outbound.spec.ts:678:7 › Series Builder › should validate global rule editors before save (retry #1) (1ms)
842:  ✘  570 [chromium] › apps/web/e2e/outbound.spec.ts:678:7 › Series Builder › should validate global rule editors before save (retry #2) (1ms)
843:  🧹 Cleaning up E2E test environment...
844:  ℹ️ Shared test state not found; continuing cleanup via test email domain match
845:  🗑️ Deleting test data...
846:  ℹ️ No test data to clean up
847:  🎉 Teardown complete!
848:  1) [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:59:7 › Web Admin - AI Agent Settings › should display AI Agent section on settings page 
849:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
850:  ╔═════════════════════════════════════════════════════════════════════════╗
851:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
852:  ║ Please run the following command to download new browsers:              ║
853:  ║                                                                         ║
854:  ║     pnpm exec playwright install                                        ║
855:  ║                                                                         ║
856:  ║ <3 Playwright Team                                                      ║
857:  ╚═════════════════════════════════════════════════════════════════════════╝
858:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
859:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
860:  ╔═════════════════════════════════════════════════════════════════════════╗
861:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
862:  ║ Please run the following command to download new browsers:              ║
863:  ║                                                                         ║
864:  ║     pnpm exec playwright install                                        ║
865:  ║                                                                         ║
866:  ║ <3 Playwright Team                                                      ║
867:  ╚═════════════════════════════════════════════════════════════════════════╝
868:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
869:  test-results/ai-agent-settings-Web-Admi-a8388-nt-section-on-settings-page-chromium-retry1/trace.zip
870:  Usage:
871:  pnpm exec playwright show-trace test-results/ai-agent-settings-Web-Admi-a8388-nt-section-on-settings-page-chromium-retry1/trace.zip
872:  ────────────────────────────────────────────────────────────────────────────────────────────────
873:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
874:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
875:  ╔═════════════════════════════════════════════════════════════════════════╗
876:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
877:  ║ Please run the following command to download new browsers:              ║
878:  ║                                                                         ║
879:  ║     pnpm exec playwright install                                        ║
880:  ║                                                                         ║
881:  ║ <3 Playwright Team                                                      ║
882:  ╚═════════════════════════════════════════════════════════════════════════╝
883:  2) [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:65:7 › Web Admin - AI Agent Settings › should toggle AI agent enable/disable 
884:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
885:  ╔═════════════════════════════════════════════════════════════════════════╗
886:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
887:  ║ Please run the following command to download new browsers:              ║
888:  ║                                                                         ║
889:  ║     pnpm exec playwright install                                        ║
890:  ║                                                                         ║
891:  ║ <3 Playwright Team                                                      ║
892:  ╚═════════════════════════════════════════════════════════════════════════╝
893:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
894:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
895:  ╔═════════════════════════════════════════════════════════════════════════╗
896:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
897:  ║ Please run the following command to download new browsers:              ║
898:  ║                                                                         ║
899:  ║     pnpm exec playwright install                                        ║
900:  ║                                                                         ║
901:  ║ <3 Playwright Team                                                      ║
902:  ╚═════════════════════════════════════════════════════════════════════════╝
903:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
904:  test-results/ai-agent-settings-Web-Admi-09aa3-gle-AI-agent-enable-disable-chromium-retry1/trace.zip
905:  Usage:
906:  pnpm exec playwright show-trace test-results/ai-agent-settings-Web-Admi-09aa3-gle-AI-agent-enable-disable-chromium-retry1/trace.zip
907:  ────────────────────────────────────────────────────────────────────────────────────────────────
908:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
909:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
910:  ╔═════════════════════════════════════════════════════════════════════════╗
911:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
912:  ║ Please run the following command to download new browsers:              ║
913:  ║                                                                         ║
914:  ║     pnpm exec playwright install                                        ║
915:  ║                                                                         ║
916:  ║ <3 Playwright Team                                                      ║
917:  ╚═════════════════════════════════════════════════════════════════════════╝
918:  3) [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:81:7 › Web Admin - AI Agent Settings › should save AI agent settings 
919:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
920:  ╔═════════════════════════════════════════════════════════════════════════╗
921:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
922:  ║ Please run the following command to download new browsers:              ║
923:  ║                                                                         ║
924:  ║     pnpm exec playwright install                                        ║
925:  ║                                                                         ║
926:  ║ <3 Playwright Team                                                      ║
927:  ╚═════════════════════════════════════════════════════════════════════════╝
928:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
929:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
930:  ╔═════════════════════════════════════════════════════════════════════════╗
931:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
932:  ║ Please run the following command to download new browsers:              ║
933:  ║                                                                         ║
934:  ║     pnpm exec playwright install                                        ║
935:  ║                                                                         ║
936:  ║ <3 Playwright Team                                                      ║
937:  ╚═════════════════════════════════════════════════════════════════════════╝
938:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
939:  test-results/ai-agent-settings-Web-Admi-92d18-ould-save-AI-agent-settings-chromium-retry1/trace.zip
940:  Usage:
941:  pnpm exec playwright show-trace test-results/ai-agent-settings-Web-Admi-92d18-ould-save-AI-agent-settings-chromium-retry1/trace.zip
942:  ────────────────────────────────────────────────────────────────────────────────────────────────
943:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
944:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
945:  ╔═════════════════════════════════════════════════════════════════════════╗
946:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
947:  ║ Please run the following command to download new browsers:              ║
948:  ║                                                                         ║
949:  ║     pnpm exec playwright install                                        ║
950:  ║                                                                         ║
951:  ║ <3 Playwright Team                                                      ║
952:  ╚═════════════════════════════════════════════════════════════════════════╝
953:  4) [chromium] › apps/web/e2e/ai-agent-settings.spec.ts:93:7 › Web Admin - AI Agent Settings › should display AI personality settings when enabled 
954:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
955:  ╔═════════════════════════════════════════════════════════════════════════╗
956:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
957:  ║ Please run the following command to download new browsers:              ║
958:  ║                                                                         ║
959:  ║     pnpm exec playwright install                                        ║
960:  ║                                                                         ║
961:  ║ <3 Playwright Team                                                      ║
962:  ╚═════════════════════════════════════════════════════════════════════════╝
963:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
964:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
965:  ╔═════════════════════════════════════════════════════════════════════════╗
966:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
967:  ║ Please run the following command to download new browsers:              ║
968:  ║                                                                         ║
969:  ║     pnpm exec playwright install                                        ║
970:  ║                                                                         ║
971:  ║ <3 Playwright Team                                                      ║
972:  ╚═════════════════════════════════════════════════════════════════════════╝
973:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
974:  test-results/ai-agent-settings-Web-Admi-544e7-ality-settings-when-enabled-chromium-retry1/trace.zip
975:  Usage:
976:  pnpm exec playwright show-trace test-results/ai-agent-settings-Web-Admi-544e7-ality-settings-when-enabled-chromium-retry1/trace.zip
977:  ────────────────────────────────────────────────────────────────────────────────────────────────
978:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
979:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
980:  ╔═════════════════════════════════════════════════════════════════════════╗
981:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
982:  ║ Please run the following command to download new browsers:              ║
983:  ║                                                                         ║
984:  ║     pnpm exec playwright install                                        ║
985:  ║                                                                         ║
986:  ║ <3 Playwright Team                                                      ║
987:  ╚═════════════════════════════════════════════════════════════════════════╝
988:  5) [chromium] › apps/web/e2e/ai-agent.spec.ts:123:7 › Inbox AI deterministic workflow › shows AI-handled review metadata and deep-links to the source message 
989:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
990:  ╔═════════════════════════════════════════════════════════════════════════╗
991:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
992:  ║ Please run the following command to download new browsers:              ║
993:  ║                                                                         ║
994:  ║     pnpm exec playwright install                                        ║
995:  ║                                                                         ║
996:  ║ <3 Playwright Team                                                      ║
997:  ╚═════════════════════════════════════════════════════════════════════════╝
998:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
999:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1000:  ╔═════════════════════════════════════════════════════════════════════════╗
1001:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1002:  ║ Please run the following command to download new browsers:              ║
1003:  ║                                                                         ║
1004:  ║     pnpm exec playwright install                                        ║
1005:  ║                                                                         ║
1006:  ║ <3 Playwright Team                                                      ║
1007:  ╚═════════════════════════════════════════════════════════════════════════╝
1008:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1009:  test-results/ai-agent-Inbox-AI-determin-3c303-links-to-the-source-message-chromium-retry1/trace.zip
1010:  Usage:
1011:  pnpm exec playwright show-trace test-results/ai-agent-Inbox-AI-determin-3c303-links-to-the-source-message-chromium-retry1/trace.zip
1012:  ────────────────────────────────────────────────────────────────────────────────────────────────
1013:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1014:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1015:  ╔═════════════════════════════════════════════════════════════════════════╗
1016:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1017:  ║ Please run the following command to download new browsers:              ║
1018:  ║                                                                         ║
1019:  ║     pnpm exec playwright install                                        ║
1020:  ║                                                                         ║
1021:  ║ <3 Playwright Team                                                      ║
1022:  ╚═════════════════════════════════════════════════════════════════════════╝
1023:  6) [chromium] › apps/web/e2e/audit-logs.spec.ts:107:7 › Web Admin - Audit Logs › should navigate to audit logs page 
1024:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1025:  ╔═════════════════════════════════════════════════════════════════════════╗
1026:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1027:  ║ Please run the following command to download new browsers:              ║
1028:  ║                                                                         ║
1029:  ║     pnpm exec playwright install                                        ║
1030:  ║                                                                         ║
1031:  ║ <3 Playwright Team                                                      ║
1032:  ╚═════════════════════════════════════════════════════════════════════════╝
1033:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1034:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1035:  ╔═════════════════════════════════════════════════════════════════════════╗
1036:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1037:  ║ Please run the following command to download new browsers:              ║
1038:  ║                                                                         ║
1039:  ║     pnpm exec playwright install                                        ║
1040:  ║                                                                         ║
1041:  ║ <3 Playwright Team                                                      ║
1042:  ╚═════════════════════════════════════════════════════════════════════════╝
1043:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1044:  test-results/audit-logs-Web-Admin---Aud-bd280-navigate-to-audit-logs-page-chromium-retry1/trace.zip
1045:  Usage:
1046:  pnpm exec playwright show-trace test-results/audit-logs-Web-Admin---Aud-bd280-navigate-to-audit-logs-page-chromium-retry1/trace.zip
1047:  ────────────────────────────────────────────────────────────────────────────────────────────────
1048:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1049:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1050:  ╔═════════════════════════════════════════════════════════════════════════╗
1051:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1052:  ║ Please run the following command to download new browsers:              ║
1053:  ║                                                                         ║
1054:  ║     pnpm exec playwright install                                        ║
1055:  ║                                                                         ║
1056:  ║ <3 Playwright Team                                                      ║
1057:  ╚═════════════════════════════════════════════════════════════════════════╝
1058:  7) [chromium] › apps/web/e2e/carousels.spec.ts:87:7 › Web Admin - Carousel Management › runs deterministic activate/pause/duplicate/delete lifecycle 
1059:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1060:  ╔═════════════════════════════════════════════════════════════════════════╗
1061:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1062:  ║ Please run the following command to download new browsers:              ║
1063:  ║                                                                         ║
1064:  ║     pnpm exec playwright install                                        ║
1065:  ║                                                                         ║
1066:  ║ <3 Playwright Team                                                      ║
1067:  ╚═════════════════════════════════════════════════════════════════════════╝
1068:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1069:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1070:  ╔═════════════════════════════════════════════════════════════════════════╗
1071:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1072:  ║ Please run the following command to download new browsers:              ║
1073:  ║                                                                         ║
1074:  ║     pnpm exec playwright install                                        ║
1075:  ║                                                                         ║
1076:  ║ <3 Playwright Team                                                      ║
1077:  ╚═════════════════════════════════════════════════════════════════════════╝
1078:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1079:  test-results/carousels-Web-Admin---Caro-e46cf--duplicate-delete-lifecycle-chromium-retry1/trace.zip
1080:  Usage:
1081:  pnpm exec playwright show-trace test-results/carousels-Web-Admin---Caro-e46cf--duplicate-delete-lifecycle-chromium-retry1/trace.zip
1082:  ────────────────────────────────────────────────────────────────────────────────────────────────
1083:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1084:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1085:  ╔═════════════════════════════════════════════════════════════════════════╗
1086:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1087:  ║ Please run the following command to download new browsers:              ║
1088:  ║                                                                         ║
1089:  ║     pnpm exec playwright install                                        ║
1090:  ║                                                                         ║
1091:  ║ <3 Playwright Team                                                      ║
1092:  ╚═════════════════════════════════════════════════════════════════════════╝
1093:  8) [chromium] › apps/web/e2e/chat.spec.ts:153:9 › Inbox chat responsiveness › chat controls remain usable on desktop viewport 
1094:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1095:  ╔═════════════════════════════════════════════════════════════════════════╗
1096:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1097:  ║ Please run the following command to download new browsers:              ║
1098:  ║                                                                         ║
1099:  ║     pnpm exec playwright install                                        ║
1100:  ║                                                                         ║
1101:  ║ <3 Playwright Team                                                      ║
1102:  ╚═════════════════════════════════════════════════════════════════════════╝
1103:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1104:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1105:  ╔═════════════════════════════════════════════════════════════════════════╗
1106:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1107:  ║ Please run the following command to download new browsers:              ║
1108:  ║                                                                         ║
1109:  ║     pnpm exec playwright install                                        ║
1110:  ║                                                                         ║
1111:  ║ <3 Playwright Team                                                      ║
1112:  ╚═════════════════════════════════════════════════════════════════════════╝
1113:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1114:  test-results/chat-Inbox-chat-responsive-e3ec2--usable-on-desktop-viewport-chromium-retry1/trace.zip
1115:  Usage:
1116:  pnpm exec playwright show-trace test-results/chat-Inbox-chat-responsive-e3ec2--usable-on-desktop-viewport-chromium-retry1/trace.zip
1117:  ────────────────────────────────────────────────────────────────────────────────────────────────
1118:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1119:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1120:  ╔═════════════════════════════════════════════════════════════════════════╗
1121:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1122:  ║ Please run the following command to download new browsers:              ║
1123:  ║                                                                         ║
1124:  ║     pnpm exec playwright install                                        ║
1125:  ║                                                                         ║
1126:  ║ <3 Playwright Team                                                      ║
1127:  ╚═════════════════════════════════════════════════════════════════════════╝
1128:  9) [chromium] › apps/web/e2e/csat.spec.ts:137:9 › CSAT deterministic lifecycle › shows CSAT prompt interaction on desktop viewport 
1129:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1130:  ╔═════════════════════════════════════════════════════════════════════════╗
1131:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1132:  ║ Please run the following command to download new browsers:              ║
1133:  ║                                                                         ║
1134:  ║     pnpm exec playwright install                                        ║
1135:  ║                                                                         ║
1136:  ║ <3 Playwright Team                                                      ║
1137:  ╚═════════════════════════════════════════════════════════════════════════╝
1138:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1139:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1140:  ╔═════════════════════════════════════════════════════════════════════════╗
1141:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1142:  ║ Please run the following command to download new browsers:              ║
1143:  ║                                                                         ║
1144:  ║     pnpm exec playwright install                                        ║
1145:  ║                                                                         ║
1146:  ║ <3 Playwright Team                                                      ║
1147:  ╚═════════════════════════════════════════════════════════════════════════╝
1148:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1149:  test-results/csat-CSAT-deterministic-li-f6c78-raction-on-desktop-viewport-chromium-retry1/trace.zip
1150:  Usage:
1151:  pnpm exec playwright show-trace test-results/csat-CSAT-deterministic-li-f6c78-raction-on-desktop-viewport-chromium-retry1/trace.zip
1152:  ────────────────────────────────────────────────────────────────────────────────────────────────
1153:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1154:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1155:  ╔═════════════════════════════════════════════════════════════════════════╗
1156:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1157:  ║ Please run the following command to download new browsers:              ║
1158:  ║                                                                         ║
1159:  ║     pnpm exec playwright install                                        ║
1160:  ║                                                                         ║
1161:  ║ <3 Playwright Team                                                      ║
1162:  ╚═════════════════════════════════════════════════════════════════════════╝
1163:  10) [chromium] › apps/web/e2e/help-center-import.spec.ts:22:7 › Help Center Markdown Import › imports docs folder and shows articles in help center 
1164:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1165:  ╔═════════════════════════════════════════════════════════════════════════╗
1166:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1167:  ║ Please run the following command to download new browsers:              ║
1168:  ║                                                                         ║
1169:  ║     pnpm exec playwright install                                        ║
1170:  ║                                                                         ║
1171:  ║ <3 Playwright Team                                                      ║
1172:  ╚═════════════════════════════════════════════════════════════════════════╝
1173:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1174:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1175:  ╔═════════════════════════════════════════════════════════════════════════╗
1176:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1177:  ║ Please run the following command to download new browsers:              ║
1178:  ║                                                                         ║
1179:  ║     pnpm exec playwright install                                        ║
1180:  ║                                                                         ║
1181:  ║ <3 Playwright Team                                                      ║
1182:  ╚═════════════════════════════════════════════════════════════════════════╝
1183:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1184:  test-results/help-center-import-Help-Ce-36ada-ows-articles-in-help-center-chromium-retry1/trace.zip
1185:  Usage:
1186:  pnpm exec playwright show-trace test-results/help-center-import-Help-Ce-36ada-ows-articles-in-help-center-chromium-retry1/trace.zip
1187:  ────────────────────────────────────────────────────────────────────────────────────────────────
1188:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1189:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1190:  ╔═════════════════════════════════════════════════════════════════════════╗
1191:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1192:  ║ Please run the following command to download new browsers:              ║
1193:  ║                                                                         ║
1194:  ║     pnpm exec playwright install                                        ║
1195:  ║                                                                         ║
1196:  ║ <3 Playwright Team                                                      ║
1197:  ╚═════════════════════════════════════════════════════════════════════════╝
1198:  11) [chromium] › apps/web/e2e/home-settings.spec.ts:74:7 › Web Admin - Home Settings › should load home settings section on settings page 
1199:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1200:  ╔═════════════════════════════════════════════════════════════════════════╗
1201:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1202:  ║ Please run the following command to download new browsers:              ║
1203:  ║                                                                         ║
1204:  ║     pnpm exec playwright install                                        ║
1205:  ║                                                                         ║
1206:  ║ <3 Playwright Team                                                      ║
1207:  ╚═════════════════════════════════════════════════════════════════════════╝
1208:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1209:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1210:  ╔═════════════════════════════════════════════════════════════════════════╗
1211:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1212:  ║ Please run the following command to download new browsers:              ║
1213:  ║                                                                         ║
1214:  ║     pnpm exec playwright install                                        ║
1215:  ║                                                                         ║
1216:  ║ <3 Playwright Team                                                      ║
1217:  ╚═════════════════════════════════════════════════════════════════════════╝
1218:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1219:  test-results/home-settings-Web-Admin----e53d4-gs-section-on-settings-page-chromium-retry1/trace.zip
1220:  Usage:
1221:  pnpm exec playwright show-trace test-results/home-settings-Web-Admin----e53d4-gs-section-on-settings-page-chromium-retry1/trace.zip
1222:  ────────────────────────────────────────────────────────────────────────────────────────────────
1223:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1224:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1225:  ╔═════════════════════════════════════════════════════════════════════════╗
1226:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1227:  ║ Please run the following command to download new browsers:              ║
1228:  ║                                                                         ║
1229:  ║     pnpm exec playwright install                                        ║
1230:  ║                                                                         ║
1231:  ║ <3 Playwright Team                                                      ║
1232:  ╚═════════════════════════════════════════════════════════════════════════╝
1233:  12) [chromium] › apps/web/e2e/home-settings.spec.ts:79:7 › Web Admin - Home Settings › should toggle home enabled/disabled 
1234:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1235:  ╔═════════════════════════════════════════════════════════════════════════╗
1236:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1237:  ║ Please run the following command to download new browsers:              ║
1238:  ║                                                                         ║
1239:  ║     pnpm exec playwright install                                        ║
1240:  ║                                                                         ║
1241:  ║ <3 Playwright Team                                                      ║
1242:  ╚═════════════════════════════════════════════════════════════════════════╝
1243:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1244:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1245:  ╔═════════════════════════════════════════════════════════════════════════╗
1246:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1247:  ║ Please run the following command to download new browsers:              ║
1248:  ║                                                                         ║
1249:  ║     pnpm exec playwright install                                        ║
1250:  ║                                                                         ║
1251:  ║ <3 Playwright Team                                                      ║
1252:  ╚═════════════════════════════════════════════════════════════════════════╝
1253:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1254:  test-results/home-settings-Web-Admin----2a5d3-oggle-home-enabled-disabled-chromium-retry1/trace.zip
1255:  Usage:
1256:  pnpm exec playwright show-trace test-results/home-settings-Web-Admin----2a5d3-oggle-home-enabled-disabled-chromium-retry1/trace.zip
1257:  ────────────────────────────────────────────────────────────────────────────────────────────────
1258:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1259:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1260:  ╔═════════════════════════════════════════════════════════════════════════╗
1261:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1262:  ║ Please run the following command to download new browsers:              ║
1263:  ║                                                                         ║
1264:  ║     pnpm exec playwright install                                        ║
1265:  ║                                                                         ║
1266:  ║ <3 Playwright Team                                                      ║
1267:  ╚═════════════════════════════════════════════════════════════════════════╝
1268:  13) [chromium] › apps/web/e2e/home-settings.spec.ts:86:7 › Web Admin - Home Settings › should add a card to home configuration 
1269:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1270:  ╔═════════════════════════════════════════════════════════════════════════╗
1271:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1272:  ║ Please run the following command to download new browsers:              ║
1273:  ║                                                                         ║
1274:  ║     pnpm exec playwright install                                        ║
1275:  ║                                                                         ║
1276:  ║ <3 Playwright Team                                                      ║
1277:  ╚═════════════════════════════════════════════════════════════════════════╝
1278:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1279:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1280:  ╔═════════════════════════════════════════════════════════════════════════╗
1281:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1282:  ║ Please run the following command to download new browsers:              ║
1283:  ║                                                                         ║
1284:  ║     pnpm exec playwright install                                        ║
1285:  ║                                                                         ║
1286:  ║ <3 Playwright Team                                                      ║
1287:  ╚═════════════════════════════════════════════════════════════════════════╝
1288:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1289:  test-results/home-settings-Web-Admin----50ca2--card-to-home-configuration-chromium-retry1/trace.zip
1290:  Usage:
1291:  pnpm exec playwright show-trace test-results/home-settings-Web-Admin----50ca2--card-to-home-configuration-chromium-retry1/trace.zip
1292:  ────────────────────────────────────────────────────────────────────────────────────────────────
1293:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1294:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1295:  ╔═════════════════════════════════════════════════════════════════════════╗
1296:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1297:  ║ Please run the following command to download new browsers:              ║
1298:  ║                                                                         ║
1299:  ║     pnpm exec playwright install                                        ║
1300:  ║                                                                         ║
1301:  ║ <3 Playwright Team                                                      ║
1302:  ╚═════════════════════════════════════════════════════════════════════════╝
1303:  14) [chromium] › apps/web/e2e/home-settings.spec.ts:106:7 › Web Admin - Home Settings › should change card visibility setting 
1304:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1305:  ╔═════════════════════════════════════════════════════════════════════════╗
1306:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1307:  ║ Please run the following command to download new browsers:              ║
1308:  ║                                                                         ║
1309:  ║     pnpm exec playwright install                                        ║
1310:  ║                                                                         ║
1311:  ║ <3 Playwright Team                                                      ║
1312:  ╚═════════════════════════════════════════════════════════════════════════╝
1313:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1314:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1315:  ╔═════════════════════════════════════════════════════════════════════════╗
1316:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1317:  ║ Please run the following command to download new browsers:              ║
1318:  ║                                                                         ║
1319:  ║     pnpm exec playwright install                                        ║
1320:  ║                                                                         ║
1321:  ║ <3 Playwright Team                                                      ║
1322:  ╚═════════════════════════════════════════════════════════════════════════╝
1323:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1324:  test-results/home-settings-Web-Admin----43b05-nge-card-visibility-setting-chromium-retry1/trace.zip
1325:  Usage:
1326:  pnpm exec playwright show-trace test-results/home-settings-Web-Admin----43b05-nge-card-visibility-setting-chromium-retry1/trace.zip
1327:  ────────────────────────────────────────────────────────────────────────────────────────────────
1328:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1329:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1330:  ╔═════════════════════════════════════════════════════════════════════════╗
1331:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1332:  ║ Please run the following command to download new browsers:              ║
1333:  ║                                                                         ║
1334:  ║     pnpm exec playwright install                                        ║
1335:  ║                                                                         ║
1336:  ║ <3 Playwright Team                                                      ║
1337:  ╚═════════════════════════════════════════════════════════════════════════╝
1338:  15) [chromium] › apps/web/e2e/home-settings.spec.ts:123:7 › Web Admin - Home Settings › should save home settings 
1339:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1340:  ╔═════════════════════════════════════════════════════════════════════════╗
1341:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1342:  ║ Please run the following command to download new browsers:              ║
1343:  ║                                                                         ║
1344:  ║     pnpm exec playwright install                                        ║
1345:  ║                                                                         ║
1346:  ║ <3 Playwright Team                                                      ║
1347:  ╚═════════════════════════════════════════════════════════════════════════╝
1348:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1349:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1350:  ╔═════════════════════════════════════════════════════════════════════════╗
1351:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1352:  ║ Please run the following command to download new browsers:              ║
1353:  ║                                                                         ║
1354:  ║     pnpm exec playwright install                                        ║
1355:  ║                                                                         ║
1356:  ║ <3 Playwright Team                                                      ║
1357:  ╚═════════════════════════════════════════════════════════════════════════╝
1358:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1359:  test-results/home-settings-Web-Admin----ee8d0-s-should-save-home-settings-chromium-retry1/trace.zip
1360:  Usage:
1361:  pnpm exec playwright show-trace test-results/home-settings-Web-Admin----ee8d0-s-should-save-home-settings-chromium-retry1/trace.zip
1362:  ────────────────────────────────────────────────────────────────────────────────────────────────
1363:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1364:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1365:  ╔═════════════════════════════════════════════════════════════════════════╗
1366:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1367:  ║ Please run the following command to download new browsers:              ║
1368:  ║                                                                         ║
1369:  ║     pnpm exec playwright install                                        ║
1370:  ║                                                                         ║
1371:  ║ <3 Playwright Team                                                      ║
1372:  ╚═════════════════════════════════════════════════════════════════════════╝
1373:  16) [chromium] › apps/web/e2e/home-settings.spec.ts:139:7 › Web Admin - Home Settings › should show home preview when cards are added 
1374:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1375:  ╔═════════════════════════════════════════════════════════════════════════╗
1376:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1377:  ║ Please run the following command to download new browsers:              ║
1378:  ║                                                                         ║
1379:  ║     pnpm exec playwright install                                        ║
1380:  ║                                                                         ║
1381:  ║ <3 Playwright Team                                                      ║
1382:  ╚═════════════════════════════════════════════════════════════════════════╝
1383:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1384:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1385:  ╔═════════════════════════════════════════════════════════════════════════╗
1386:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1387:  ║ Please run the following command to download new browsers:              ║
1388:  ║                                                                         ║
1389:  ║     pnpm exec playwright install                                        ║
1390:  ║                                                                         ║
1391:  ║ <3 Playwright Team                                                      ║
1392:  ╚═════════════════════════════════════════════════════════════════════════╝
1393:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1394:  test-results/home-settings-Web-Admin----e0e23-review-when-cards-are-added-chromium-retry1/trace.zip
1395:  Usage:
1396:  pnpm exec playwright show-trace test-results/home-settings-Web-Admin----e0e23-review-when-cards-are-added-chromium-retry1/trace.zip
1397:  ────────────────────────────────────────────────────────────────────────────────────────────────
1398:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1399:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1400:  ╔═════════════════════════════════════════════════════════════════════════╗
1401:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1402:  ║ Please run the following command to download new browsers:              ║
1403:  ║                                                                         ║
1404:  ║     pnpm exec playwright install                                        ║
1405:  ║                                                                         ║
1406:  ║ <3 Playwright Team                                                      ║
1407:  ╚═════════════════════════════════════════════════════════════════════════╝
1408:  17) [chromium] › apps/web/e2e/identity-verification.spec.ts:8:7 › Identity Verification Flow › should display security settings section 
1409:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1410:  ╔═════════════════════════════════════════════════════════════════════════╗
1411:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1412:  ║ Please run the following command to download new browsers:              ║
1413:  ║                                                                         ║
1414:  ║     pnpm exec playwright install                                        ║
1415:  ║                                                                         ║
1416:  ║ <3 Playwright Team                                                      ║
1417:  ╚═════════════════════════════════════════════════════════════════════════╝
1418:  Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
1419:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1420:  ╔═════════════════════════════════════════════════════════════════════════╗
1421:  ║ Looks like Playwright Test or Playwright was just installed or updated. ║
1422:  ║ Please run the following command to download new browsers:              ║
1423:  ║                                                                         ║
1424:  ║     pnpm exec playwright install                                        ║
1425:  ║                                                                         ║
1426:  ║ <3 Playwright Team                                                      ║
1427:  ╚═════════════════════════════════════════════════════════════════════════╝
1428:  attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
1429:  test-results/identity-verification-Iden-98297-y-security-settings-section-chromium-retry1/trace.zip
1430:  Usage:
1431:  pnpm exec playwright show-trace test-results/identity-verification-Iden-98297-y-security-settings-section-chromium-retry1/trace.zip
1432:  ────────────────────────────────────────────────────────────────────────────────────────────────
1433:  Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
1434:  Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
1435:  ╔═════════════════════════════════════════════════...

@djanogly djanogly merged commit 21248b2 into dev Mar 11, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants