Skip to content

[Bug] Fork 后第二次对话报错:找不到 Session ID。与Claude SDK相关 #176

@yhhtom

Description

@yhhtom

复现步骤

  1. 用Agent模式进行至少一次对话
  2. fork当前对话
  3. fork中第一次对话正常
  4. 对于 Proma 0.8.0 ,第二次会报错:
    执行错误 Claude Code returned an error result: No conversation found with session ID: ff21a4d3-67f9-468f-b6e9-4a8c38a3ddcc
    第三次对话恢复正常(触发了上下文回填)
  5. 对于 Proma 0.8.1 ,第二次会触发新版重试逻辑 Session 已失效,切换到上下文回填模式 然后能够正常回答

环境

Windows 11
Node.js v24.14.0

分析

Proma在fork时会为fork agent创造一个新的cwd,但是claude agent sdk的fork本身不兼容这个功能, sdk会把fork的session放在原对话的路径中:
~\.proma\sdk-config\projects\<origin_cwd>\ff21a4d3-67f9-468f-b6e9-4a8c38a3ddcc.jsonl
当fork agent试图resume时,传入接口的是<fork_cwd>,所以claude code sdk会在
~\.proma\sdk-config\projects\<fork_cwd>\
中搜索session文件,自然是找不到的,所以就报错了。
目前的上下文回填机制虽然能用,这个bug还是让体验很不舒服,而且回填貌似只有20条。

/** 最大回填消息条数 */
const MAX_CONTEXT_MESSAGES = 20

#164 提到的问题应该是相似的原因。

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