CompileLoop
开源Java工具,利用本地代码模型自动修复Maven构建编译错误,在临时副本中应用并验证补丁,仅将通过验证的补丁呈现给开发者
时间轴 (近 90 天)
CompileLoop 是一个开源 Java 工具,它接收 Maven 构建失败的项目,将编译错误发送给本地代码模型,获取修复建议,在临时副本中应用补丁并重新构建验证,原始源码保持不变。
在基准测试中,模型能生成语义正确的修复,但 unified diff 头部的行数计数错误,导致补丁工具拒绝应用。
CompileLoop 借鉴 git apply --recount 的思路,从 diff 正文重新计算行数,用确定性代码修正可确定性计算的字段,而不是让 AI 重试。
在 AI 编码工具链中,模型产生的可执行产物(补丁、命令、文件内容)应作为验证依据,而自然语言解释(摘要、理由)不应被工具逻辑当作事实来源。
CompileLoop 添加了重复补丁检测(使用 Java String.hashCode() 生成指纹)和错误未变化检测(连续两次相同诊断信息失败则停止)作为提前终止条件。
在基准测试的 60 次运行中,提前终止条件被触发了 27 次,包括 21 次检测到缺乏进展和 6 次模型提供者不可用。
DeepSeek-Coder 6.7B 经常在摘要中正确识别修复方案,但生成的 diff 包含与源文件不匹配的上下文行,导致补丁无法安全应用而被拒绝。
CompileLoop 项目中最耗时的部分是模型周围的工程基础设施,包括执行 Maven 的进程运行器、解析 Maven 输出的解析器、补丁验证器、临时工作区应用测试、以及记录尝试和检测进展停滞的修复引擎。
CompileLoop 项目目前有 233 个测试,CI 在 Ubuntu 和 Windows 上运行,测试套件使用模拟的 Ollama 服务器和脚本化模型响应,不需要下载本地模型就能运行。
CompileLoop 的临时副本不是安全沙箱,构建脚本可以执行任意命令,容器隔离是重要的下一步。
还有 1 条时间轴事件
全部知识事实 (11)
CompileLoop 是一个开源 Java 工具,它接收 Maven 构建失败的项目,将编译错误发送给本地代码模型,获取修复建议,在临时副本中应用补丁并重新构建验证,原始源码保持不变。
50%待验证在基准测试中,模型能生成语义正确的修复,但 unified diff 头部的行数计数错误,导致补丁工具拒绝应用。
50%待验证CompileLoop 借鉴 git apply --recount 的思路,从 diff 正文重新计算行数,用确定性代码修正可确定性计算的字段,而不是让 AI 重试。
50%待验证在 AI 编码工具链中,模型产生的可执行产物(补丁、命令、文件内容)应作为验证依据,而自然语言解释(摘要、理由)不应被工具逻辑当作事实来源。
50%待验证CompileLoop 添加了重复补丁检测(使用 Java String.hashCode() 生成指纹)和错误未变化检测(连续两次相同诊断信息失败则停止)作为提前终止条件。
50%待验证在基准测试的 60 次运行中,提前终止条件被触发了 27 次,包括 21 次检测到缺乏进展和 6 次模型提供者不可用。
50%待验证DeepSeek-Coder 6.7B 经常在摘要中正确识别修复方案,但生成的 diff 包含与源文件不匹配的上下文行,导致补丁无法安全应用而被拒绝。
50%待验证CompileLoop 项目中最耗时的部分是模型周围的工程基础设施,包括执行 Maven 的进程运行器、解析 Maven 输出的解析器、补丁验证器、临时工作区应用测试、以及记录尝试和检测进展停滞的修复引擎。
50%待验证CompileLoop 项目目前有 233 个测试,CI 在 Ubuntu 和 Windows 上运行,测试套件使用模拟的 Ollama 服务器和脚本化模型响应,不需要下载本地模型就能运行。
50%待验证CompileLoop 的临时副本不是安全沙箱,构建脚本可以执行任意命令,容器隔离是重要的下一步。
50%待验证CompileLoop 的开发者 LambdaJedi 使用 Claude 进行架构讨论和代码审查。
50%