Deduplicate partial streamed narration in process history
Why: A dropped delta batch can leave a short event prefix next to the complete saved message. Evidence: 271 frontend unit tests, build, and 14 isolated browser scenarios. Impact: Suppress overlapping partial replay text and thinking while retaining saved content. Refs: Agent-System-Dev feature/work-companion-visibility UI1
This commit is contained in:
@@ -135,6 +135,14 @@ it('enriches saved process without losing retry notes or parsed inline thinking'
|
||||
expect(merged.filter(part => part.type === 'tool_call')).toHaveLength(1)
|
||||
})
|
||||
|
||||
it('does not repeat a partial event delta beside the complete saved narration', () => {
|
||||
const saved = [p({ type: 'text', process: true, text: '开始读取材料' }),
|
||||
p({ type: 'tool_call', process: true, toolCall: { id: 'call-1', name: 'fs_read_file' } })]
|
||||
const replayed = [p({ type: 'text', process: true, text: '开始读取' }),
|
||||
p({ type: 'tool_call', process: true, toolCall: { id: 'call-1', name: 'fs_read_file' } })]
|
||||
expect(mergeProcessTimeline(saved, replayed, []).map(part => part.text).filter(Boolean)).toEqual(['开始读取材料'])
|
||||
})
|
||||
|
||||
describe('artifact ids in reply text', () => {
|
||||
it('extracts unique ids in order', () => {
|
||||
expect(artifactIdsIn('见 art_0123456789ab 和 `art_abcdefabcdef`,再提 art_0123456789ab'))
|
||||
|
||||
Reference in New Issue
Block a user