Releases: czocelot/Gray-Code-Desktop
Releases · czocelot/Gray-Code-Desktop
Release list
GrayCode Desktop 1.7.19dev
GrayCode Desktop 1.7.19dev
v1.7.19dev
Added:文件编辑界面独立不透明度滑条
- 设置 → 外观新增「编辑器不透明度」滑块(0-100%):独立调节文件编辑页半透明背景层,透出桌面背景图/窗口背景;代码文字与界面图标保持不透明。
- 未独立设置时跟随全局「UI 不透明度」(旧行为不变);持久化 ui.appearance.editorOpacity(可 Settings Sync),三语 i18n。
Added:编辑 AI 消息(像编辑用户消息一样直接修改 AI 回复内容)
- 聊天区 AI 消息 hover 操作栏新增「编辑」按钮(非流式可用),复用编辑对话框:修改内容保存后就地改写该条回复(不重新生成、不截断后续消息),本地窗口与后端持久化同步;对话框对 AI 消息隐藏检查点回档/分支/附件。
- 后端新增 conversation.updateMessage 协议消息(带 messageId 索引漂移预检),前端乐观更新 + 失败回滚;新增 9 例回归测试。
Added:编辑器代码字号调节(文件编辑页 + 代码查看抽屉)
- 设置 → 外观新增「编辑器代码字号」滑块(8-32px,默认 13),经 CSS 变量 --gc-editor-font-size 应用,持久化 ui.appearance.editorFontSize(可 Settings Sync)。
Fixed
- 更新面板「下载完成」文案 {path} 占位符未替换
- 扩展形态(webview/ChatViewProvider、bootstrap)UpdateChecker 缺 onStatusChange 导致自动更新提示永不弹出(与桌面端 BackendHost 对齐)
验证
- 后端 294 套件 / 3361 用例通过;前端 106 文件 / 1037 用例通过;typecheck:all + i18n:check 全绿
- 发布前扫描:无敏感信息、无本地路径泄漏;UpdateChecker 指向 czocelot/Gray-Code-Desktop
下载
- GrayCode.Setup.1.7.19-dev.exe — 安装版
- GrayCode-Portable.1.7.19-dev.exe — 便携版
- GrayCode-1.7.19-dev-win.zip — 免安装压缩包
GrayCode Desktop 1.7.18dev
GrayCode Desktop 1.7.18dev
v1.7.18dev
合入上游 main 至 067f969(70 commits),保留 fork 桌面版全部独有功能;不引入 nightly 更新渠道与 fast-tavern 子项目;上游 1.5.x 版本体系不并入本地版本号/CHANGELOG。
上游合入要点
- schema 类型化收敛(ToolArgs → Record<string, unknown>)+ 巨型文件职责拆分(ChannelManager/PromptManager/BranchService/SummarizeService 等)
- agent-sweep 批次 80+ 项:proxyFetch 真实校验、设置事件深拷贝、retry 配置校验、品牌名清理、diff 终态收敛、IPC 并行、CSP、NON_BLOCKING、消息常量、错误边界统一、CRLF 归一化等
- DeepSeek Responses reasoning_text 回传丢失与 usage 锚点对齐(sendHistoryThoughts/sendHistoryThoughtSignatures)
- 单轮长工具回合自动总结支持轮内截断;后台结果领取竞态修复;checkpoint 部分快照恢复误删语义修复
- file-lock 锁 key realpath 归一 + 大小写折叠(win32/darwin)+ 卷大小写回归修复
- 双语 README 重排 + 贡献指南 + 鸣谢章节
桌面端适配与修复
- ChannelManager 恢复 fork 的请求级重试回调路由(SubAgent → Monitor),suppressRetryNotification 只抑制全局回调
- insert_code 收敛为异步 fs(与 delete_code/write_file 同口径,保留多工作区与 UTF-8 编码防护);read_file 批量超限恢复「拒绝」语义
- 用户 id 前缀统一为 graycode 品牌(清理历史 limcode 残留)
- 清理 nightly 更新渠道死代码(useUpdateSettings 移除 updateChannel/saveUpdateChannel)
- 合并残留清理:重复 describe 块去重、SFC 尾部修复、测试适配上游新行为
验证
- 后端 293 套件 / 3355 用例通过;前端 106 文件 / 1036 用例通过;typecheck:all + i18n:check 全绿
- 两次发布前扫描:无冲突标记、无敏感信息、无本地路径泄漏;UpdateChecker 指向 czocelot/Gray-Code-Desktop;工作流仅 build.yml
下载
- GrayCode.Setup.1.7.18-dev.exe — 安装版
- GrayCode-Portable.1.7.18-dev.exe — 便携版
- GrayCode-1.7.18-dev-win.zip — 免安装压缩包
1.7.17dev
GrayCode Desktop 1.7.17dev
Added:聊天消息字号调节(仅作用于用户消息与 AI 消息,不影响 UI 其它部分)
- 设置 → 外观 新增「用户消息字号」与「AI 消息字号」两个滑块(8-32px,默认 13):用户消息字号作用于你发送的消息显示与输入框文字;AI 消息字号作用于 AI 回复正文、思考块与流式输出(思考块比正文小 1px 保持层级);界面其它部分(标签栏/侧栏/按钮等)字号不受影响。
- 持久化到 ui.appearance.userMessageFontSize / assistantMessageFontSize(可 Settings Sync),经 CSS 变量应用,三语 i18n + 设置搜索锚点收录。
Added:代码查看面板「打开为新页面」——同级对话标签页编辑文件(桌面版)
- 代码查看面板(CodeView)头部新增「打开为新页面」按钮(磁盘文件可用):点击后在与对话同级的标签页栏打开纯文本编辑器页签(与「新建标签页」同一层级,可拖拽排序 / 切换 / 关闭),编辑工作区内文本文件并 Ctrl+S 保存(fileEditor.saveFile 消息;写文件复用工作区包含校验与 realpath 复核)。
- 同一文件重复打开直接切换已有页签;未保存更改关闭前确认(覆盖标签页栏 × 与页内关闭按钮两条路径);页签标题取文件名。
- 编辑器背景半透明:文件编辑器(含编辑区)背景随「UI 不透明度」设置半透明,文字/图标保持全不透明,可透出桌面背景图/窗口背景。
- 修复关闭编辑页签后输入框不可用:打开为新页面时未关闭代码查看抽屉(绝对定位覆盖层,宽可达 92%),切回对话页签后抽屉重新渲染遮挡聊天区(窄窗口下输入框无法点击);现打开为新页面后自动关闭抽屉。
- 修复 UI 不透明度实时生效:color-mix 内的 var() 在 Chromium 按定义点解析(非惰性),:root 里定义的表面色变量在 CSS 加载时锁定为完全不透明,运行时调低不透明度不会重算;现设置 UI 不透明度时同步用当前主题色显式重算表面色变量,编辑器背景改用伪元素 + opacity 实时跟随。
- 修复未保存更改关闭确认后卡住:关闭确认此前用原生 window.confirm(Electron 渲染进程同步阻塞、行为不可靠),现两条关闭路径均改用自研纯 DOM 确认框,三语文案。
- 修复保存后代码查看器显示旧内容:CodeView 面板 v-show 保活导致 content 缓存不刷新;现保存成功后仅当正打开同一文件时定向刷新(单文件、非全量重载)。
- 废弃并移除上一版本的独立文件编辑新窗口方案(不再弹出新窗口)。
Fixed
- 修复后台任务取消「按不动」:任务条停止按钮点击后,若底层长调用(LLM/命令)未及时响应取消信号,任务条会长期停在运行中;现后端取消时增加强制终态兜底(2 秒内未收敛立即按已取消终态推送),前端按钮点击即转圈反馈(防重复点击),取消失败会提示原因。
- 移除 SettingsPanel 样式块中重复的 keyframes 动画块与多余 style 闭合标签(构建期检出)。
v1.7.16
GrayCode Desktop v1.7.16
[1.7.16] - 2026-08-12
Changed:自动更新全链路改造(桌面版)
- 更新面板可选下载版本(auto / 便携版 / 安装版):修复「便携版/安装版统一下载安装版」——不再只依赖运行形态自动判定(便携版标识缺失或判定失效时会误判为安装版),用户可在更新面板显式选择下载形态(便携版 GrayCode-Portable / 安装版 GrayCode.Setup);后端 UpdateChecker 增加 resolveInstallerKind 纯函数按选择解析资产,新设置键 graycode.updateInstallerKind(可 Settings Sync);运行时形态判定注入化(getRuntimeKind),不再直接读环境变量(可测试性 + 解耦);
- 更新提醒弹窗主按钮改为跳转「设置 → 通用 → 自动更新」面板:发现新版本弹窗不再直接下载,由用户在更新面板选择版本并手动完成更新;
- 下载完成不再自动打开安装器:提示更新包位于 <数据目录>\update(便携版 <便携外层目录>\data\update),提供「打开文件夹」入口(openUpdateFolder 消息 + UpdateChecker.getUpdateDir),用户手动完成更新流程(便携版运行 GrayCode-Portable 安装包,安装版运行 GrayCode.Setup 安装包);
- 测试:updateChecker 51 例 + updateHandlers 13 例更新至新语义,全部通过。
Fixed:首帧 boot-splash.js 同步 localStorage 改异步(渲染层挂起时首帧阻塞风险)
- boot-splash.js 此前在 同步读取 localStorage(同步存储访问在渲染进程挂起时可能阻塞首帧绘制,try/catch 拦不住「挂起」);改为宏任务延迟读取(setTimeout 0),配合既有的 unresponsive 5s reload + 渲染进程探针 + powerMonitor 三层防御,进一步降低首帧阻塞风险。
1.7.15dev
1.7.15dev — 增量更新(墙钟时限可配置 + 上翻历史卡死修复 + 自动贴底自愈)
✨ 新增
- 无限制模式工具循环墙钟时限可配置:新增全局设置
graycode.maxToolLoopWallclockMinutes(默认 30 分钟,-1 = 不设墙钟时限,仅保留迭代硬上限兜底)。仅在「单回合最大工具调用次数 = -1(无限制)」时生效,有限迭代模式语义零变化;工具设置页新增输入框并明确标注生效条件;VSCode 配置键可 Settings Sync,远控设置页同步镜像;三语 i18n。 - 伴生修复:
maxToolLoopWallclockMs = -1(不设墙钟时限)时原 guard 判断Date.now() > 0恒真会立即误触发TOOL_LOOP_WALLCLOCK_LIMIT——guard 条件已补wallclockMs !== -1。
🛠 修复
- 上翻历史过多时界面卡死(消息窗口无限增长):底部追加路径在 MAX_WINDOW_MESSAGES 内折叠,上翻路径此前从不裁剪,
allMessages与虚拟窗口随上翻无限增长,渲染 DOM/索引重建随轮次线性膨胀直至冻结。现上翻路径窗口超过上限时从底部(最新侧)滑动裁剪,仍可逐页翻完整历史;流式/等待响应期间不裁剪;发送前若窗口末尾落后于真实最新先重载最后一页对齐 backendIndex;新增底部「回到最新」一键恢复最新消息。 - 滚动条在底部时自动贴底失效:内容增长瞬间的 scroll 事件用中间态布局把
wasAtBottom误判为 false,且陈旧的程序写入目标会吞掉「滚回底部」的 scroll 事件——陈旧 false 永久保留。现updateLayout跟随条件放宽为wasAtBottom || isAtBottom()(当前在底部即跟随)并恢复状态,handleScroll命中程序写入目标同样恢复;上拉功能不受影响。
✅ 测试
- 后端 277 套件/3149 例全绿(新增 toolLoopWallclockLimit 3 例);
- 前端受影响模块回归通过(conversationActions 18 例、CustomScrollbarSticky 6 例、settingsSearchAnchorConsistency 3 例);
- typecheck(backend + frontend + electron)+ i18n:check 全绿;
- 敏感信息扫描通过(无本地路径/密钥/token 泄漏)。
1.7.15dev — 上游 54 commits 合入 + 并发崩溃修复 + 两个上游 PR 合入
✨ 新增
- 子代理运行时长上限可配置(上游 PR Komeiji-Shiki#37 合入 + 链路补齐):新增全局
defaultMaxRuntime(-1 无限制,默认 1800 秒),per-agent 未配置maxRuntime时继承全局默认;list 回显 + updateGlobalConfig 校验(-1 或正整数)+ 工具描述兜底跟随全局动态读取(适配本地 defaultMaxRuntime 命名);前端子代理设置新增「默认最大运行时间(秒)」输入框(三语 i18n)。 - UI 调整:设置-通用-工作区行为不再位于应用信息之下,改为与同页其它设置项占用一致的空间。
- 通知系列(上游):点击通知后聚焦 VS Code 窗口 + toast 使用扩展自带图标;Win32Focus 绕过前台锁;换回 node-notifier 实现 Windows 系统 toast。
- diff 预热增强(上游):预热扩展到虚拟原文档 + 写入就绪共享屏障 + pending 时序前置。
🔄 上游同步(54 commits,2ffa0fc2..e12da76,含 PR Komeiji-Shiki#33/Komeiji-Shiki#34/Komeiji-Shiki#35/Komeiji-Shiki#36/Komeiji-Shiki#37)
- 合入内容:.editorconfig 编码设置;记忆配置全局共享;execute_command 超不再误报用户取消;自动总结不再白烧 AI(auto 切点钳制到当前回合 + 无新消息直接放弃);toolMeta 生成跨平台行尾规范;diff 文档预热消除首次预览卡顿;README 衍生项目章节;全仓扫描修复批次;子代理排队超时可配置 + 最大并发支持 -1(
queueTimeoutSeconds)。 - PR Komeiji-Shiki#36(回退早启动工具超时兜底):上游 PR Komeiji-Shiki#35 引入的 ToolIterationLoopService 早启动等待超时兜底会在流式结束后把 3 秒窗口内未落定的工具强制标为超时失败,误伤仍在正常执行的长耗时工具(execute_command 超过 3 秒即被占位结算);恢复原始等待逻辑(保留 abort 事件 race),长任务不再被误杀。
- VSCodeSettingsStorage 修复:读侧保持 VS Code 合并值语义(workspaceFolder > workspace > global),save 写入目标层级跟随(workspace 已有显式值写 Workspace 层,否则写 Global)——保留本地 remoteControl 字段;
- 不采纳:fast-tavern 相关 commits(b9e8f29d、0730d582)与 nightly 相关 commits 按项目决策以 -x ours 消除,合并树不含 fast-tavern-main 子项目。
🛠 并发子代理崩溃修复(桌面版)
- 根因:Electron 版
SubAgentMonitorBridge无条件订阅子代理事件总线,且对非 llm_delta 事件无节流、无「面板未打开」短路(VSCode 版有!panel守卫,移植时漏掉)——Monitor 从未打开时每个子代理的tool_*/content_snapshot/run_*事件仍逐条构造载荷并webContents.send,并发 8-10 个子代理即每秒数百条 IPC 灌进单一graycode:backend-to-renderer通道,渲染进程队列无限增长 → OOM/长时间无响应 → 窗口崩溃。 - 修复:① 新增
monitorMounted短路——前端subagents.monitorReady到达前不推送任何事件;② 面板折叠时非 delta 事件按 runId 合并到 100ms 窗口粒度(每 run 保留最新一条);③ 恢复可见时补推一次纯状态 manifest(navigate:false,不覆盖用户选中);④ 新增getCachedManifest(updatedAt 缓存 + 容量上限),消除每条事件重复派生轻量 manifest 的开销(与 VSCode 版对齐)。 - 附带:事件总线僵尸快照 TTL 清理——自动重建的无主快照(emit 迟到事件)不再永久驻留内存。
🔒 安全与质量
- 96 个冲突文件分 4 批人工裁决合并,fork 独有功能全量保留(远程控制/桌面背景图/多工作区/安全加固);本地版本体系 1.7.x 保持不回退上游 1.5.x;
- 测试回归修复:vscode mock env 重复声明合并、summarize 单超大轮断言对齐新语义、progressCards 重复 import、SubAgentsSettings.vue merge 双 style 块残留、根依赖补 jsdom;
- 后台任务完成回执/任务小气泡收不到修复:taskEvent 推送格式与前端订阅契约不符(后端直发 type:'taskEvent',前端按 command 信封订阅),导致后台任务完成回执不回流、BackgroundTaskBar 不出现——已统一为 command 信封(VSCode + Electron 双宿主),App.vue 保留旧格式兼容;
- 后端 276 套件/3146 例 + 前端 106 文件/1021 例 + typecheck + i18n:check 全绿;
- 敏感信息扫描通过(无本地路径/密钥/token 泄漏)。
GrayCode Desktop v1.7.15
Gray Code Desktop 1.7.15
本版本合入上游 5 个 commits(diff 审查异步化重构、子代理设置布局、i18n 修正),并修复桌面版多项问题。
✨ 新增
- 无限制模式工具循环墙钟时限可配置:新增全局设置
graycode.maxToolLoopWallclockMinutes(默认 30 分钟,-1 = 不设墙钟时限)。仅在「单回合最大工具调用次数 = -1(无限制)」时生效;工具设置页新增输入框;三语 i18n。 - diff 审查异步化重构(上游):writeReady 屏障真实化、自动保存倒计时展示同步、diff.accept/reject 非阻塞执行、前端 diff 逻辑抽离为 diffReviewController——一次点击不再占住主消息队列,checkpoint/保存等待不再卡住界面。
- 子代理设置 2×2 网格布局(上游):全局配置四参数(并发数/迭代次数/队列超时/运行时长)由一行四列改为 2×2 网格,窄面板不再挤行。
- 子代理运行时长上限可配置(上游 PR Komeiji-Shiki#37 合入):新增全局
defaultMaxRuntime(-1 无限制,默认 1800 秒)。 - 子代理排队超时可配置(上游 PR Komeiji-Shiki#34):新增全局
queueTimeoutSeconds(-1 无限制,默认 600)。 - defaultMaxIterations 支持 -1(无限制):前端校验与后端/上游语义对齐。
🛠 修复
- diff 双击竞态:DIFF_NOT_PENDING 按良性终态收敛,不再高频弹出「diff is no longer pending」错误(自动应用后 UI 立即结算)。
- Windows 空闲挂起渲染进程:电源事件恢复 + 探针自动 reload + unresponsive 5s reload 三层防御。
- 后台任务完成回执收不到:taskEvent 推送格式与前端订阅契约对齐,任务小气泡/完成回执恢复。
- 并发子代理太多导致崩溃:SubAgentMonitorBridge IPC 洪峰修复(面板未打开不推送 + 折叠节流)。
- 上翻历史过多时界面卡死:消息窗口有界化(滑动裁剪 + 回到最新入口)。
- 滚动条自动贴底失效:粘性底部状态自愈。
- 手动总结多轮 STALE_RANGE 失败 + 自动总结在长工具轮下必败回退。
- 自动总结白烧 AI 调用:auto 切点钳制、无新消息直接放弃、确定性失败不重试。
- i18n 文案修正(上游):defaultMaxIterations 提示移除过时 1~200 范围说明。
- 亮色模式灰底灰字真正根因:color-mix 定义点解析修复。
🔄 上游同步
- 合入上游 e12da76..e42da40 共 5 个 commits;此前已合入 2ffa0fc..e12da76(54 commits,含 PR Komeiji-Shiki#33-Komeiji-Shiki#37)。
- 不采纳:fast-tavern 与 nightly 相关 commits(按项目决策剔除)。
✅ 测试
- 后端 277 套件/3149 例 + 前端 106 文件/1022 例 + typecheck(backend/frontend/electron)+ i18n:check 全绿。
📦 安装
- 安装版:GrayCode.Setup.1.7.15.exe
- 便携版:GrayCode-Portable-1.7.15.exe(免安装,数据独立)
- 免安装 zip:GrayCode-1.7.15-win.zip
1.7.14dev
1.7.14dev — 亮色模式落地修复 + 窗口背景跟随主题 + 上游 25 commits 合入
✨ 新增
- 亮色模式真正亮色(1.7.13 主题模式的落地修复):
- 根因:桌面端 CSS 从未声明
color-scheme,系统为暗色时原生 select 弹出层/复选框/滚动条仍按暗色渲染(即使应用已切到亮色)。theme.css 暗/亮块补齐color-scheme; - 补全 17 个缺失的
--vscode-*变量(代码高亮语法色/通知/设置类,暗亮两套),消除亮色下回落到硬编码暗色 fallback 的对比度崩坏; - Mermaid 缩放查看、overlay 快捷选择 hover 的硬编码白字改为主题感知。
- 根因:桌面端 CSS 从未声明
- 窗口背景色与原生控件跟随主题:新增
app.setTheme上报链(App.vue → BackendHost → 主进程),主进程同步BrowserWindow.setBackgroundColor+nativeTheme.themeSource——系统对话框、原生菜单、首帧启动画面、prefers-color-scheme全部随应用主题(亮/暗/跟随系统)而非系统;启动时同步预读设置文件免首帧闪烁。 - 子代理「与当前模型同步」(上游 PR Komeiji-Shiki#32 最终形态):每个子代理独立勾选,勾选后忽略自身固定渠道/模型,运行时使用当前会话渠道与模型(渠道+模型一并继承);旧全局开关启动时自动迁移。
🔄 上游同步(25 commits,1f4f0020..bb8d0b1)
- 发布前修复批次 H3-H6:checkpoint 元数据精确匹配 + retention 假 manifest 防护;conversation 分段索引不可读自愈重建(不再静默丢历史)+ 插入同步分支图 + rejectToolCalls 空数组语义;webview 面板关闭中止活跃流(不再后台全量生成烧 token)+ 消息队列重置;channel count_tokens 完整计数 + 多段 thinking 签名配对;chat trim 预算/usageMetadataPartial 回退估算;mcp/memory uri 透传 + timeout:0 无超时语义;prompt frontmatter 反转义 + fileTree 逃逸 + 动态 section vanished 检测;settings toolAutoExec 缺键回落默认(delete_file 确认保护)+ JSON 损坏自愈 + reset 保留 storagePath;deps require.cache 清理 + install/uninstall 互斥 + 预发布版本逐段比较;tools realpath 防符号链接绕过 + write_file 存在保护 + terminal where argv 防注入 + media 超时取消口径;前端取消标记按会话隔离 + JsonViewer DAG 误标 + 输入指纹/引用复用 + 声音聚焦。
- 不采纳:fast-tavern 子项目与 nightly 相关 commits(-x ours 消掉并保留来源标记)。
🛠 扫描优化(两轮扫描,安全/一致性/死代码)
- crop/rotate/resize 三工具超时取消口径统一(API 请求超时不再误报用户取消);
- Unix which 检测改 argv 传参(消除命令注入面);compareVersions 预发布解析修正(
-nightly.x不再误并入版本段); - realpath 失败结果不再永久缓存(fail-open 边缘)+ 符号链接重定向缓存失效盲区(lstat);
- 远控端文件读写补 realpath 复核(词法护栏之外的符号链接逃逸);
- StreamChunkProcessor 终结事件暂存死路径清理(与 H6 中止语义对齐)。
🔒 安全与质量
- 合并冲突 12 处逐项人工裁决(diffManager 锁冲突恢复/StdioClient 生命周期/UpdateChecker 版本比较/workspacePaths 解析链等),fork 独有功能全量保留(远程控制 V7.2/桌面背景图/agentInbox/多工作区/安全加固);
- 后端 273 套件/3088 例 + 前端 102 文件/1000 例 + typecheck 全绿;
- e2e/smoke 与 CI 构建产物一致(zip + Setup + Portable + blockmap)。
1.7.13dev
1.7.13dev — 外观设置主题模式 + UI 不透明度 + 远控端 Diff 查看/批准
✨ 新增
- 外观设置「主题模式」:亮色 / 暗色 / 跟随系统三档切换,切换即时生效(跟随系统时随系统亮暗模式自动切换),保存后持久化;三语言文案齐全。
- 外观设置「UI 不透明度」:滑块 0-100(默认 100)调节输入框、设置面板等界面面板的整体不透明度,透出窗口背景,拖动滑块所见即所得;远控端 UI 为独立页面不受影响。
- 远控端 Diff 查看与批准:桌面端出现待批准 Diff 时,移动端实时显示「等待批准」横幅(文件路径 + 剩余时间倒计时 + 自动拒绝提示),支持查看双栏 Diff 预览并远程批准/拒绝;桌面端未开自动批准时移动端不再静默空转(此前最长干等 5 分钟被自动拒绝)。
- 远控端流式等待提示:首块内容到达前显示「等待桌面响应…」占位,不再显示空白消息假死。
🔒 安全与质量
- diff 端点沿用 Host/Origin/JSON-only 安全基线 + diffId 白名单;预览仅 pending 态可读、单侧 256KB 截断;只读 pending 快照不破坏工具链 partial 结算。
- 测试扩至 199 例(diff 端点 / SSE 广播 / 移动端横幅全流程 / 增量流式回归);后端 273 套件 / 3070 例 + 前端 101 文件 / 994 例 + e2e / UI smoke 全绿。
GrayCode Desktop v1.7.13
GrayCode Desktop v1.7.13
自动更新已修复(?)本版开始,自动更新会正确区分便携版/安装版,只下载与当前运行形态匹配的安装包。
GrayCode 桌面版 v1.7.13(正式版):修复自动更新链路(下载完成后安装器从未启动、有更新却从不提示)、便携版/安装版更新资产严格区分、下载源信任校验;同时带来主题模式切换、UI 不透明度、远控端 diff 查看与远程批准等新功能。
自动更新修复(本版重点)
- 修复「下载完成但安装器从未启动」:此前安装包 .exe 被安全白名单拦截且失败被静默吞掉——更新下载完成后系统从未打开安装包。新增专用启动通道(仅允许更新缓存目录内的 .exe/.zip 启动),启动失败会明确报错而非谎报成功;
- 修复「有更新却从不提示」:启动检查(延迟 10s)完成发现新版本现在会主动弹窗提示(此前前端只查询一次内存状态,永远错过检查结果);
- 便携版/安装版资产严格区分:便携版用户只下载便携版安装包(GrayCode-Portable-*),绝不回退到安装版(避免污染系统环境);安装版用户优先下载 Setup 安装包;
- 下载源信任校验(安全):更新下载地址只允许本仓库 GitHub Releases,其它来源一律拒绝(防 XSS 后任意 .exe 落盘启动)。
新增
- 外观设置新增「主题模式」:亮色 / 暗色 / 跟随系统三档切换;
- 外观设置新增「UI 不透明度」(0-100,默认 100):输入框/设置面板等界面面板整体半透明透出窗口背景,文字/图标始终全不透明;
- 远控端 diff 查看与远程批准/拒绝:移动端可查看变更内容并远程批准/拒绝(diffStatus SSE + /api/diff-status|preview|accept|reject);
- 远控端流式等待提示:首块内容到达前显示「等待桌面响应…」占位。
修复
- 思考强度 Off/none 语义最终修正(openai/gemini/anthropic 三系对齐:off = 强制传递禁用参数,none = 完全不传递);
- second-instance 启动竞态崩溃(双击两次不再崩)、便携版数据目录只读探测与回退、MCP 配置损坏不再阻断启动、子代理 token 消耗归集主会话用量统计、错误日志 apiKey 脱敏、超大文件 LSP 扫描上限等;
- 移除上游 nightly 更新渠道(dev/stable 通道按版本号自动判定)。
安装
- 便携版(推荐):
GrayCode-Portable-1.7.13.exe直接运行,数据保存在 exe 同目录data文件夹(可整体拷贝迁移);更新时自动下载新版便携版并替换; - 安装版:
GrayCode.Setup.1.7.13.exe(NSIS 安装程序,可选安装目录); - 免安装 zip:
GrayCode-1.7.13-win.zip解压即用。
自动更新修复由deepseek v4 flash声明,与本人无关……
1.7.12dev
1.7.12dev — 同步上游(模块化摊平 1-9 批 + Bug Hunt 五轮 150+ 修复 + i18n 全量统一 + 发布前修复批次)
🔀 上游同步
- 合入上游 main 至
332221ef(三次合并:模块化摊平 7 批 + Bug Hunt 分支 5a3d7d3 + 发布前修复批次 308c79d):- 模块化摊平重构:registry 死系统删除、ChatFlowService / ConversationManager / CheckpointManager / ToolExecutionService / execute_command / search_in_files 等大文件拆分至
flow/、manager/、tool-execution/、terminal/、search/、subagents/executor|eventBus、tools/shared/等子目录,后端依赖方向清零; - 修复吸收:fileWriteLock 复合身份键 + acquire 参数化超时、MCP stdio 生命周期 / 串行队列 / 原子写、memory 迁移降级与 1000 上限、prompt 动态上下文差分加固、子代理并行段收尾 30s 兜底、输入框残留双机制(DOM 指纹同步 + 清空强制提取)、流式 Markdown 表格渐进渲染、恢复默认模板
{{$MEMORY}}占位符、i18n 死键清理、ErrorType 下沉core/errorTypes、Bug Hunt 五轮 150+ 修复; - 发布前修复批次(308c79d4):渠道配置启动预加载、checkpoint 分支隔离、config 串行队列、MCP 生命周期、SSE 流式下载、memory 位图缓存、prompt 单次交替正则等;
- i18n 全量统一:shared 提取 +
i18n-sync三语言同步脚本,160 条共享映射 × 3 语言一致;
- 模块化摊平重构:registry 死系统删除、ChatFlowService / ConversationManager / CheckpointManager / ToolExecutionService / execute_command / search_in_files 等大文件拆分至
- 不采纳上游 nightly 自动更新机制、fast-tavern 子项目与 VS Code Marketplace 上架文档(桌面版非插件、更新快、用户自行构建简单);KNOWN_ISSUES 同步清理 fast-tavern 条目。
🖥️ 桌面版独有功能全量保留
- 远程控制 V7.2(移动端三页签 + 渠道/模型/工具/记忆全量管理)、桌面背景图、agentInbox(A-COMM 信箱)、多工作区、安全加固、one-off 渠道切换;
- 本地独有测试迁移至
backend/__tests__(远控端 194 例 + 桌面版测试纳入 jest roots,不再被静默跳过)。
🛡️ 新建对话链路加固(上游 308c79d 反馈 bug 不引入桌面端)
- 根因彻查:上游该提交把「新建对话」从立即执行改为「初始化完成前挂起」(pendingNewChat 缓冲),初始化 IPC 卡顿时表现为按钮无响应;且渠道预加载在宿主未就绪窗口发起注定超时的请求,与初始化加载在串行队列互相排队;
- 加固:① 渠道配置预加载延后至
mainViewInitialized之后(消除未就绪窗口的超时请求竞争);② pendingNewChat 挂起加 60s 超时兜底(初始化卡死时强制补执行,不吞掉新建命令);③ hidden functionResponse 发送语义按上游新设计适配(真流式拒绝防流踩踏、等待态放行防计划确认丢失),测试同步更新。
🔧 合并后回归修复
- 恢复
storagePath.getStats处理器(协议键 / UNBOUNDED 超时豁免 / 三语言文案); - monitor-smoke 经 BackendHost 共享事件总线单例(修复 1.7.5 三包拆分起 main/BackendHost 双单例分裂);
- vscode-shim 补 Range 四参构造 / createWebviewPanel / ProgressLocation / languages 注册 stub;
- 重复常量单源化(MAX_SINGLE_LINE_CHARS / FILE_SCAN_CONCURRENCY / raceWithTimeout)、diffManager 引用改指 core 直连;
- 修复 prompt 交替正则缺分组({{$MEMORY}} 等匹配失效)、settings 模块求值环(MACHINE_SCOPE_KEYS TDZ)等合并回归。
✅ 质量
- 后端 273 套件 / 3065 用例通过;前端 101 文件 / 994 用例通过(零 errors);三处 typecheck(根 / test / electron-app)全绿;i18n-sync 检查通过;
- E2E 全部通过、UI 冒烟通过、monitor 冒烟通过;
- 警告:远程控制功能暂时处于测试阶段,未必稳定,请谨慎使用。
📦 资产
GrayCode-1.7.12-dev-win.zip— Windows 便携 zipGrayCode-Portable-1.7.12-dev.exe— Windows 便携 exeGrayCode.Setup.1.7.12-dev.exe— Windows 安装包(+ blockmap)