Skip to content

[Bug] Follow-up suggestion chips render in a broken/overlapping state when a message is sent while the response is still streaming #3395

@18062706139fcz

Description

@18062706139fcz

Describe the bug

When the assistant's response has not finished streaming yet and the user sends another message, the follow-up suggestion chips (the "To-dos" / suggested-questions row above the input box) end up in a clearly broken layout state: the suggestion chips and the stray close (X) button stay rendered and overlap awkwardly with the To-dos panel and the input box, instead of being hidden/reset.

See screenshot below — the suggested-question chips and a lone X button are left dangling between the "To-dos" panel and the input box, which does not match expectations.

Steps to reproduce

  1. Start a chat and let the assistant begin responding.
  2. Before the response finishes streaming, type and send another message.
  3. Observe the follow-up suggestion chips area above the input box.

Expected behavior

While a new turn is in progress / streaming, the previous turn's follow-up suggestion chips should be hidden (or cleared/reset), and the layout around the input box should stay clean — no leftover chips or orphaned X close button overlapping the input.

Actual behavior

The follow-up chips from the previous turn remain visible and render in a broken, overlapping layout together with a lone X button, looking misaligned against the To-dos panel and input box.

Screenshot

broken follow-up chips overlapping the input box while responding

(Reproduced in the chat workspace; chips show leftover suggested questions plus an orphaned close button above the input placeholder "今天我能为你做些什么?".)

Likely area

Frontend follow-up suggestions rendering, controlled by showFollowups in frontend/src/components/workspace/input-box.tsx:

const showFollowups =
  !disabled &&
  !isWelcomeMode &&
  !followupsHidden &&
  (followupsLoading || followups.length > 0);

showFollowups does not account for the in-progress / streaming state of the current turn, so stale follow-ups from the previous turn can stay mounted while a new message is being sent and the response is still streaming. The follow-ups fetch effect and the streaming status likely need to gate/clear the chips when a new turn starts.

Environment

  • Component: Frontend (chat workspace input box / follow-up suggestions)

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageAwaiting maintainer triage

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions