26 lines
1.6 KiB
Plaintext
26 lines
1.6 KiB
Plaintext
# 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
|