Qoder CN 0.1.0 (user 版) 主进程正常启动但主窗口永远不显示(隐藏状态),疑似等待服务端就绪信号;region/endpoints 持续 503 + 版本被 server-hold

环境

  • Windows 11 x64 (build 26200)
  • Qoder CN 0.1.0,user 版(仅为我安装),production/stable
  • 安装位置:D:\Program Files (x86)\Qoder CN(同时测试过自定义 userData,现象相同)
  • 共享客户端:2026.819.1 (build cd354ca, 2026-08-20)

现象

双击快捷方式后没有任何窗口出现(任务栏也没有)。实际排查发现主进程一切正常地启动了,卡在最后一步:

  • main.log 每次都正常走完:数据库初始化 → 登录态恢复(logged_in: true)→ 插件目录刷新(PluginRuntimeCatalog generation 5)→ 然后一片死寂,没有任何窗口创建日志
  • 用 EnumWindows 验证:主进程已经创建了主窗口(rect=(177,177)-(1457,922)),但 visible=False、title 为空——窗口停在隐藏状态,ready-to-show 之后没有调用 show
  • 渲染进程存在(2 个),无崩溃、无 WER 报告、无 Crash Dump、main.log 无任何 ERROR
  • 主进程保持 5 条与 47.116.142.188(gateway)/8.153.206.47(openapi)的 ESTABLISHED 连接,像是长期挂起等待
  • 双击再次启动时新进程被单实例锁吸收直接退出,用户侧表现就是“完全打不开”

服务端侧的发现(疑似根因)

  1. GET https://gateway.qoder.com.cn/api/v4/service/region/endpoints 持续返回 503(系统 DNS、httpdns IP 47.116.142.188、多次重试均 503;而 openapi.qoder.com.cn 正常返回 401)
  2. qodercli.log 中 qoder_runtime.ready 阶段 endpoint_ready=false,syncEndpointAsync 请求被 abort
  3. main.log 中更新状态为:[DesktopUpdate] Desktop update state initialized {"stage":"idle","assignmentId":"server-hold-0.1.0-...","stage":"idle"} —— 0.1.0 疑似被官方 server-hold 暂停推送

猜测:窗口显示逻辑在等待区域中心选举(endpoint election)成功,而该服务端 503 导致永远等不到。

已排除的本机原因

  • 重启、管理员/普通权限启动、二次激活
  • 僵尸进程占用(已清理)
  • 旧版残留注册表(Qoder Installer\Replacement 记录已清理,无效)
  • 用户数据损坏(全新 --user-data-dir 现象相同)
  • 插件注册表(按论坛“删除 ~/.qoder”思路改名 plugins 目录重建,无效)
  • GPU(--disable-gpu 无效)
  • 共享客户端(确认 QoderCN.exe start 正常运行中,无影响)
  • 系统代理(未启用)

附带问题:安装器对普通权限不友好

Qoder-CN-win-x64-user.exe(user 版)在系统状态完全干净、无任何进程占用的情况下,普通权限运行必报“无法安全备份当前安装位置,因此尚未安装 Qoder。关闭占用该位置的程序并检查权限后重试”,重启无效;以管理员运行则一切正常。建议:要么安装时自动请求提权,要么报错文案给出“请以管理员身份运行”的明确指引。

日志位置(可提供)

  • %APPDATA%\com.qodercn.app.stable\logs\<运行目录>\main.log(每次都终止在 PluginRuntimeCatalog 之后)
  • C:\Users\yg\.qoder-cn\logs\runs\<运行目录>\qodercli.log(含 endpoint 503/abort 记录)

0.1.1 版本已恢复正常,报错只发生在首次从 0.1.0 残留状态升级的场景