open-swe/ui
Caroline di Vittorio 3297e799de
fix: keep chat prompt bar editable while a run streams (#1533)
* fix: keep prompt bar editable while a run streams

The follow-up submit path awaited stream.submit, which resolves only when the
run finishes. That kept the react-query mutation isPending for the whole run,
so AgentThreadView disabled the prompt bar textarea the entire time the agent
was streaming - the user saw the "queue next" placeholder but couldn't click
in or type. Fire the run without awaiting its full lifecycle (matching the
new-thread path in AgentsHome) so the input stays editable for queueing.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

* refactor(ui): guard double-submit internally instead of via disabled prop

Stop threading a run-lifecycle signal (the send mutation's isPending) into the
prompt bar to gate the input. Instead, the prompt bar owns a synchronous
double-submit guard (submittingRef) plus a short-lived isSubmitting state
scoped to the in-flight send. The textarea now stays editable while a run
streams (so follow-ups can be queued), and onSubmit is awaitable so the guard
tracks the actual send request rather than the run.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

* fix(ui): surface failed run-start instead of leaving thread running

When stream.submit rejects (e.g. 401 expired token or 409 active-run
race), the fire-and-forget catch was a no-op while onSuccess had already
optimistically set status: running, leaving the thread stuck in a busy
state with no surfaced error. Clear the busy state and mark the thread
errored on submit failure.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Johannes du Plessis <51395795+johannes117@users.noreply.github.com>
2026-06-15 17:29:17 -07:00
..
assets feat: restructure Open SWE Review tab + wire create_prs (#1319) 2026-05-21 09:17:07 -07:00
public feat: PR review page (#1495) 2026-06-11 16:11:10 -07:00
src fix: keep chat prompt bar editable while a run streams (#1533) 2026-06-15 17:29:17 -07:00
.cta.json feat: open-swe dashboard for per-user profile config (#1302) 2026-05-15 11:23:53 -07:00
.gitignore feat: add right-click open trace context menu for threads (#1490) 2026-06-10 15:40:43 -07:00
.prettierignore feat: open-swe dashboard for per-user profile config (#1302) 2026-05-15 11:23:53 -07:00
.prettierrc feat: open-swe dashboard for per-user profile config (#1302) 2026-05-15 11:23:53 -07:00
bun.lock feat(open-swe): stream agent chat via @langchain/react v2 protocol (#1475) 2026-06-11 09:54:35 -07:00
components.json feat: open-swe dashboard for per-user profile config (#1302) 2026-05-15 11:23:53 -07:00
eslint.config.js feat: open-swe dashboard for per-user profile config (#1302) 2026-05-15 11:23:53 -07:00
package.json feat(open-swe): stream agent chat via @langchain/react v2 protocol (#1475) 2026-06-11 09:54:35 -07:00
README.md feat: open-swe dashboard for per-user profile config (#1302) 2026-05-15 11:23:53 -07:00
tsconfig.json feat(open-swe): stream agent chat via @langchain/react v2 protocol (#1475) 2026-06-11 09:54:35 -07:00
vercel.json chore(ui): deploy dashboard as a static SPA instead of SSR (#1395) 2026-06-03 19:56:46 +00:00
vite.config.ts feat: live reviewer eval logs on a dedicated admin page (#1527) 2026-06-15 11:29:16 -07:00
yarn.lock feat: add pierre file tree to full-screen git panel (#1487) 2026-06-10 15:13:12 -07:00

TanStack Start + shadcn/ui

This is a template for a new TanStack Start project with React, TypeScript, and shadcn/ui.

Adding components

To add components to your app, run the following command:

npx shadcn@latest add button

This will place the ui components in the components directory.

Using components

To use the components in your app, import them as follows:

import { Button } from "@/components/ui/button";