Skip to content

fix(adopt): Claude resume 列表应优先展示 customTitle #523

Description

@DeepColds

问题描述

Claude Code 会话已通过 /rename 设置自定义名称(JSONL 中的 customTitle),但 Botmux 的 /adopt 磁盘会话恢复列表不会展示该名称,而是展示首条有效用户消息,并在卡片中截断到 40 个字符。

这会导致 resume 列表出现随机初始指令或 continuation 文案,用户难以根据 Claude 中已经设置的会话名识别目标会话。

实际表现

Claude 会话名 Botmux resume 列表显示
启动沙盒 v1-ti3zfct3...
滚动更新实力 This session is being continued...
杨多项目 我现在要用codex做agent app...

原因定位

已在最新 master 核对:

  • src/services/resumable-session-discovery.ts 的 Claude-family transcript parser 只记录首条有效 user prompt;取得 cwd + title 后立即停止扫描,没有读取后续记录中的 customTitle
  • src/im/lark/card-builder.ts 构造 resume option 时,又将标题压缩到 40 个字符
  • /rename 修改 Botmux 自己的话题/会话名称,不能解决磁盘 resume 列表读取 Claude transcript 标题的问题

因此这是 Claude session discovery 的通用实现问题,不是单个 session 没有名称。

期望行为

Claude-family 磁盘会话发现应:

  1. 优先展示 transcript 中最新的有效 customTitle
  2. 没有 customTitle 时,才 fallback 到首条真实用户消息
  3. 保持现有 botmux-origin session、sidechain、slash/local command 等过滤行为

建议测试

  • customTitle 出现在首条用户消息之后时仍能被读取
  • 多次 rename 时使用最后一个有效 customTitle
  • 没有 customTitle 时保持首条真实 user prompt fallback
  • botmux-origin session 过滤不回归
  • sidechain / command-only session 行为不回归
  • 超大 JSONL user record 场景不回归

影响范围

Claude-family 共用 discovery 路径,需评估 Claude Code、Seed、Relay;Codex/TRAE rollout 和 Antigravity parser 理论上不应受影响。

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