Skip to content

[Bug]: No way to send a follow-up mid-turn on mobile viewports — send button is replaced by stop and Enter-to-send is disabled below sm #4775

Description

@AMohamedAakhil

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/web

Steps to reproduce

No phone required — the trigger is viewport width, not touch.

  1. Open a thread in the web UI and narrow the window below the sm breakpoint (< 640px), or open it on a phone.
  2. Send a prompt so the turn starts running.
  3. Type a follow-up in the composer while the turn is still running.
  4. Try to send it.

Expected behavior

The follow-up can be sent, the same as on a desktop viewport where pressing Enter mid-run submits it.

Actual behavior

There is no way to submit. The composer's primary action is replaced by the stop button while the turn runs, and Enter-to-send is disabled on mobile viewports, so the message can only be sent after the turn ends.

Root cause

The two guards overlap, leaving no send path below sm:

  • apps/web/src/components/chat/ComposerPrimaryActions.tsxif (isRunning) returns only the stop button, replacing the submit button entirely.
  • apps/web/src/composer-logic.tsshouldSubmitComposerOnEnter returns !isMobileViewport && !shiftKey, so Enter never submits below sm.

Sending mid-run is otherwise fully supported: onSend in ChatView.tsx has no isRunning guard, and isSendBusy is activeLocalDispatch !== null rather than the turn state. Desktop reaches that path via Enter; mobile has no path to it at all. So this is a missing affordance on one viewport, not a missing capability.

Notes

I have a small patch for this (one prop, rendering send next to stop while running when the composer has content; desktop unchanged) and am happy to open a PR if you want it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions