singularity-forge/web
Tom Boucher 3e78270cad fix: chat mode misrepresents terminal output, looks stuck, omits user messages (#3092)
Three root causes addressed:

1. PtyChatParser: user input echoed after a bare prompt line (e.g. "❯ \n"
   followed by "hello\n") was misclassified as assistant content. Added
   _awaitingInput flag that flips true on prompt boundary and classifies the
   next content line as role=user.

2. Chat mode "looks stuck": when the session is idle (connected, not
   streaming, has timeline content), no visual cue indicated GSD was waiting
   for input. Added a "Ready for your input" indicator with a pulsing dot.

3. Transcript overflow misalignment: chatUserMessages was not trimmed when
   liveTranscript/completedTurnSegments overflowed MAX_TRANSCRIPT_BLOCKS,
   causing index-based interleaving to pair user messages with wrong
   assistant responses.

Also exposed isAwaitingInput() on PtyChatParser so chat UIs can query
whether the session is waiting for user input, and widened the > and $
prompt marker regexes to match bare prompts after trimEnd strips trailing
whitespace.

Closes #2707

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 14:36:21 -06:00
..
app fix: show external drives in directory browser on Linux 2026-03-28 00:45:22 +02:00
components fix: chat mode misrepresents terminal output, looks stuck, omits user messages (#3092) 2026-03-30 14:36:21 -06:00
hooks feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
lib fix: chat mode misrepresents terminal output, looks stuck, omits user messages (#3092) 2026-03-30 14:36:21 -06:00
public feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
styles feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
.gitignore feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
components.json feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
eslint.config.mjs feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
next-env.d.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
next.config.mjs feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
package-lock.json feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
package.json feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
postcss.config.mjs feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
proxy.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
tsconfig.json feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00