Skip to content

Releases: wangyongpeng90/cuckoo-code

0.5.2

Choose a tag to compare

@wangyongpeng90 wangyongpeng90 released this 17 Sep 05:25

Cuckoo Code v0.5.2 Release Notes

发布日期: 2026-09-17

🎯 本次更新重点

本次更新带来请求失败自动重试工具循环看门狗两大稳定性能力:当 AI 对话因网络错误、服务端异常或流中断而失败时,应用会自动重发提示词让 AI 继续;当 AI 在工具调用循环中长时间没有响应时,也会自动催促继续。此外修复了「用户主动停止被误判为失败并触发重试」和「inject_js 无法处理多语句代码」两个问题。


✨ 新增功能

请求失败自动重试

AI 对话请求失败时(网络错误 / 非 2xx / 流中断),按配置间隔自动重发提示词,触发 AI 重新回答:

  • 普通失败:默认 4~10 秒随机间隔、最多 10 次
  • 操作频繁(429):默认 60 秒间隔、最多 20 次(独立计数)
  • 次数填负数表示不限次;一旦成功回复即重置计数
  • 失败后弹出倒计时浮层,可随时点「取消」中止重试
  • 压缩上下文进行期间自动暂停重试,避免污染摘要请求

工具循环看门狗

AI 进入工具调用循环后,若某一轮发出消息却迟迟等不到回复(AI 卡住/中断),自动发送「请继续」提示词催促:

  • 超时时间默认 300 秒、默认催促 3 次(可配置,负数=不限次)
  • 工具执行期间不监控(长时间命令如 npm install 不会被误判)
  • 会话切换自动失效:切到别的对话后,看门狗立即重置,不会打扰新会话
  • 压缩上下文期间同样自动暂停

设置弹窗

新增集中设置面板,可配置:

  • 失败自动重试开关、普通/操作频繁的间隔与次数、重试提示词
  • 工具循环看门狗的超时时间、提示词、催促次数
  • 发送延迟
  • 时间单位统一为(更直观)
  • 新增「恢复默认」按钮,一键还原全部配置

内置平台容错加载

单个内置平台文件缺失或损坏时,不再拖垮整个应用启动,其余平台仍可正常使用。


🐛 问题修复

修复用户主动停止被误判为失败并触发重试

此前,用户手动点击「停止生成」后,部分情况下 SSE 流未下发明确状态,导致被判定为请求失败,进而触发自动重试、打扰用户。
本次通过拦截 DeepSeek 的 stop_stream 请求作为「用户停止」的可靠判据,彻底解决该问题。

修复 inject_js 工具无法处理多语句代码

此前 inject_js 通过「是否以 return 开头」决定包装策略,导致以下输入解析失败:

  • 多语句:const x=1; return x;
  • 条件返回:if (...) return ...
  • 顶层 await:await ...; return ...
    本次改用两遍语法探测(先尝试按表达式解析,失败则回退为 async 函数体),既保留原有表达式/IIFE 用法,又支持任意语句体与顶层 await。

🔧 内部改进

  • 类 AOP 日志工具src/utils/with-log.js):可为模块方法自动注入入参/出参日志,便于排查问题
  • 重试引擎增加会话校验:旧会话的延迟失败不再误触发当前会话的重试
  • 新增单元测试 60+ 项(重试引擎、拦截观察器、看门狗),测试总数达 285 项

⚠️ 说明

  • 本版本为正式版,支持自动更新
  • 网络拦截方式目前对 DeepSeek / Claude / ChatGPT 生效

🔗 完整变更历史

详见 CHANGELOG.md


反馈:使用中遇到问题,欢迎在 GitHub Issues 提交。

0.5.1

Choose a tag to compare

@github-actions github-actions released this 15 Sep 05:19

Cuckoo Code v0.5.1 Release Notes

发布日期: 2026-09-15

🎯 本次更新重点

本次更新带来上下文压缩功能——当对话 token 过大时,自动(或手动)生成摘要并保留最近对话,通过 DeepSeek 分享功能在新会话无缝继续,让长对话不再受上下文窗口限制。


✨ 新增功能

上下文压缩(手动 + 自动)

当对话积累的 token 接近模型上限时,一键压缩:生成摘要 → 保留最近 20% 对话 → 在新会话继续

  • 纯 API 实现:直接读取本地缓存的全量消息、调用分享接口创建新会话,全程不依赖页面点击,稳定且快速
  • 摘要智能保留:自动定位摘要消息,确保它一定包含在分享的对话中
  • 无缝续接:压缩后自动跳转到新会话,并重新初始化项目,末尾追加「请继续你之前的工作」,AI 接着原来的任务继续

自动压缩

无需手动干预,token 超过设定阈值时自动触发压缩

  • 面板可配置触发阈值(单位:万 token,默认 80 万)
  • 设置持久化保存,刷新后保留

🔧 改进

  • 面板「对话 Token」区新增「压缩」按钮和自动压缩配置项

📦 安装

下载对应系统安装包:

  • Windowscuckoo-code-win-v0.4.0-x64.exe(NSIS 安装版 / 便携版 / zip)
  • macOScuckoo-code-mac-v0.4.0-x64.dmg / arm64.dmg

构建完成后可在 Releases 页面下载:
https://github.com/wangyongpeng90/cuckoo-code/releases/tag/v0.4.0


⚠️ 说明

  • 上下文压缩目前针对 DeepSeek 平台生效
  • 压缩依赖 DeepSeek 的分享功能,会创建一个公开分享链接(对话内容公开,请注意隐私)
  • 本版本为正式版,支持自动更新

🔗 完整变更历史

详见 CHANGELOG.md


反馈:使用中遇到问题,欢迎在 GitHub Issues 提交。

0.3.10

Choose a tag to compare

@wangyongpeng90 wangyongpeng90 released this 14 Sep 05:04

Cuckoo Code v0.3.10 Release Notes

发布日期: 2026-09-14

🎯 本次更新重点

本次为紧急修复版,修复两个会导致应用闪退的问题:选择平台时闪退、以及首次运行 / 数据目录缺失时启动崩溃。强烈建议所有 v0.3.9 用户更新。


🐛 修复

修复选择平台时闪退

在平台选择页选择 DeepSeek / Claude / ChatGPT 时,应用会先销毁旧窗口再重建新窗口。销毁瞬间窗口数为 0,触发了 window-all-closed 逻辑导致应用误退出

现改为延迟确认——切换完成后稍等片刻,若仍无窗口才真正退出,保证重建过程不被误判。

修复数据目录缺失时启动崩溃

app.setPath('userData') 要求目标目录必须已存在,否则会抛错导致启动闪退。

现在会在设置前兜底创建目录,覆盖以下场景:

  • 首次运行(目录尚未生成)
  • 用户手动删除 cuckoo-ai-pro-session 目录
  • 更换数据目录环境变量后首次启动

📦 安装

下载对应系统安装包:

  • Windowscuckoo-code-win-v0.3.10-x64.exe(NSIS 安装版 / 便携版 / zip)
  • macOScuckoo-code-mac-v0.3.10-x64.dmg / arm64.dmg

⚠️ 说明

  • 本版本为紧急修复版,功能与 v0.3.9 一致,仅修复闪退问题
  • 支持自动更新,已安装用户会在下次启动时收到更新提示

🔗 完整变更历史

详见 CHANGELOG.md


反馈:使用中遇到问题,欢迎在 GitHub Issues 提交。

0.3.9

Choose a tag to compare

@wangyongpeng90 wangyongpeng90 released this 14 Sep 03:46

Cuckoo Code v0.3.9 Release Notes

发布日期: 2026-09-14

🎯 本次更新重点

本次更新带来对话 Token 实时显示,并完成一项架构精简——彻底移除 DOM 抓取回复路径,全面转向网络请求拦截,回复获取更稳定、代码更清晰。


✨ 新增功能

面板显示服务端对话 Token

  • 面板新增「对话 Token」显示,读取 DeepSeek 服务端 SSE 流返回的 accumulated_token_usage
  • 数据为服务端权威值(含 prompt + 上下文 + 输出),非本地估算
  • 超过 1 万自动简写为 x.xx万 格式,如 11.92万

🔧 改进

彻底移除 DOM 抓取回复路径

  • 删除 observer / ai-response / detector 等 DOM 抓取模块,代码量净减 1000+ 行
  • 抽出工具执行逻辑到 tool-executor,供拦截模式复用
  • 手动解析改为复用拦截缓存的完整文本,不再依赖 DOM 抓取
  • 回复获取链路简化为单一通路:hook (SSE) → intercept-observer → 工具执行

清理废弃代码

  • 注释 Provider 中已废弃的 DOM 抓取方法(isResponseComplete / getMessageCandidates / getMessageMarkdown / isUserMessage / getCodeBlockLanguage
  • 移除 token 本地估算逻辑,仅保留服务端权威数据

📦 安装

下载对应系统安装包:

  • Windowscuckoo-code-win-v0.3.9-x64.exe(NSIS 安装版 / 便携版 / zip)
  • macOScuckoo-code-mac-v0.3.9-x64.dmg / arm64.dmg

⚠️ 说明

  • 对话 Token 显示目前对 DeepSeek 生效(读取其 SSE 流的 accumulated_token_usage
  • 本版本为正式版,支持自动更新

🔗 完整变更历史

详见 CHANGELOG.md


反馈:使用中遇到问题,欢迎在 GitHub Issues 提交。

0.3.8

Choose a tag to compare

@wangyongpeng90 wangyongpeng90 released this 11 Sep 07:53

Cuckoo Code v0.3.8 Release Notes

发布日期: 2026-09-11

🎯 本次更新重点

本次更新带来内置 ChatGPT 平台支持,以及一项底层重构——DeepSeek / Claude / ChatGPT 三个平台的 AI 回复获取方式,从 DOM 抓取全面切换为网络请求拦截,回复解析更及时、更稳定,不再受页面渲染节奏影响。


✨ 新增功能

内置 ChatGPT 平台

  • 新增 ChatGPT Provider,支持 chatgpt.com / chat.openai.com
  • 输入框、发送按钮、用户信息、会话 ID 提取全部适配 ChatGPT 页面结构
  • 新增 ChatGPT 专属提示词模板 src/prompt/chatgpt.md
  • 新增 ChatGPT 品牌 logo

网络请求拦截获取回复(三平台)

  • 在页面主世界(main world)注入拦截器,被动观察各平台自身的 completion SSE 流,直接解析回复文本
    • 仅旁路读取(response.clone() / responseText 快照),不修改请求与响应
    • 回复完成即时触发,不再依赖 MutationObserver 轮询 + DOM 稳定性校验
  • DeepSeek:解析 response/fragments 的 THINK / RESPONSE 分片,自动排除思考内容
  • Claude:解析 content_block_deltatext_delta,忽略 thinking_delta
  • ChatGPT:解析 /backend-api/f/conversation 的裸 v 追加、patch 批量操作、message 快照(仅采纳 assistant)与 message/status 结束信号
  • 工具执行结果回传仍沿用原有输入框发送方式

🐛 修复

  • 修复 grep 工具卡死 grep 忽略 stdin,避免 ripgrep 在无 path 参数时等待 stdin 导致进程挂起
  • 修复 ChatGPT 工具执行异常 修复工具卡在稳定性校验、完成检测误判及会话 ID 提取问题
  • 修复自定义 Provider 日志刷屏 缓存改为 process 级并按 userData 分桶

🔧 改进

  • 优化 ChatGPT 初始化与输入 输入分段 Paste 优化,初始化填入分块处理,加快长文本写入
  • 应用菜单完善 补充标准编辑菜单与导航项
  • 新增英文 README 补充英文文档与语言切换链接
  • 启动时清理平台日志 避免开发环境日志无限累积

📦 安装

下载对应系统安装包:

  • Windowscuckoo-code-win-v0.3.8-x64.exe(NSIS 安装版 / 便携版 / zip)
  • macOScuckoo-code-mac-v0.3.8-x64.dmg / arm64.dmg

⚠️ 说明

  • 网络拦截方式目前对 DeepSeek / Claude / ChatGPT 生效
  • 本版本为正式版,支持自动更新

🔗 完整变更历史

详见 CHANGELOG.md


反馈:使用中遇到问题,欢迎在 GitHub Issues 提交。

0.3.6

Choose a tag to compare

@github-actions github-actions released this 07 Sep 16:24

Cuckoo Code v0.3.6 Release Notes

🐛 本次修复

  • 修复 macOS 无法复制/粘贴问题
    添加标准“编辑”菜单(撤销/重做/剪切/复制/粘贴/全选),恢复 Cmd+CCmd+VCmd+XCmd+A 等系统快捷键。
    现在可在 DeepSeek 输入框正常粘贴剪贴板内容,也可从窗口内复制文本。

📦 安装

下载对应系统安装包:

  • Windows:cuckoo-code-win-v0.3.6-x64.exe(NSIS 安装版 / 便携版)
  • macOS:cuckoo-code-mac-v0.3.6-x64.dmg / arm64.dmg

构建完成后可在 Releases 页面下载:
https://github.com/wangyongpeng90/cuckoo-code/releases/tag/v0.3.6


🔗 完整变更历史

详见 CHANGELOG.md


如果你想要的是英文版 release note,或者需要我直接发布到 GitHub Releases,请告诉我。

0.3.4

Choose a tag to compare

@wangyongpeng90 wangyongpeng90 released this 07 Sep 15:50

Cuckoo Code v0.3.4 Release Notes

🎯 本次更新重点

本次版本主要修复了多个影响日常使用的稳定性和兼容性问题,并合入了社区贡献 PR #9 的框架级改进。


🐛 修复 Bug

  • 修复 PowerShell 管道符被 cmd 解析的问题
    pwsh 工具改用 execFile,命令不再经过 cmd /c 拼接,| 等管道符可正常传给 PowerShell。

  • 修复浏览器 UA 导致的“数据隐私泄露风险”提示
    主窗口 UA 改为与 Electron 33 内核匹配的 Chrome 130,避免 DeepSeek 识别为第三方客户端。

  • 修复 Google OAuth 登录提示“浏览器不安全”
    消除 UA 与 sec-ch-ua 版本不一致的问题。

  • 修复 openBrowserWindow 工具窗口暴露 Electron 标识
    工具打开的窗口也统一使用 Chrome 130 UA,不再显示 cuckoo-code / Electron 字样。

  • 修复 XML invoke 检测逻辑
    <invoke name= 不再要求必须位于文本开头,并调整提示语,避免提示语自触发造成循环。

  • 修复自定义 Provider 渲染进程加载半成品问题
    渲染进程现可通过 --cuckoo-user-data 参数正确加载自定义 Provider。


✨ 新增功能

  • Provider 发送扩展接口provider.triggerSend
    支持站点原生发送方式,智谱等对合成事件免疫的平台可自定义发送逻辑。

  • 流式稳定性双通道校验
    MutationObserver 快照 + 定时轮询兜底,修复流式输出中途提前标记导致代码块漏检的问题。

  • 完成检测兜底轮询
    每 2 秒主动复查 AI 是否已完成回复,覆盖最小化/后台时完成信号丢失导致不自动回复的场景。

  • MCP 工具调用识别增强
    支持 await mcpXxx(log(await xxx( 形式的动态工具名识别。

  • <pre> 代码容器兜底
    兼容智谱等使用 .md-code 容器渲染代码块的平台。


🔧 改进

  • 会话识别通用化
    会话 ID 提取和跳转 URL 改由 Provider 方法处理,不再硬编码 DeepSeek 格式。

🙏 致谢

感谢 @27584 贡献的 PR #9 框架级改进:

  • Provider 发送扩展接口
  • 流式稳定性双通道
  • 自定义 Provider 渲染进程加载
  • MCP 工具识别
  • 代码块识别增强

完整变更历史CHANGELOG.md

0.3.3

Choose a tag to compare

@github-actions github-actions released this 07 Sep 07:31

Cuckoo Code v0.3.0 Release Notes

发布日期: 2026-09-07

🎉 本次更新亮点

这次更新带来了多平台支持自定义 Provider 系统,让 Cuckoo Code 不再局限于单一 AI 平台。你现在可以接入不同的 AI 网页版,并且可以自己动手扩展新的平台,完全掌控 AI Agent 的行为。


✨ 新增功能

多平台 Provider 框架

  • 支持 DeepSeekClaude 两个平台
  • 每个平台有独立的输入框定位、发送按钮检测、用户信息提取和回复解析逻辑
  • 平台差异全部封装在 Provider 中,代码结构清晰易扩展

平台选择页

  • 新建窗口时,如果未指定平台,会显示卡片式平台选择页
  • 内置 DeepSeek 和 Claude 官方品牌 logo

自定义 Provider 系统

  • 用户可以导入自己的 Provider JS 文件
  • 支持导入、替换、删除自定义 Provider
  • 导入时自动复制文件到应用数据目录,避免源文件被删除后失效
  • 删除时自动检测是否有窗口正在使用该 Provider,防止误删
  • 提供类型声明文件 provider.d.ts 和模板文件 provider.template.js,降低扩展门槛

提示词模板化

  • 每个平台有独立的提示词模板
  • 支持占位符动态注入(平台信息、工具列表、项目目录等)
  • 工具 API 类型定义从独立文件动态读取,避免多处维护

Claude 自动解析

  • 实现 Claude 回复的自动解析和执行
  • 基于停止按钮的边沿触发,避免重复解析
  • 自动跳过空消息,提高稳定性

日志分平台记录

  • 渲染进程日志按平台分别写入 wyp/log/{providerId}.log,方便排查问题

🛠 改进

  • 系统提示词从单文件改为多平台模板,运行时按平台自动选择
  • 平台 logo 从首字母占位改为官方 SVG 图标
  • 新增 Provider 单元测试,测试总数达到 255 个,全部通过

🐛 修复

  • 修复 Claude 自动解析重复触发/漏触发的问题
  • 修复提示词中多个相同占位符只替换第一个的问题
  • 修复导入自定义 Provider 后源文件被删除导致失效的问题
  • 修复 Electron 在项目根目录生成 PID 日志文件的问题

📦 下载

请前往 GitHub Releases 下载对应平台的安装包。


🙏 反馈

如果你在使用中遇到问题,欢迎在 GitHub Issues 提交反馈。

0.3.2

Choose a tag to compare

@github-actions github-actions released this 07 Sep 06:44

Cuckoo Code v0.3.0 Release Notes

发布日期: 2026-09-07

🎉 本次更新亮点

这次更新带来了多平台支持自定义 Provider 系统,让 Cuckoo Code 不再局限于单一 AI 平台。你现在可以接入不同的 AI 网页版,并且可以自己动手扩展新的平台,完全掌控 AI Agent 的行为。


✨ 新增功能

多平台 Provider 框架

  • 支持 DeepSeekClaude 两个平台
  • 每个平台有独立的输入框定位、发送按钮检测、用户信息提取和回复解析逻辑
  • 平台差异全部封装在 Provider 中,代码结构清晰易扩展

平台选择页

  • 新建窗口时,如果未指定平台,会显示卡片式平台选择页
  • 内置 DeepSeek 和 Claude 官方品牌 logo

自定义 Provider 系统

  • 用户可以导入自己的 Provider JS 文件
  • 支持导入、替换、删除自定义 Provider
  • 导入时自动复制文件到应用数据目录,避免源文件被删除后失效
  • 删除时自动检测是否有窗口正在使用该 Provider,防止误删
  • 提供类型声明文件 provider.d.ts 和模板文件 provider.template.js,降低扩展门槛

提示词模板化

  • 每个平台有独立的提示词模板
  • 支持占位符动态注入(平台信息、工具列表、项目目录等)
  • 工具 API 类型定义从独立文件动态读取,避免多处维护

Claude 自动解析

  • 实现 Claude 回复的自动解析和执行
  • 基于停止按钮的边沿触发,避免重复解析
  • 自动跳过空消息,提高稳定性

日志分平台记录

  • 渲染进程日志按平台分别写入 wyp/log/{providerId}.log,方便排查问题

🛠 改进

  • 系统提示词从单文件改为多平台模板,运行时按平台自动选择
  • 平台 logo 从首字母占位改为官方 SVG 图标
  • 新增 Provider 单元测试,测试总数达到 255 个,全部通过

🐛 修复

  • 修复 Claude 自动解析重复触发/漏触发的问题
  • 修复提示词中多个相同占位符只替换第一个的问题
  • 修复导入自定义 Provider 后源文件被删除导致失效的问题
  • 修复 Electron 在项目根目录生成 PID 日志文件的问题

📦 下载

请前往 GitHub Releases 下载对应平台的安装包。


🙏 反馈

如果你在使用中遇到问题,欢迎在 GitHub Issues 提交反馈。

0.3.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 04:39

Cuckoo Code v0.3.0 Release Notes

发布日期: 2026-09-07

🎉 本次更新亮点

这次更新带来了多平台支持自定义 Provider 系统,让 Cuckoo Code 不再局限于单一 AI 平台。你现在可以接入不同的 AI 网页版,并且可以自己动手扩展新的平台,完全掌控 AI Agent 的行为。


✨ 新增功能

多平台 Provider 框架

  • 支持 DeepSeekClaude 两个平台
  • 每个平台有独立的输入框定位、发送按钮检测、用户信息提取和回复解析逻辑
  • 平台差异全部封装在 Provider 中,代码结构清晰易扩展

平台选择页

  • 新建窗口时,如果未指定平台,会显示卡片式平台选择页
  • 内置 DeepSeek 和 Claude 官方品牌 logo

自定义 Provider 系统

  • 用户可以导入自己的 Provider JS 文件
  • 支持导入、替换、删除自定义 Provider
  • 导入时自动复制文件到应用数据目录,避免源文件被删除后失效
  • 删除时自动检测是否有窗口正在使用该 Provider,防止误删
  • 提供类型声明文件 provider.d.ts 和模板文件 provider.template.js,降低扩展门槛

提示词模板化

  • 每个平台有独立的提示词模板
  • 支持占位符动态注入(平台信息、工具列表、项目目录等)
  • 工具 API 类型定义从独立文件动态读取,避免多处维护

Claude 自动解析

  • 实现 Claude 回复的自动解析和执行
  • 基于停止按钮的边沿触发,避免重复解析
  • 自动跳过空消息,提高稳定性

日志分平台记录

  • 渲染进程日志按平台分别写入 wyp/log/{providerId}.log,方便排查问题

🛠 改进

  • 系统提示词从单文件改为多平台模板,运行时按平台自动选择
  • 平台 logo 从首字母占位改为官方 SVG 图标
  • 新增 Provider 单元测试,测试总数达到 255 个,全部通过

🐛 修复

  • 修复 Claude 自动解析重复触发/漏触发的问题
  • 修复提示词中多个相同占位符只替换第一个的问题
  • 修复导入自定义 Provider 后源文件被删除导致失效的问题
  • 修复 Electron 在项目根目录生成 PID 日志文件的问题

📦 下载

请前往 GitHub Releases 下载对应平台的安装包。


🙏 反馈

如果你在使用中遇到问题,欢迎在 GitHub Issues 提交反馈。