hermes-agent/ui-tui/src/app
Brooklyn Nicholson bedbeebbc8 feat(tui): interleave tool rows into live assistant turns
Live turn rendering used to show the streaming assistant text as one
blob with tool calls pooled in a separate section below, so the live
view drifted from the reload view (which threads tool rows inline via
toTranscriptMessages). Model now mirrors reload:

- turnStore gains streamSegments (completed assistant chunks, each
  with any tool rows that landed between its predecessor and itself)
  and streamPendingTools (tool rows waiting for the next chunk)
- turnController.flushStreamingSegment() seals the current bufRef into
  a segment when a new tool.start fires; pending tools get attached to
  that next chunk so order matches reload hydration
- recordMessageComplete returns finalMessages instead of one payload,
  so appendMessage gets the same shape for live-ending turns as for
  reloaded ones
- appLayout renders segments before the progress/streaming area, and
  the streaming message + pending-tools fallback carry whatever tools
  arrived after the last assistant chunk
2026-04-17 11:33:29 -05:00
..
slash feat(tui): /model and /setup slash commands with in-place CLI handoff 2026-04-17 10:58:18 -05:00
createGatewayEventHandler.ts feat(tui): interleave tool rows into live assistant turns 2026-04-17 11:33:29 -05:00
createSlashHandler.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
gatewayContext.tsx feat: add inline token count etc and fix venv 2026-04-15 10:20:56 -05:00
interfaces.ts feat(tui): interleave tool rows into live assistant turns 2026-04-17 11:33:29 -05:00
overlayStore.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
setupHandoff.ts feat(tui): /model and /setup slash commands with in-place CLI handoff 2026-04-17 10:58:18 -05:00
turnController.ts feat(tui): interleave tool rows into live assistant turns 2026-04-17 11:33:29 -05:00
turnStore.ts feat(tui): interleave tool rows into live assistant turns 2026-04-17 11:33:29 -05:00
uiStore.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
useComposerState.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
useConfigSync.ts fix(tui): approval flow + input ergonomics + selection perf 2026-04-17 10:37:48 -05:00
useInputHandlers.ts fix(tui): approval flow + input ergonomics + selection perf 2026-04-17 10:37:48 -05:00
useLongRunToolCharms.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
useMainApp.ts feat(tui): interleave tool rows into live assistant turns 2026-04-17 11:33:29 -05:00
useSessionLifecycle.ts fix(tui): tighten /resume render, follow-up to 42721dbe 2026-04-17 11:33:14 -05:00
useSubmission.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00