calm-artist-7206
10/07/2026, 11:30 AMfresh-machine-37269
10/07/2026, 11:30 AMfresh-machine-37269
10/07/2026, 11:36 AMtests/e2e/mock-llm/files/mock-llm-files-and-git.spec.ts. Step 4's "Commits isn't inline, so fall back to the tabs menu" branch used a bare getByTestId("ellipsis-button"), but three elements carry that id on a conversation route (sidebar card's "More options", chat title's "More options", and the tab pane's "Customize tabs"), so strict mode failed.
Why it's correct:
⢠EllipsisButton defaults to data-testid="ellipsis-button", confirmed at ellipsis-button.tsx:45, with the title (conversation-name.tsx:173) and card (conversation-card-actions.tsx) both using the default ā that's the three-way collision the PR describes.
⢠Scoping to tabs-pane-header ā ellipsis-button resolves to exactly one trigger: that test id wraps ConversationTabs in both render sites (conversation-main.tsx:123, conversation-mobile-panel-page.tsx:62), and the component renders a single EllipsisButton.
⢠conversation-tabs-menu-open-commits only comes from ConversationTabsContextMenu, so the second click still lands on the right item ā and leaving it unscoped is right, since the portaled menu sits outside tabs-pane-header.
⢠Test-only change; no src/ touched, so no Agent Server/eval concerns. test-and-build (ubuntu) ā the required check ā is green on the head (live-e2e is skipped on PRs by design). main has moved ahead, but the ruleset doesn't require strict up-to-date branches, so no rebase needed.
I noted two non-blocking points: the direct mock-llm-e2e run is local rather than CI-attached (a maintainer can optionally dispatch it), and the two unused-request ESLint errors on lines 79/142 are pre-existing on main.
One heads-up: approving triggered the repo's PR Artifacts cleanup, so the .pr/ before/after images will be removed from the branch.