llmcodegen/issues/dependency-order-fix-enhanc...

26 lines
1.6 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.

# Bug 工单
name: fix/enhance 命令未遵循文件依赖关系进行修改或生成
description: |
在执行 `llm-codegen fix` 或 `llm-codegen enhance` 命令时,代码生成过程没有严格遵循 `design.json` 中定义的文件依赖关系。
例如,如果文件 A 依赖于文件 B在修改工单中同时包含了 A 和 B那么在生成 A 的新内容时,其上下文可能仍然是 B 修改前的旧内容,
因为 B 的修改尚未应用到文件系统,或者应用顺序没有被强制保证。
steps_to_reproduce: |
1. 初始化一个项目,使其 `design.json` 中包含具有明确依赖关系的文件例如A 依赖于 B
2. 创建一个 `enhance` 或 `fix` 工单,该工单要求同时修改文件 A 和 B。
3. 运行 `llm-codegen enhance` 或 `llm-codegen fix` 命令。
4. 观察生成的日志和最终代码,可以发现 A 的内容可能是基于 B 的旧内容生成的,违背了依赖关系。
expected_behavior: |
`process_issue` 方法应该像 `run` 方法一样,解析 `design.json` 中的依赖关系。
在处理 `affected_files` 列表时,必须确保在处理文件 A 之前其所有依赖项B, C, D...)都已经被成功修改或生成并写入磁盘。
这样可以保证 LLM 在生成 A 时,能够看到最新的依赖文件内容。
actual_behavior: |
`process_issue` 方法只是简单地顺序处理 `affected_files` 列表,没有考虑它们之间在 `design.json` 中定义的依赖关系。
这导致了生成的代码可能基于陈旧的上下文,从而产生错误或不一致的代码。
affected_files:
- src/llm_codegen/core.py