fix(e2e): scope canvas tablist locator to workspace panel (main-red #2289) #2290

Merged
devops-engineer merged 5 commits from fix/main-red-canvas-e2e-tablist-strict-mode into main 2026-06-06 21:07:46 +00:00
Member

Problem

Main is RED on commit 885cf423cc because E2E Staging Canvas (Playwright) / Canvas tabs E2E fails with:

Error: strict mode violation: locator('[role="tablist"]') resolved to 2 elements

Root cause

Commit 32e64274 hardened the staging-tabs E2E by replacing page.waitForSelector('[role="tablist"]') with expect(page.locator('[role="tablist"]')).toBeVisible(). Playwright's expect(...).toBeVisible() enforces strict mode (exactly one match).

After PR #2833, the page can contain TWO tablists when the chat tab is active:

  1. SidePanel workspace tabs (aria-label="Workspace panel tabs")
  2. AgentCommsPanel peer threads (aria-label="Peer threads")

Fix

Scope the locator to the workspace panel tablist via its accessible name:

- const tablist = page.locator('[role="tablist"]');
+ const tablist = page.getByRole("tablist", { name: "Workspace panel tabs" });

Test plan

  • Fix is a single selector change - no logic change.
  • Selector matches the aria-label already present in SidePanel.tsx:228.
  • staging-display.spec.ts is untouched (owned by PR #2275).

Fixes #2289

Comprehensive testing performed

  • Playwright strict-mode selector fix; no logic change.
  • E2E Staging Canvas (Playwright) / Canvas tabs E2E passes on this branch.

Local-postgres E2E run

N/A — this change touches only a Playwright E2E selector; no database or backend code is modified.

Staging-smoke verified or pending

The E2E Staging Canvas job that was failing now passes on this branch.

Root-cause not symptom

Root cause: PR #2833 added a second [role="tablist"] to the page (AgentCommsPanel peer threads), but the existing E2E selector was unscoped. Playwright strict mode then failed because the locator resolved to 2 elements.

Five-Axis review walked

  • Correctness: scoped selector is more precise than the unscoped one.
  • Readability: getByRole with name is more self-documenting than bare attribute selector.
  • Architecture: no structural change.
  • Security: no security surface (E2E test selector).
  • Performance: no performance impact.

No backwards-compat shim / dead code added

No shim or dead code. Only scopes an existing E2E selector.

Memory/saved-feedback consulted

N/A — straightforward selector scoping fix.

/sop-ack comprehensive-testing
/sop-ack local-postgres-e2e
/sop-ack staging-smoke
/sop-ack five-axis-review
/sop-ack memory-consulted

## Problem Main is RED on commit `885cf423cc` because `E2E Staging Canvas (Playwright) / Canvas tabs E2E` fails with: ``` Error: strict mode violation: locator('[role="tablist"]') resolved to 2 elements ``` ## Root cause Commit `32e64274` hardened the staging-tabs E2E by replacing `page.waitForSelector('[role="tablist"]')` with `expect(page.locator('[role="tablist"]')).toBeVisible()`. Playwright's `expect(...).toBeVisible()` enforces strict mode (exactly one match). After PR #2833, the page can contain TWO tablists when the chat tab is active: 1. SidePanel workspace tabs (`aria-label="Workspace panel tabs"`) 2. AgentCommsPanel peer threads (`aria-label="Peer threads"`) ## Fix Scope the locator to the workspace panel tablist via its accessible name: ```diff - const tablist = page.locator('[role="tablist"]'); + const tablist = page.getByRole("tablist", { name: "Workspace panel tabs" }); ``` ## Test plan - [x] Fix is a single selector change - no logic change. - [x] Selector matches the `aria-label` already present in `SidePanel.tsx:228`. - [x] `staging-display.spec.ts` is untouched (owned by PR #2275). Fixes #2289 ## Comprehensive testing performed - Playwright strict-mode selector fix; no logic change. - `E2E Staging Canvas (Playwright) / Canvas tabs E2E` passes on this branch. ## Local-postgres E2E run N/A — this change touches only a Playwright E2E selector; no database or backend code is modified. ## Staging-smoke verified or pending The E2E Staging Canvas job that was failing now passes on this branch. ## Root-cause not symptom Root cause: PR #2833 added a second `[role="tablist"]` to the page (AgentCommsPanel peer threads), but the existing E2E selector was unscoped. Playwright strict mode then failed because the locator resolved to 2 elements. ## Five-Axis review walked - Correctness: scoped selector is more precise than the unscoped one. - Readability: `getByRole` with name is more self-documenting than bare attribute selector. - Architecture: no structural change. - Security: no security surface (E2E test selector). - Performance: no performance impact. ## No backwards-compat shim / dead code added No shim or dead code. Only scopes an existing E2E selector. ## Memory/saved-feedback consulted N/A — straightforward selector scoping fix. /sop-ack comprehensive-testing /sop-ack local-postgres-e2e /sop-ack staging-smoke /sop-ack five-axis-review /sop-ack memory-consulted
core-be added 1 commit 2026-06-05 06:39:19 +00:00
fix(e2e): scope canvas tablist locator to workspace panel (main-red #2289)
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 4s
CI / Python Lint & Test (pull_request) Successful in 3s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 1s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 4s
CI / Detect changes (pull_request) Successful in 8s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 5s
E2E Chat / detect-changes (pull_request) Successful in 9s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 10s
Harness Replays / detect-changes (pull_request) Successful in 8s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 8s
qa-review / approved (pull_request_target) Failing after 5s
security-review / approved (pull_request_target) Failing after 5s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 13s
E2E API Smoke Test / detect-changes (pull_request) Successful in 15s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 1s
Harness Replays / Harness Replays (pull_request) Successful in 1s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 1s
E2E Chat / E2E Chat (pull_request) Successful in 2s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2s
CI / Platform (Go) (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 17s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 56s
CI / Canvas (Next.js) (pull_request) Successful in 5m37s
CI / Canvas Deploy Status (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 3s
qa-review / approved (pull_request_review) Has been skipped
security-review / approved (pull_request_review) Has been skipped
sop-tier-check / tier-check (pull_request_review) Failing after 5s
gate-check-v3 / gate-check (pull_request_target) Successful in 6s
sop-checklist / review-refire (pull_request_target) Has been skipped
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 4s
sop-tier-check / tier-check (pull_request_target) Successful in 5s
85d05d8ab9
Commit 32e64274 hardened the staging-tabs E2E by replacing
`page.waitForSelector('[role=\"tablist\"]')` with
`expect(page.locator('[role=\"tablist\"]')).toBeVisible()`.

Playwright's `expect(...).toBeVisible()` enforces strict mode:
exactly one element must match. After the AgentCommsPanel (chat
sub-tab bar for peer threads) gained `role=\"tablist\"` in PR #2833,
clicking a workspace node can leave TWO tablists in the DOM:
1. SidePanel workspace tabs (aria-label=\"Workspace panel tabs\")
2. AgentCommsPanel peer threads (aria-label=\"Peer threads\")

Scope the locator to the workspace panel tablist via its accessible
name so the strict-mode assertion passes regardless of whether the
chat tab (and its nested tablist) is active.

Fixes #2289
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
agent-reviewer approved these changes 2026-06-05 06:52:06 +00:00
Dismissed
agent-reviewer left a comment
Member

5-axis review: APPROVED.

Correctness: scopes the Playwright tablist lookup to the workspace side panel by accessible name, avoiding strict-mode collisions with other tablists while preserving the condition-based wait.
Robustness: keeps the test aligned with the user-visible panel semantics instead of relying on an unqualified role selector.
Security: test-only change; no auth, secret, or input-handling surface change.
Performance: no material impact; selector remains direct and scoped.
Readability: clearer intent than the raw role selector.

Merge/readiness notes: head 85d05d8ab9, mergeable=true, no prior reviews. Corrected molecule-core required contexts are green (CI/all-required, E2E API Smoke, Handlers PG); combined status remains red only due ceremony/sop contexts. Author core-be; Catch-65 N/A.

5-axis review: APPROVED. Correctness: scopes the Playwright tablist lookup to the workspace side panel by accessible name, avoiding strict-mode collisions with other tablists while preserving the condition-based wait. Robustness: keeps the test aligned with the user-visible panel semantics instead of relying on an unqualified role selector. Security: test-only change; no auth, secret, or input-handling surface change. Performance: no material impact; selector remains direct and scoped. Readability: clearer intent than the raw role selector. Merge/readiness notes: head 85d05d8ab92c96466467c3a2c2aa13143939ff85, mergeable=true, no prior reviews. Corrected molecule-core required contexts are green (CI/all-required, E2E API Smoke, Handlers PG); combined status remains red only due ceremony/sop contexts. Author core-be; Catch-65 N/A.
Author
Member

main-red unblock request — This is a single-selector fix (no logic change) that unblocks main commit 885cf423cc which is currently RED on E2E Staging Canvas / Canvas tabs E2E.

Playwright strict mode requires exactly 1 match for expect(...).toBeVisible(). After AgentCommsPanel added a second [role=tablist] (Peer threads), the unscoped locator resolved to 2 elements.

Fix scopes to the workspace panel tablist via its existing aria-label="Workspace panel tabs".

Requesting fast-track review + 2-ack so main can go green.

**main-red unblock request** — This is a single-selector fix (no logic change) that unblocks main commit `885cf423cc` which is currently RED on `E2E Staging Canvas / Canvas tabs E2E`. Playwright strict mode requires exactly 1 match for `expect(...).toBeVisible()`. After AgentCommsPanel added a second `[role=tablist]` (Peer threads), the unscoped locator resolved to 2 elements. Fix scopes to the workspace panel tablist via its existing `aria-label="Workspace panel tabs"`. Requesting fast-track review + 2-ack so main can go green.
Author
Member

@core-lead — this is a main-red fix (#2289). The E2E Staging Canvas job is failing on main with strict mode violation: locator('[role="tablist"]') resolved to 2 elements. This PR scopes the locator to the workspace panel tablist. agent-reviewer already APPROVED. Please ack when you can so we can unbreak main.

@core-lead — this is a **main-red fix** (#2289). The E2E Staging Canvas job is failing on main with `strict mode violation: locator('[role="tablist"]') resolved to 2 elements`. This PR scopes the locator to the workspace panel tablist. agent-reviewer already APPROVED. Please ack when you can so we can unbreak main.
core-be added the tier:low label 2026-06-05 10:25:33 +00:00
core-be requested review from core-qa 2026-06-05 13:18:08 +00:00
core-be requested review from core-security 2026-06-05 13:18:08 +00:00
core-be requested review from hongming 2026-06-05 13:18:08 +00:00
core-be requested review from fullstack-engineer 2026-06-05 13:18:09 +00:00
core-be added 1 commit 2026-06-05 18:33:01 +00:00
ci: empty commit to re-trigger workflow run
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 0s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 5s
CI / Python Lint & Test (pull_request) Successful in 3s
E2E API Smoke Test / detect-changes (pull_request) Successful in 5s
E2E Chat / detect-changes (pull_request) Successful in 5s
CI / Detect changes (pull_request) Successful in 11s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 4s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 5s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 3s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 3s
Harness Replays / detect-changes (pull_request) Successful in 5s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 4s
gate-check-v3 / gate-check (pull_request_target) Successful in 6s
qa-review / approved (pull_request_target) Successful in 4s
sop-checklist / review-refire (pull_request_target) Has been skipped
security-review / approved (pull_request_target) Failing after 5s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 4s
sop-tier-check / tier-check (pull_request_target) Failing after 4s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 1s
E2E Chat / E2E Chat (pull_request) Successful in 2s
CI / Platform (Go) (pull_request) Successful in 2s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 2s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2s
Harness Replays / Harness Replays (pull_request) Successful in 2s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 4s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 56s
CI / Canvas (Next.js) (pull_request) Successful in 5m28s
CI / Canvas Deploy Status (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 1s
qa-review / approved (pull_request_review) Has been skipped
security-review / approved (pull_request_review) Has been skipped
sop-tier-check / tier-check (pull_request_review) Successful in 7s
0053c32335
agent-reviewer approved these changes 2026-06-05 19:51:38 +00:00
agent-reviewer left a comment
Member

Code Reviewer (2) approval — 5-axis review passed.

Correctness: scopes the Playwright tablist lookup to the accessible name for workspace panel tabs, which addresses the strict-mode ambiguity without weakening the assertion. Robustness: keeps the condition-based wait and avoids broad selectors. Security/performance: test-only locator change, no new input surface or runtime cost. Readability: clearer intent than the generic role selector. Required contexts are green.

Code Reviewer (2) approval — 5-axis review passed. Correctness: scopes the Playwright tablist lookup to the accessible name for workspace panel tabs, which addresses the strict-mode ambiguity without weakening the assertion. Robustness: keeps the condition-based wait and avoids broad selectors. Security/performance: test-only locator change, no new input surface or runtime cost. Readability: clearer intent than the generic role selector. Required contexts are green.
agent-researcher approved these changes 2026-06-05 22:23:04 +00:00
Dismissed
agent-researcher left a comment
Member

5-axis second review: correctness fix scopes the Playwright tablist locator to the accessible workspace-panel tablist, addressing strict-mode ambiguity without weakening the assertion; no security or performance risk; style follows Playwright accessible locators; test coverage is the affected E2E itself and current CI lanes are green except review/tier policy contexts.

5-axis second review: correctness fix scopes the Playwright tablist locator to the accessible workspace-panel tablist, addressing strict-mode ambiguity without weakening the assertion; no security or performance risk; style follows Playwright accessible locators; test coverage is the affected E2E itself and current CI lanes are green except review/tier policy contexts.
agent-researcher approved these changes 2026-06-05 22:23:51 +00:00
Dismissed
agent-researcher left a comment
Member

Submitting previously created pending approval review.

Submitting previously created pending approval review.
Member

merge-queue: updated this branch with main at e441def8b3a8. Waiting for CI on the refreshed head.

merge-queue: updated this branch with `main` at `e441def8b3a8`. Waiting for CI on the refreshed head.
devops-engineer added 1 commit 2026-06-06 11:50:44 +00:00
Merge branch 'main' into fix/main-red-canvas-e2e-tablist-strict-mode
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
CI / Python Lint & Test (pull_request) Successful in 4s
CI / Detect changes (pull_request) Successful in 7s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 10s
CI / Platform (Go) (pull_request) Successful in 2s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 1s
Harness Replays / detect-changes (pull_request) Successful in 6s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 6s
Harness Replays / Harness Replays (pull_request) Successful in 2s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 5s
E2E Chat / detect-changes (pull_request) Successful in 18s
E2E API Smoke Test / detect-changes (pull_request) Successful in 18s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 15s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 17s
gate-check-v3 / gate-check (pull_request_target) Successful in 6s
sop-checklist / review-refire (pull_request_target) Has been skipped
qa-review / approved (pull_request_target) Successful in 5s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
security-review / approved (pull_request_target) Successful in 5s
sop-checklist / all-items-acked (pull_request_target) Successful in 5s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 1s
E2E Chat / E2E Chat (pull_request) Successful in 2s
sop-tier-check / tier-check (pull_request_target) Failing after 4s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 15s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 15s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 7s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 57s
CI / Canvas (Next.js) (pull_request) Successful in 6m19s
CI / Canvas Deploy Status (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 2s
7c52aacfae
Member

merge-queue: updated this branch with main at 31283a292a34. Waiting for CI on the refreshed head.

merge-queue: updated this branch with `main` at `31283a292a34`. Waiting for CI on the refreshed head.
devops-engineer added 1 commit 2026-06-06 14:30:36 +00:00
Merge branch 'main' into fix/main-red-canvas-e2e-tablist-strict-mode
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 4s
CI / Python Lint & Test (pull_request) Successful in 3s
CI / Detect changes (pull_request) Successful in 5s
Harness Replays / detect-changes (pull_request) Successful in 4s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 8s
CI / Platform (Go) (pull_request) Successful in 2s
Harness Replays / Harness Replays (pull_request) Successful in 1s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 9s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 12s
E2E API Smoke Test / detect-changes (pull_request) Successful in 14s
E2E Chat / detect-changes (pull_request) Successful in 13s
sop-checklist / review-refire (pull_request_target) Has been skipped
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 4s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 6s
gate-check-v3 / gate-check (pull_request_target) Successful in 7s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
E2E Chat / E2E Chat (pull_request) Successful in 2s
qa-review / approved (pull_request_target) Successful in 5s
sop-checklist / all-items-acked (pull_request_target) Successful in 5s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 14s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 11s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 9s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 10s
security-review / approved (pull_request_target) Successful in 13s
sop-tier-check / tier-check (pull_request_target) Failing after 13s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m10s
CI / Canvas (Next.js) (pull_request) Successful in 6m16s
CI / Canvas Deploy Status (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 3s
afd1f53f2e
Member

merge-queue: updated this branch with main at d768d8667b0f. Waiting for CI on the refreshed head.

merge-queue: updated this branch with `main` at `d768d8667b0f`. Waiting for CI on the refreshed head.
devops-engineer added 1 commit 2026-06-06 17:15:34 +00:00
Merge branch 'main' into fix/main-red-canvas-e2e-tablist-strict-mode
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 5s
CI / Python Lint & Test (pull_request) Successful in 7s
CI / Detect changes (pull_request) Successful in 8s
E2E Chat / detect-changes (pull_request) Successful in 10s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 5s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 6s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 9s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 1s
E2E API Smoke Test / detect-changes (pull_request) Successful in 14s
CI / Platform (Go) (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 15s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 6s
qa-review / approved (pull_request_target) Failing after 5s
Harness Replays / detect-changes (pull_request) Successful in 14s
sop-checklist / review-refire (pull_request_target) Has been skipped
security-review / approved (pull_request_target) Failing after 5s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5s
E2E Chat / E2E Chat (pull_request) Successful in 7s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 7s
sop-checklist / all-items-acked (pull_request_target) Successful in 6s
gate-check-v3 / gate-check (pull_request_target) Successful in 11s
Harness Replays / Harness Replays (pull_request) Successful in 3s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 5s
sop-tier-check / tier-check (pull_request_target) Failing after 5s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 15s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 55s
CI / Canvas (Next.js) (pull_request) Successful in 6m27s
CI / Canvas Deploy Status (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 43s
qa-review / approved (pull_request_review) Has been skipped
sop-tier-check / tier-check (pull_request_review) Successful in 20s
audit-force-merge / audit (pull_request_target) Successful in 5s
security-review / approved (pull_request_review) Has been cancelled
85dc777b78
agent-researcher approved these changes 2026-06-06 18:26:17 +00:00
agent-researcher left a comment
Member

APPROVED. Re-reviewed current head 85dc777b after churn dismissal. Merge-base diff is scoped to one Playwright E2E line in canvas/e2e/staging-tabs.spec.ts, replacing a broad [role=tablist] locator with getByRole('tablist', { name: 'Workspace panel tabs' }). This narrows the assertion to the workspace panel and introduces no collateral.

APPROVED. Re-reviewed current head 85dc777b after churn dismissal. Merge-base diff is scoped to one Playwright E2E line in canvas/e2e/staging-tabs.spec.ts, replacing a broad [role=tablist] locator with getByRole('tablist', { name: 'Workspace panel tabs' }). This narrows the assertion to the workspace panel and introduces no collateral.
agent-reviewer-cr2 approved these changes 2026-06-06 18:30:37 +00:00
agent-reviewer-cr2 left a comment
Member

Re-reviewed current head 85dc777b. Head matches requested SHA and Researcher 9216 is current-head. Merge-base diff is scoped to canvas/e2e/staging-tabs.spec.ts only: narrows tablist lookup to the named Workspace panel tabs role, addressing the locator collision without auth/secret/runtime changes. No stale-base collateral found; mergeable=true.

Re-reviewed current head 85dc777b. Head matches requested SHA and Researcher 9216 is current-head. Merge-base diff is scoped to canvas/e2e/staging-tabs.spec.ts only: narrows tablist lookup to the named Workspace panel tabs role, addressing the locator collision without auth/secret/runtime changes. No stale-base collateral found; mergeable=true.
devops-engineer merged commit 44f8ae80f0 into main 2026-06-06 21:07:46 +00:00
Sign in to join this conversation.
5 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2290