GCWing / GCWing/OpenBitFun

[Bug]: queued chat messages fail visibly when the session turns busy during queue drain

Offen
#2,660 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
2.3k
Forks
231
Ø Merge
2 Std. 46 Min.
Gemergte PRs (30 T.)
577

Beschreibung

## Summary

When startTurn finds the state machine non-IDLE it throws "Session is still busy finishing the previous turn..."; sendMessage surfaces this as a "Thinking process error" toast and drainPendingQueue marks the queued item failed, even though the situation is transient (the session was revived busy after the drain gate confirmed IDLE). The thrown error is now tagged isSessionBusy; sendMessage drops the optimistic turn and re-throws without toasting, and drainPendingQueue silently re-queues the item so auto-drain reapplies once the session returns to IDLE. Includes a regression test for the silent re-queue path.

## Area

src/web-ui/src/flow_chat/session-drivers/local/LocalSessionDriver.ts + src/web-ui/src/flow_chat/services/flow-chat-manager/MessageModule.ts (+ MessageModule.test.ts).

## Reproduction or evidence

At 32f2427697, LocalSessionDriver.ts :372 throws the still-busy error without any marker, MessageModule.ts :613 marks drained items failed, and :484 shows the error toast; there is no isSessionBusy symbol anywhere in the flow_chat tree (Grep zero hits). Regression test asserts the queued item is re-queued (not failed), no toast is shown, and the item is not removed.

## Environment

All platforms (frontend queue/driver); baseline 32f2427697.

---
AI-assisted change. Testing: verified locally (`pnpm vitest run MessageModule.test.ts` 27 passed, 0 failed, including the new regression case; `pnpm run type-check` (tsc --noEmit) exit 0 with no errors).

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start in src/web-ui/src/flow_chat/session-drivers/local/LocalSessionDriver.ts and src/web-ui/src/flow_chat/services/flow-chat-manager/MessageModule.ts, following startTurn, sendMessage, and drainPendingQueue. Run pnpm vitest run MessageModule.test.ts and verify that a transient busy condition re-queues the item without a toast or removal, while pnpm run type-check passes.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
frontend, testing
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Aktiv
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
82/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.