mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-13 09:01:54 +00:00
* fix(tui): delineate assistant responses from details Add a muted Response marker before assistant text when thinking/tool details are visible so reasoning and final output do not visually run together. * fix(tui): account for response separator height Keep virtual transcript estimates aligned with the new response separator and avoid allocating trimmed copies of long assistant text. * fix(tui): gate response separator estimate on details Only add response-separator height when assistant details actually render, and use a non-allocating body-text check. * fix(tui): skip empty detail height estimates Do not add virtual transcript height for assistant details when no thinking or tool detail UI will render. * fix(tui): estimate details by section visibility Pass resolved thinking/tool visibility into virtual height estimates so hidden detail sections do not reserve response-separator rows.
19 lines
929 B
TypeScript
19 lines
929 B
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { shouldShowResponseSeparator } from '../components/messageLine.js'
|
|
|
|
describe('shouldShowResponseSeparator', () => {
|
|
it('separates assistant response text from visible details', () => {
|
|
expect(shouldShowResponseSeparator({ role: 'assistant', text: 'final', thinking: 'plan' }, true)).toBe(true)
|
|
})
|
|
|
|
it('does not add a response separator without details or body text', () => {
|
|
expect(shouldShowResponseSeparator({ role: 'assistant', text: 'final' }, false)).toBe(false)
|
|
expect(shouldShowResponseSeparator({ role: 'assistant', text: ' ', thinking: 'plan' }, true)).toBe(false)
|
|
})
|
|
|
|
it('does not add response separators to non-assistant transcript rows', () => {
|
|
expect(shouldShowResponseSeparator({ role: 'user', text: 'prompt' }, true)).toBe(false)
|
|
expect(shouldShowResponseSeparator({ role: 'system', text: 'note' }, true)).toBe(false)
|
|
})
|
|
})
|