grok_switch v0.4.2:子代理模型、Windows 启动恢复与单实例运行
v0.4.2 主要完善 Grok Build 新版子代理模型配置,并集中加强 Windows 启动可靠性。供应商现在可以分别设置 explore 和 plan 子代理模型;程序启动失败时会显示可见的错误提示,损坏的本地 JSON 会保留备份后自动恢复,端口异常也不再直接导致静默退出。此外,新版本加入了 Windows 单实例运行、Release 校验和与可选 Authenticode 签名流程。
Explore 与 Plan 可以使用不同模型
旧版使用 [subagents].default_model 保存单个子代理模型。Grok Build 新版配置改为在 [subagents.models] 下分别指定 explore 和 plan:
[subagents.models]
explore = "grok-4.5"
plan = "grok-4.5"
v0.4.2 的供应商编辑页提供两个独立字段,允许探索代码与制定计划使用不同模型。导入旧配置时,如果只发现旧的 default_model,程序会自动将它迁移为 explore 和 plan;重新应用供应商后会删除旧字段,并保留 [subagents] 中其它不受管理的设置。
启动失败不再只是“双击没反应”
Windows GUI 程序没有控制台窗口,过去遇到用户目录不可写、设置文件损坏或端口异常时,用户可能只看到进程立即消失。
v0.4.2 将诊断日志初始化提前,并在致命启动错误时显示原生 Windows 对话框。错误详情会尽可能写入:
%USERPROFILE%\.grok_switch\grok_switch.log
如果日志目录本身不可写,对话框也会显示原定日志路径,便于检查用户目录权限或安全软件拦截。
损坏的 JSON 会先备份再恢复
设置、供应商、Grok Auth 和号池索引均属于本地 JSON 数据。遇到断电、手动编辑错误或同步软件冲突造成的无效 JSON 时,新版本不会直接拒绝启动,而是先将原文件保存为:
<原文件>.corrupt-<时间>.bak
随后恢复安全默认值并记录日志。损坏原件仍然保留,方便手动找回 API Key、账号信息或其它配置。
端口校验与动态端口回退
设置接口现在会在后端校验端口必须位于 1024–65535,不能再通过异常 JSON 或直接接口写入无效端口。
如果配置端口及其后续候选均被其它程序占用,grok_switch 会请求 Windows 分配可用动态端口,并把实际端口写回设置。Web UI 会显示实际监听端口,本地 Grok Auth Profile 也会跟随更新。
再次双击会打开已有实例
v0.4.2 使用 Windows named mutex 保证当前会话中只运行一个 grok_switch 实例。第一次双击会启动托盘和本地服务;再次双击时,第二个进程会查找已有实例的实际端口、验证 /api/status 返回的数据目录,然后打开已有管理页面并退出。
这样可以避免多个托盘图标、连续占用 17878/17879 以及多个进程同时写入同一份设置文件。
无代理环境下的号池巡检更稳定
号池巡检修复了空代理配置可能把 typed-nil transport 写入 http.Client 的问题。没有配置 HTTP/SOCKS5 代理时,现在会正确使用 Go 默认网络 Transport,不会在首次请求时发生 panic。
Release 构建与校验
构建脚本现在会生成:
grok_switch.exegrok_switch.exe.sha256
发布维护者可以通过 PFX 文件或 Windows 证书库 thumbprint 执行 Authenticode 签名,发布工作流会在签名后再次验证状态。仓库尚未配置代码签名证书时,工作流会发布未签名的 Windows x64 构建;普通用户仍可直接运行,但首次下载可能遇到 SmartScreen 提示。
ImageMagick 或 rsrc 已安装但配置损坏时,构建也会安全回退到仓库已有图标或无 Explorer 图标构建,不再因为可选工具故障而中断。
升级提示
升级前请先退出旧版托盘进程,再用 v0.4.2 的 grok_switch.exe 替换旧文件。供应商、号池账号、设置和历史备份仍保存在 %USERPROFILE%\.grok_switch,不需要重新配置。
如果 Windows 提示无法识别发布者,可以先核对 Release 页面提供的 SHA-256 文件,再通过“更多信息 → 仍要运行”启动。新版本首次启动后,再次双击同一个 EXE 应直接打开已有管理页面。