Skip to content

fix(ui): fix three flaky browser tests - #3118

Merged
Charlesthebird merged 1 commit into
mainfrom
charlesthebird/composerFlake
Oct 9, 2026
Merged

Charlesthebird merged 1 commit into
mainfrom
charlesthebird/composerFlake

Conversation

@Charlesthebird

Copy link
Copy Markdown
Collaborator

🤖 written by Claude (start)

Release note

The chat message box stays in place while a conversation loads, and a long chat title's tooltip no longer blocks that chat's menu button.

Changes

Flake Fix
Composer moves when switching conversations The transcript's loading and error states fill the panel, so the composer no longer jumps up while history loads. The test waits for the loaded state instead of a fixed second.
Duplicate-chat menu click times out (Firefox) A truncated title's tooltip opened over its own row's menu button; it now lets clicks through. The test presses the menu item once it stops animating.
Agent edit saves the old template selectOption pressed options while the dropdown was still opening, which antd drops silently. It now uses pressOnce and checks the select shows the chosen value.

Testing

  1. Open a chat and hover a long, truncated conversation title in the rail, then click that row's ⋮ button: the menu opens.
  2. Switch between conversations: the message box stays put.

🤖 written by Claude (end)

🤖 Generated with Claude Code

Keep the composer in place while a conversation's history loads, let clicks
pass through the rail's title tooltip to the row menu, and wait out animating
dropdowns before pressing an option.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Nicholas Bucher <behappy54321@gmail.com>
@github-actions github-actions Bot added the bug Something isn't working label Oct 8, 2026
@Charlesthebird
Charlesthebird marked this pull request as ready for review October 8, 2026 22:25
@Charlesthebird

Copy link
Copy Markdown
Collaborator Author

Left is main, right is this PR. Rows: chat, title tooltip, history loading, history error. The chat and tooltip are unchanged. While loading or on a history error, the message box stays at the bottom instead of jumping up.

before-after

🤖 written by Claude

@EItanya
EItanya added this pull request to the merge queue Oct 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 9, 2026
@Charlesthebird
Charlesthebird added this pull request to the merge queue Oct 9, 2026
@Charlesthebird
Charlesthebird removed this pull request from the merge queue due to a manual request Oct 9, 2026
@EItanya
EItanya added this pull request to the merge queue Oct 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 9, 2026
@Charlesthebird
Charlesthebird added this pull request to the merge queue Oct 9, 2026
Merged via the queue into main with commit d0b5c72 Oct 9, 2026
31 checks passed
@Charlesthebird
Charlesthebird deleted the charlesthebird/composerFlake branch October 9, 2026 15:39
danielle-mustillo pushed a commit to danielle-mustillo/kagent that referenced this pull request Oct 9, 2026
kagent-dev#3132)

---
*🤖 written by Claude (start)*

## Release note

```release-note
A snapshot's Delete button no longer shows a tooltip over its confirmation prompt, so the whole prompt stays readable. An agent template's model field now says why its list is empty.
```

## Changes

Follows kagent-dev#3118. These flakes appeared in the last 46 CI runs (example:
[run
37946746196](https://github.com/kagent-dev/kagent/actions/runs/37946746196/job/113874864743)).

| Flake | Root cause | Fix |
| --- | --- | --- |
| `checkpoints:71` Cancel times out (~16 runs) | The Delete button's
tooltip stayed up under the pointer and covered part of its confirmation
prompt, Cancel included in CI's smaller window. | <ul><li>Removed the
tooltip, as its comment already said.</li><li>The test closes the record
with its Close button; a late row tooltip can swallow Escape.</li></ul>
|
| `agent-crud:123` twin link never appears (~8) | Leaving a new chat
before its first message sent still ran the send, and its URL cleanup
then replaced `/agents` with the chat's URL, pulling you back to the
chat. Seen on the dev server, not on a production build. | The first
message is handed over in memory, not router state, so there is no URL
cleanup. If the reader leaves before it sends, it is dropped, and Back
or reload never resend it. |
| `agent-page:43` agent link click lost (4) | Template descriptions
loaded after the table's spinner, grew the rows, and moved the link
mid-click. | The table's `loading` also waits for templates. |
| `checkpoints:197` confirm never opens (2) | Delete was clicked while
the record was still zooming in. | `pressOnce` for buttons in
just-opened dialogs. |
| `agent-templates:21` (1) | The flake hit step 13, which repeated step
11's delete check. | Removed step 13. |
|
[`questions:35`](https://github.com/kagent-dev/kagent/blob/b75511e9cfc6789fd1dff13cfe263718a952049a/ui/playwright/tests/chat/questions.spec.ts#L35)
dismiss click times out (3 of 7 Firefox flakes) | Step 7 clicked
"Discard the question" twice. One press dismisses it, so the second
waited on a detached button. | Press it once, with `pressOnce`. |
|
[`prompts:66`](https://github.com/kagent-dev/kagent/blob/26e55082697b61fb47c9a84bee628373f77c929c/ui/playwright/tests/prompts/prompts.spec.ts#L70)
times out on Firefox (1, all 3 attempts, [run
37844391857](https://github.com/kagent-dev/kagent/actions/runs/37844391857))
| Steps 4, 5, 6 and 17 reloaded the page. Each load on the dev server
costs seconds under parallel workers, which pushed the test past 60s. |
<ul><li>Those steps navigate in-app:
[4](https://github.com/kagent-dev/kagent/blob/26e55082697b61fb47c9a84bee628373f77c929c/ui/playwright/tests/prompts/prompts.spec.ts#L105),
[5](https://github.com/kagent-dev/kagent/blob/26e55082697b61fb47c9a84bee628373f77c929c/ui/playwright/tests/prompts/prompts.spec.ts#L124),
[6](https://github.com/kagent-dev/kagent/blob/26e55082697b61fb47c9a84bee628373f77c929c/ui/playwright/tests/prompts/prompts.spec.ts#L152),
[17](https://github.com/kagent-dev/kagent/blob/26e55082697b61fb47c9a84bee628373f77c929c/ui/playwright/tests/prompts/prompts.spec.ts#L415).</li><li>The
file gets [30s
more](https://github.com/kagent-dev/kagent/blob/26e55082697b61fb47c9a84bee628373f77c929c/ui/playwright/tests/prompts/prompts.spec.ts#L68).</li></ul>
|

The agent template form's [model
field](https://github.com/kagent-dev/kagent/blob/26e55082697b61fb47c9a84bee628373f77c929c/ui/src/components/agent-template-form/AgentTemplateForm.tsx#L154)
names the namespace when it has no model configurations, and reports a
failed load. Fixes kagent-dev#2941.

Cut as redundant:
- `agent-crud`'s twin test is now one step in `agent-page:43`.
- `agent-page:43` opens the page directly; `agent-chat-entry` and
`agent-page:256` own those clicks.
- `agent-crud` step 3 now runs in one case, not four.

`agent-page:256` and `agent-rail:228` each timed out once on
`page.goto`. Locally, a load takes under 1s, so this looks like the Vite
dev server starving on the runner; running the suite against a built app
would fix it.

## Testing

1. In a chat with a snapshot, add a long turn and scroll the snapshot
mark near the top.
2. Press the mark's Delete: the whole prompt shows, with no tooltip over
it.
3. Start a new chat and press Agents before the reply arrives: you stay
on Agents, and Back sends nothing.
4. Create an agent template in a namespace with no model configurations:
the model field says none were found there.

---
*🤖 written by Claude (end)*

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: Nicholas Bucher <behappy54321@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants