Skip to content

fix(startup): replay config to renderer on RENDERER_READY (autostart)#328

Merged
Sway-Chan merged 1 commit into
dododook:mainfrom
Sway-Chan:fix/autostart-node-hydration-325
Jul 24, 2026
Merged

fix(startup): replay config to renderer on RENDERER_READY (autostart)#328
Sway-Chan merged 1 commit into
dododook:mainfrom
Sway-Chan:fix/autostart-node-hydration-325

Conversation

@Sway-Chan

@Sway-Chan Sway-Chan commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

问题(#325

开机自启后主页显示「无节点」,但实际已连上默认节点,退出重开才恢复。

根因:首页节点显示纯由渲染端 store 的 config 派生(connection-control-card / home-status-bar),不读连接状态。silent-start「deferring window」期主进程发的 CONFIG_CHANGED 无订阅者被丢弃;渲染端挂载后只靠单发 loadConfig 快照——若落在自动连接 / 订阅补更 churn 中(servers 半更 / selectedServerId 未定),定格「无节点」,此后无事件再触发 reload。

改动

  • main 收到 RENDERER_READY 时无条件 replay 一次终态 config(新 DI 模块 renderer-ready-replay,守 isQuitting/destroyed,读失败只 warn 不阻 mount gate),覆盖 silent-start 丢事件 + reload 后空窗。
  • store applyConfigFromEvent(set + 作废在飞旧 pull,防 push 被旧 pull 覆盖);抽共用 gcOrphanTailscaleLoginCache 双调,挂载期不漏孤儿 GC。
  • silent-start 丢事件 debug 打点。

验证

  • gate:tsc(main+renderer) / jest 3348 / eslint 0(新增 replay + store + GC 回归测试)。
  • 三轮独立复审零 Crit/High/Med/Low/Nit(loadConfig 单飞/代际护栏、隐私态水合回归、replay 幂等逐条核实;过程中发现并修复一处隐私锁旁路 High)。

真机验证

三时刻唤窗时序(silent-start 无窗期 / 建窗到 listener 注册前 / reload 后)建议 runtime 复现验证;打点 debug 需 logLevel=debug。

Fixes #325

dododook#325:开机自启 silent-start 期主进程发的 CONFIG_CHANGED 无订阅者被
丢弃,渲染端挂载后只靠单发 loadConfig 快照——若落在自动连接/订阅补更
churn 中,首页定格「无节点」(实已连默认节点),须退出重开才恢复。

- main 在收到 RENDERER_READY 时无条件 replay 一次终态 config(新 DI
  模块 renderer-ready-replay,守 isQuitting/destroyed,失败只 warn 不阻
  mount gate),覆盖 silent-start 丢事件 + reload 后空窗
- store applyConfigFromEvent(set + 作废在飞旧 pull,防 push 被旧 pull
  覆盖);抽共用 gcOrphanTailscaleLoginCache 双调,挂载期不漏孤儿 GC
- silent-start 丢事件 debug 打点

真机验证 pending(三时刻唤窗时序)。

Refs dododook#325
@Sway-Chan
Sway-Chan merged commit f4adea7 into dododook:main Jul 24, 2026
2 checks passed
@Sway-Chan
Sway-Chan deleted the fix/autostart-node-hydration-325 branch July 24, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]

1 participant