Skip to content

test(ui): wait for the selected catalog pane before checking authors - #139286

Merged
steipete merged 1 commit into
mainfrom
codex/test-catalog-pane-readiness
Sep 5, 2026
Merged

steipete merged 1 commit into
mainfrom
codex/test-catalog-pane-readiness

Conversation

@steipete

@steipete steipete commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

The external-catalog author E2E selects three retained panes that contain identical transcript text and avatar bytes. Waiting for that shared content alone does not establish that navigation reached the selected catalog.

Why This Change Was Made

Wait for the intended visible pane's session key before reading its transcript, following the existing navigateToControlUiSession readiness contract. All author, avatar, unknown-author, and Activity-link assertions remain intact. No timeout, retry, or production behavior changes.

User Impact

Test-only readiness cleanup: the checks explicitly inspect the requested external transcript.

Evidence

Related: #138900. Its original UI shard failure observed zero uploader-profile links during a Beam-to-Claude switch. The exact CI interleaving was not reproduced locally; this PR does not claim a product defect or conclusively explain that failure.

The unchanged local Riley/Morgan cases reported passes, but their runner later exited through its existing no-output watchdog. A separate browser replay against the unchanged production UI passed 30 original and 30 synchronized navigation/assertion sets under CPU throttling. Formatting and independent Codex review passed. Current-head CI remains the clean full-run gate.

Production delta: 0. Test delta: +11 lines.

@clawsweeper

clawsweeper Bot commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: XS maintainer Maintainer-authored PR labels Sep 5, 2026
@clawsweeper clawsweeper Bot added P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 5, 2026
@clawsweeper

clawsweeper Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed September 5, 2026, 2:38 PM ET / 18:38 UTC.

ClawSweeper review

What this changes

The browser test waits for the selected external transcript pane before checking author names, avatars, and profile links.

Merge readiness

✅ Ready for maintainer review

No blocking findings. This remains a useful test-readiness improvement absent from inspected main; the protected maintainer PR should proceed through ordinary validation.

Priority: P3
Reviewed head: c31fd47b7aa01b3cfd486ec767b02a109c580c89

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A focused readiness improvement with preserved assertions and appropriately bounded validation claims.
Proof confidence 🌊 off-meta tidepool Not applicable: The ordinary contributor proof gate does not apply to this MEMBER-authored test-only PR; its browser replay is supplemental and does not establish the original CI failure's cause.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: The ordinary contributor proof gate does not apply to this MEMBER-authored test-only PR; its browser replay is supplemental and does not establish the original CI failure's cause.
Evidence reviewed 8 items Introduced change and scope: The pinned introduction contains only 11 added test lines. Existing author, avatar, unknown-author, and profile-link assertions remain intact; production behavior and timeout settings are unchanged.
Existing readiness contract: navigateToControlUiSession already waits for a visible pane with the requested sessionKey. Calling that helper here would replace the sidebar interaction being exercised; retaining the click and checking the same readiness condition is appropriate.
Production pane identity: The renderer assigns both the visible-pane class and sessionKey from the selected session. Catalog routing constructs the agent-qualified key through buildCatalogSessionKey, matching the test's synthetic identifiers.
Findings None None.
Security None None.

How this fits together

The Control UI retains transcript panes while users switch sessions. This browser test supplies catalog fixtures and checks author presentation in the selected pane.

flowchart LR
  A[Catalog fixtures] --> B[Sidebar selection]
  B --> C[Retained transcript panes]
  C --> D{Selected pane visible?}
  D -->|Yes| E[Check authors and avatars]
  D -->|No| F[Wait within existing deadline]
Loading

Before merge

None.

Agent review details

Security

None.

PR surface

Tests +11. Total +11 across 1 file.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 1 11 0 +11
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 1 11 0 +11

Review metrics

Metric Value Why it matters
Production versus test growth Production 0; tests +11 All growth strengthens readiness in existing cases without adding production seams or weakening assertions.

Technical review

Best possible solution:

Keep sidebar-driven selection and wait for its pane identity before applying the existing presentation assertions.

Do we have a high-confidence way to reproduce the issue?

No high-confidence reproduction of the original CI failure is established; the author explicitly reports unsuccessful reproduction, although source confirms shared content cannot identify the selected catalog.

Is this the best way to solve the issue?

Yes, for the stated readiness cleanup: the predicate follows the existing navigation contract while preserving the sidebar click and all behavioral assertions.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against be344135ef47.

Labels

Label changes:

  • add P3: This is a bounded test-readiness cleanup with no production behavior change.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The ordinary contributor proof gate does not apply to this MEMBER-authored test-only PR; its browser replay is supplemental and does not establish the original CI failure's cause.

Label justifications:

  • P3: This is a bounded test-readiness cleanup with no production behavior change.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The ordinary contributor proof gate does not apply to this MEMBER-authored test-only PR; its browser replay is supplemental and does not establish the original CI failure's cause.

Evidence

What I checked:

  • Introduced change and scope: The pinned introduction contains only 11 added test lines. Existing author, avatar, unknown-author, and profile-link assertions remain intact; production behavior and timeout settings are unchanged. (ui/src/e2e/external-session-catalogs.e2e.test.ts:103, c31fd47b7aa0)
  • Existing readiness contract: navigateToControlUiSession already waits for a visible pane with the requested sessionKey. Calling that helper here would replace the sidebar interaction being exercised; retaining the click and checking the same readiness condition is appropriate. (ui/src/test-helpers/control-ui-e2e.ts:62, c31fd47b7aa0)
  • Production pane identity: The renderer assigns both the visible-pane class and sessionKey from the selected session. Catalog routing constructs the agent-qualified key through buildCatalogSessionKey, matching the test's synthetic identifiers. (ui/src/pages/chat/chat-page-pane-render.ts:73, c31fd47b7aa0)
  • Sibling coverage and implementation boundary: The route-readiness suite checks visible pane identity after navigation. Other catalog cases use distinct transcript content or explicit owner checks. The changed scenario supplies mocked catalog responses; the codex fixture name does not invoke or depend on the Codex runtime or protocol. (ui/src/e2e/external-session-catalogs.e2e.test.ts:32, c31fd47b7aa0)
  • Playwright dependency contract: The introduced page.waitForFunction call directly depends on Playwright. Its official documentation confirms browser-context predicate evaluation, argument passing, truthy completion, and inherited timeout configuration: Playwright waitForFunction.
  • Current-main necessity: Comparison with fetched main shows this same readiness addition is still absent. No merged replacement is established by the provided related-item context. Release-tree inspection located the test in v2026.9.1, but its historical blob was unavailable; no shipped-fix claim is made. (ui/src/e2e/external-session-catalogs.e2e.test.ts:102, be344135ef47)

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@steipete
steipete merged commit 786b9a3 into main Sep 5, 2026
85 checks passed
@steipete
steipete deleted the codex/test-catalog-pane-readiness branch September 5, 2026 19:24
@steipete

steipete commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Merged via squash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui maintainer Maintainer-authored PR P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: XS status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant