Skip to content

[Bug] Codex 导入会话未读取 session_index.jsonl 中的真实名称 #457

Description

@isCopyman

问题描述

从 Codex Desktop / Codex CLI 导入会话后,CodeG 左侧列表经常显示会话的第一条用户 prompt,而不是 Codex 中已经显示或手动设置的会话名称。

这会造成同一个工作区下大量长 prompt 直接成为标题,即使这些会话在 Codex 中已有简短、可识别的名称。

原因定位

当前 Codex 解析器会:

  • 读取 rollout 内的 thread_name_updated
  • 如果没有该事件,则回退到第一条有效用户消息。

但 Codex Desktop 的名称还会记录在:

~/.codex/session_index.jsonl

格式类似:

{"id":"<session-id>","thread_name":"A readable title","updated_at":"..."}

同一个 id 可能出现多次,最后一个非空 thread_name 才是当前名称。实际会出现 session_index.jsonl 已有名称、对应 rollout 中却没有 thread_name_updated 的情况,因此 CodeG 会错误回退到首个 prompt。

复现步骤

  1. 在 Codex Desktop 中创建一个会话,第一条 prompt 使用较长文本;
  2. 在 Codex 中为该会话设置一个简短名称;
  3. 确认 ~/.codex/session_index.jsonl 中存在该 id 对应的 thread_name
  4. 在 CodeG 中扫描并导入该 Codex 会话;
  5. 查看左侧会话标题。

当前行为

显示第一条用户 prompt。

期望行为

显示 Codex 中的真实会话名称。建议优先级:

  1. CodeG 内部手动重命名且 title_locked 的标题;
  2. session_index.jsonl 中该 id 最新的非空 thread_name
  3. rollout 中最新的 thread_name_updated
  4. 第一条有效用户消息。

重新扫描时应同步更新外部名称,但不能覆盖 CodeG 中已锁定的手动标题。

环境

  • CodeG: v0.24.0 / latest main
  • Agent: Codex
  • OS: Windows 11

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions