Release version 0.16.3

This commit is contained in:
weishu
2026-03-20 12:17:35 +08:00
parent 9742522ee8
commit 32f05d99a0
5 changed files with 162 additions and 16 deletions
@@ -0,0 +1,23 @@
import { describe, expect, it } from 'vitest'
import { isClaudeChatVisibleMessage } from './chatVisibility'
describe('isClaudeChatVisibleMessage', () => {
it('hides unsupported Claude system messages from chat delivery', () => {
expect(isClaudeChatVisibleMessage({ type: 'system', subtype: 'stop_hook_summary' })).toBe(false)
expect(isClaudeChatVisibleMessage({ type: 'system', subtype: 'init' })).toBe(false)
expect(isClaudeChatVisibleMessage({ type: 'system' })).toBe(false)
})
it('keeps supported Claude system events visible', () => {
expect(isClaudeChatVisibleMessage({ type: 'system', subtype: 'turn_duration' })).toBe(true)
expect(isClaudeChatVisibleMessage({ type: 'system', subtype: 'api_error' })).toBe(true)
expect(isClaudeChatVisibleMessage({ type: 'system', subtype: 'microcompact_boundary' })).toBe(true)
expect(isClaudeChatVisibleMessage({ type: 'system', subtype: 'compact_boundary' })).toBe(true)
})
it('keeps conversation messages visible', () => {
expect(isClaudeChatVisibleMessage({ type: 'user' })).toBe(true)
expect(isClaudeChatVisibleMessage({ type: 'assistant' })).toBe(true)
expect(isClaudeChatVisibleMessage({ type: 'summary' })).toBe(true)
})
})
+16
View File
@@ -0,0 +1,16 @@
import type { RawJSONLines } from '@/claude/types'
const VISIBLE_SYSTEM_SUBTYPES = new Set([
'api_error',
'turn_duration',
'microcompact_boundary',
'compact_boundary'
])
export function isClaudeChatVisibleMessage(message: Pick<RawJSONLines, 'type'> & { subtype?: string }): boolean {
if (message.type !== 'system') {
return true
}
return typeof message.subtype === 'string' && VISIBLE_SYSTEM_SUBTYPES.has(message.subtype)
}