WorkBuddy更新版本后出现的内部错误
对话时错误Internal error [CodeBuddyCodeBackend] Recent CLI output: CodeBuddy Code HTTP Server Endpoint http://127.0.0.1:54995 Web UI ]8;;http://127.0.0.1:54995/http://127.0.0.1:54995/]8;; Press CtrlC to stop the server解决方法退出程序后进入C:\Users\23860\.workbuddy备份后删除以下文件如果不放心可以先剪切到桌面workbuddy.db或workbuddy.db-journalmodels.json自定义的模型配置如果用不到的话可以删掉IDENTITY.md然后重新启动问题消失。分析原因从之前提供的日志可以清晰地看到问题的根源03:08:37.347 [SidecarManager] rotateHostRuntime requested: generation1, reasonhosted-cli-product-snapshot-change03:08:39.748 Killing session __workbuddy_cli_host__-0-0ab87186 (pid24784)**关键就在于 rotateHostRuntime**。它会在远端配置拉取完成后检查本地缓存的配置快照如果发现快照发生了变化就强制杀掉旧的 CLI 会话启动一个新的。而 workbuddy.db 和 models.json 正是这个“配置快照”的一部分workbuddy.db存储了用户会话、历史记录以及**产品配置的缓存状态**。如果数据库里记录的配置版本与当前不匹配或者存在某种不一致的状态就可能导致每次启动都判定为“快照变化”从而不断触发 rotateHostRuntime。models.json你自定义的模型配置文件。如果你在这个文件里添加/修改过模型或者它和远程拉取的模型列表存在冲突比如某个模型 ID 既出现在本地又出现在远程但定义不同同样会被检测为配置变化进而触发运行时重建。**删除这两个文件后配置快照被重置为初始状态。** 程序在下一次启动时会1. 重建数据库不再有缓存不一致的问题。2. 从远程重新拉取模型列表不再有本地自定义配置的潜在冲突。这样一来rotateHostRuntime 就不再被触发CLI 会话不再被反复杀建也就不会出现“旧会话被杀、新会话还没完全就绪时客户端发起请求导致连接拒绝”的竞态错误。所以错误消失的原因**不是修复了竞态本身**而是**消除了触发竞态的根源不必要的运行时重建**。现在配置快照稳定了会话可以一次启动并持续运行客户端自然不会再报 Internal error [CodeBuddyCodeBackend]。