41 lines
2.9 KiB
Plaintext
41 lines
2.9 KiB
Plaintext
# 需求工单:增强交互性 - 添加进度条显示
|
||
name: 增强交互性:添加进度条显示
|
||
description: |
|
||
当前工具在执行耗时操作(如初始化项目时生成多个文件、运行并行检查、自动修复循环)时,终端上仅打印日志信息,用户无法直观了解当前进度和剩余时间,导致等待体验不佳。
|
||
希望利用 `rich` 库的进度条功能,在以下关键步骤中显示实时进度,提升用户体验:
|
||
|
||
1. **初始化项目(init)**:
|
||
- 在解析 `README.md` 生成 `design.json` 后,开始生成文件时,显示文件生成进度条。
|
||
- 进度条显示已生成文件数 / 总文件数,每个文件生成时显示当前文件名。
|
||
- 若实现并发生成,进度条应动态更新已完成任务数,并可能显示每个文件的生成状态(如排队中、生成中、完成、失败)。
|
||
|
||
2. **增强/修复模式(enhance/fix)**:
|
||
- 在分析受影响文件、生成代码变更时,显示处理进度(例如分析中的文件数、生成补丁的进度)。
|
||
- 在运行检查工具时(`run_parallel_checks`),显示检查工具运行的进度条(已完成检查的文件数 / 总文件数)。
|
||
- 在自动修复循环中,显示每次修复尝试的进度(如第几次重试、剩余错误数)。
|
||
|
||
3. **通用**:
|
||
- 所有进度条应使用 `rich.progress` 实现,支持彩色输出,并能动态更新。
|
||
- 进度条应显示预计剩余时间(可选)。
|
||
- 错误信息应在进度条区域之外打印,避免干扰进度条显示(使用 `rich.console` 的 `print` 或日志集成)。
|
||
- 当操作完成时,进度条应自动消失或转为完成状态,并显示成功/失败统计。
|
||
|
||
需要修改的代码包括:
|
||
- `cli.py`:主命令入口,控制整体流程,应在此处创建进度条上下文。
|
||
- `core.py`:`CodeGenerator.generate_files` 方法(或类似方法)中,文件生成循环应集成进度条更新。
|
||
- `checker.py`:`run_parallel_checks`、`auto_fix` 和 `run_full_check_and_fix` 中,添加进度条。
|
||
- `utils.py`:可能添加辅助函数来统一创建进度条。
|
||
|
||
acceptance_criteria:
|
||
- 执行 `llm-codegen init` 时,终端显示一个清晰的文件生成进度条,实时更新已完成文件数。
|
||
- 执行 `llm-codegen enhance` 或 `fix` 时,在分析、生成、检查、修复各阶段均有对应的进度条提示。
|
||
- 所有进度条样式美观,不会与日志输出混乱。
|
||
- 并发生成时,进度条能够准确反映整体进度,并能区分不同文件的状态(可选)。
|
||
- 当某个文件生成失败时,进度条仍能继续更新,最终汇总显示成功/失败数量。
|
||
- 进度条显示不会显著影响性能(更新频率合理)。
|
||
|
||
affected_files:
|
||
- src/llm_codegen/cli.py
|
||
- src/llm_codegen/core.py
|
||
- src/llm_codegen/checker.py
|
||
- src/llm_codegen/utils.py |