Skip to content

feat: CLI 参数解析迁移至 argparse (Issue #2)#19

Closed
urika wants to merge 1 commit into
mainfrom
fix/issue-2-argparse
Closed

feat: CLI 参数解析迁移至 argparse (Issue #2)#19
urika wants to merge 1 commit into
mainfrom
fix/issue-2-argparse

Conversation

@urika
Copy link
Copy Markdown
Owner

@urika urika commented May 29, 2026

Summary

修复 Issue #2: CLI 参数解析迁移至 argparse

问题

原实现通过 sys.argv.pop() 遍历实现,参数顺序依赖性强,无标准 --help 输出。

修复

  • 添加 _build_parser() 构建所有子命令 (run, resume, list, show, status, clean, config, skills, agents, pr, ci, review, cache, eval)
  • run 子命令使用 argparse 处理所有参数 (--docs, --skill, --agent-type, --yes, --headless, --issue, --parallel, --remote, --no-cache)
  • 其他子命令通过 _cmd_dispatch() 保持向后兼容
  • 支持标准 --help

测试

  • pytest tests/ -q (163 passed)

Checklist

  • 所有测试通过
  • argparse 已实现

- 添加 _build_parser() 构建所有子命令
- run 子命令使用 argparse 处理所有参数
- 其他子命令通过 _cmd_dispatch() 保持向后兼容
- 支持 --help 标准输出

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@urika
Copy link
Copy Markdown
Owner Author

urika commented May 29, 2026

Code Review — PR #19: CLI 参数解析迁移至 argparse (v1)

本 PR 与 PR #20 (fix/issue-2-argparse-v2) 功能完全相同,代码逻辑一致。两者存在相同的 Critical 问题:

  1. parser.parse_args()cmd_run() 内调用,而非 main()
  2. cmd_review() / cmd_ci() / cmd_eval() 签名与 argparse 定义不匹配
  3. 缺少 --offline--no-tui--verbose 等 flag
  4. _cmd_dispatch() 重建 sys.argv 反模式

详见 PR #20 的 review 评论。

建议: 关闭本 PR (#19),保留 PR #20 作为基础进行修改。PR #20 的代码更简洁,但 PR #19_cmd_dispatch() 的节注释("重建 sys.argv 以保持向后兼容"、"设置全局 flags"、"调用原有命令")有参考价值,修复时应保留。

@urika
Copy link
Copy Markdown
Owner Author

urika commented May 29, 2026

🔒 关闭本 PR — 与 PR #20 重复

本 PR (#19) 与 PR #20 (fix/issue-2-argparse-v2) 功能完全相同,代码逻辑一致。

保留 PR #20 的理由:

两者存在相同的 Critical 问题(详见 PR #20 的 review),修复时请以 PR #20 为基础。

本 PR 关闭,后续工作在 PR #20 上继续。

@urika
Copy link
Copy Markdown
Owner Author

urika commented May 29, 2026

关闭:与 PR #20 重复,保留 PR #20 继续修复。

@urika urika closed this May 29, 2026
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.

1 participant