需求:qodercli 支持 session resume <session-id> 的能力

背景:与 qoder IDE 不同,命令行的 qodercli 模式中,session 一旦关闭,很难找回。这意味着需要重新输入上下文信息,给用户增加了不必要的开销。

方案: session 在本地有一份存储:~/.qoder/projects/{project-name}/{session-id}-session.json,可据此增加 qodercli resume 的能力,比如:

╭────────────────────────────────────────────────────────╮
│ ✦ Welcome to Qoder CLI! 0.1.31                         │
│                                                        │
│ cwd: /Users/levi/.qoder/projects/-Users-levi-tmp       │
╰────────────────────────────────────────────────────────╯

 Tips for getting started:

 1. Ask questions, edit files, or run commands.
 2. Be specific for the best results.
 3. Type /help for more information.

> 查看 /Users/levi/.qoder/projects/-Users-levi-tmp/c4db9988-1478-4cec-968a-dd4aa079cff1-session.json 和 c4db9988-1478-4cec-968a-dd4aa079cff1.jsonl,并接着回答问题

● 我来读取这两个文件的内容。

● Read (/Users/levi/.qoder/projects/-Users-levi-tmp/c4db9988-1478-4cec-968a-dd4aa079cff1-session.json)
  ⎿ Read 1 lines.

● Read (/Users/levi/.qoder/projects/-Users-levi-tmp/c4db9988-1478-4cec-968a-dd4aa079cff1.jsonl)
  ⎿ Read 12 lines.

● 根据读取的文件内容,我可以看到这两个文件的信息:

  文件内容分析
  1. session.json 文件
  这是一个会话元数据文件,包含:

  - 会话 ID: c4db9988-1478-4cec-968a-dd4aa079cff1
  - 创建时间: 1773731404924 (时间戳)
  - 更新时间: 1773731519631
  - 工作目录: /Users/levi/tmp
  - 消息计数: 0
  - Token 统计: prompt_tokens: 0, completion_tokens: 0
  - 模型调用次数: 4 次

  2. jsonl 文件
  这是会话的对话记录文件,按行存储 JSON 对象。根据记录显示,这个会话是之前用户询问 "qodercli 的 session 保存在哪个文件地址?" 的完整对话历史。

  对话流程:

  1. 用户提问 session 保存位置
  2. Assistant 执行了多个 Bash 命令查找相关文件
  3. 最终定位到 session 文件保存在:~/.qoder/projects/<project-name>/<session-id>-session.json
  --------
  您想让我接着回答什么问题? 请告诉我您需要了解的具体内容。