Skip to content

feat(cli): 支持通过 --resume 参数恢复会话#194

Merged
qorzj merged 11 commits into
lessweb:mainfrom
hqwlkj:main
Jun 25, 2026
Merged

feat(cli): 支持通过 --resume 参数恢复会话#194
qorzj merged 11 commits into
lessweb:mainfrom
hqwlkj:main

Conversation

@hqwlkj

@hqwlkj hqwlkj commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 在 cli.tsx 中解析并传递 --resume 参数,支持无 ID 列出会话选择
  • 新增构建退出摘要时显示 resume 会话提示的逻辑
  • 抽离 cli 参数解析函数,支持提取初始提示和恢复会话 ID
  • 修复退出摘要文本,添加 resume 使用提示,提升用户体验

Related Issues

表现行为

命令 行为
deepcode --resume 显示会话选择列表(进入 TUI)
deepcode --resume <valid-id> 直接恢复该会话(进入 TUI)
deepcode --resume <invalid-id> 输出 No saved session found with ID "xxx". 退出,不进入 TUI

功能截图

没有 session ID时显示,会话列表

image

有sessionID 时,进入会话

image

退出时显示 deepcode --resume 292f3468-3397-4de4-9a4c-92df5af248de 提示信息

image

hqwlkj added 11 commits June 23, 2026 14:42
- 添加 preview 字段,标记为预览版本
- 修正 repository URL 结构,添加目录字段
- 扩展 categories,新增 Chat 分类
- 格式化部分字段列表,使结构更清晰
- 在 App 组件中新增 resumeSessionId 属性以支持恢复会话功能
- 在 AppContainer 中传递 resumeSessionId 以贯穿组件树
- 在 cli.tsx 中解析并传递 --resume 参数,支持无 ID 列出会话选择
- 新增构建退出摘要时显示 resume 会话提示的逻辑
- 添加对应单元测试覆盖 resumeSessionId 解析及退出摘要展示
- 抽离 cli 参数解析函数,支持提取初始提示和恢复会话 ID
- 修复退出摘要文本,添加 resume 使用提示,提升用户体验
- 在启动 TUI 之前校验传入的 resumeSessionId 是否在本地会话索引中存在
- 读取用户主目录下的 sessions-index.json 文件进行会话ID验证
- 未找到匹配会话时输出错误信息并退出进程
- 在 App 组件中移除对会话ID重复验证的注释补充说明
- 确保 resumeSessionId 已经校验通过后才调用 handleSelectSession
- 移除 node:fs 模块中未使用的 existsSync 导入
- 保持代码整洁,避免冗余依赖
- 优化代码可读性和维护性
- 引入并展示CLI版本及Git提交信息
- 优化退出摘要界面颜色,提升可读性
- 在会话恢复提示中添加高亮命令显示
- 在PackageInfo类型中添加gitCommit字段支持
- 使用 yargs 库替代原有手写解析,增强参数解析的健壮性和可维护性
- 添加严格参数校验,提升错误提示的清晰度
- 统一处理 --resume 和 --prompt 参数的组合逻辑,避免冲突使用
- 改进启动流程,确保先恢复会话再提交初始提示
- 将 resetStaticView 方法修改为异步以支持启动流程等待
- 替换部分异步调用为 await 确保顺序执行,避免竞态问题
- 更新 CLI 帮助文案,优化用户体验和信息表达
- 调整欢迎界面文本样式,增加标题加粗显示
- 添加相关单元测试 covering 新的参数解析和校验逻辑
- 引入 yargs 及其类型依赖,更新 package.json 和锁文件依赖清单
- 使用异步方式获取包信息,替代同步读取package.json
- 用yargs重构参数解析,加入严格校验和格式验证
- 新增UUID格式验证函数,确保会话ID合法性
- 改善错误输出,统一通过writeStderrLine打印错误信息
- 移除过时的手工参数解析逻辑,改用parseArguments异步解析
- 统一并简化应用启动流程,支持终端交互性检查
- 替换process.stdout.write为writeStdoutLine,增强代码一致性
- 增加对版本号、帮助信息参数的自动处理和退出
- 使用read-package-up获取package.json,保证包信息准确
- 测试覆盖parseArguments及isValidSessionId的多种场景和错误处理
- 修改构建脚本为异步导入fs模块的chmodSync操作,兼容现代Node版本
- 将 Windows Shell 配置逻辑调整到 --version 和 --help 参数处理之后
- 避免在 Windows 无 Git Bash 环境下配置 Shell 时提前退出进程
- 确保命令行参数如 --version 和 --help 正常工作
- 添加 configureWindowsShell 函数注释说明其调用时机和作用
- 清理 cli.tsx 中的导入和调用顺序,提高代码可读性
- 移除 packages/cli/src/common/update-check.ts 文件中未使用的 PackageInfo 类型
- 减少代码冗余,提升代码可维护性
- 保持类型定义的简洁性与准确性
@qorzj qorzj merged commit 05de64c into lessweb:main Jun 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants