fix codex session import merge (#1123) (#1127)

修复 Codex 会话导入合并后列表为空的问题。

Fix Codex session import merge so a session is not detected as a duplicate of itself and deleted during merge.
This commit is contained in:
Himehane
2026-07-22 23:31:46 +08:00
committed by GitHub
parent 782b523fb0
commit a965b0ab21
5 changed files with 340 additions and 18 deletions
+31
View File
@@ -0,0 +1,31 @@
import { describe, expect, it } from 'vitest'
import { ListCodexSessionsRpcResponseSchema } from './apiTypes'
describe('ListCodexSessionsRpcResponseSchema', () => {
it('preserves Codex session messages when parsing runner RPC responses', () => {
const parsed = ListCodexSessionsRpcResponseSchema.parse({
success: true,
sessions: [{
id: 'codex-session-id',
title: 'Codex Session',
file: '/home/user/.codex/sessions/session.jsonl',
modifiedAt: 1_000,
messages: [{
role: 'user',
content: {
type: 'text',
text: 'hello'
},
meta: {
sentFrom: 'cli'
}
}]
}]
})
expect(parsed.success).toBe(true)
if (parsed.success) {
expect(parsed.sessions[0]?.messages).toHaveLength(1)
}
})
})
+1 -1
View File
@@ -163,7 +163,7 @@ export const ListCodexSessionsRpcRequestSchema = z.object({
})
export const ListCodexSessionsRpcResponseSchema = z.union([
z.object({ success: z.literal(true), sessions: z.array(z.union([CodexLocalSessionSummarySchema, CodexLocalSessionWithMessagesSchema])) }),
z.object({ success: z.literal(true), sessions: z.array(z.union([CodexLocalSessionWithMessagesSchema, CodexLocalSessionSummarySchema])) }),
z.object({ success: z.literal(false), error: z.string() })
])