llmcodegen/issues/enhance-progress-bar.issue

41 lines
2.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求工单:增强交互性 - 添加进度条显示
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