fix(startup): replay config to renderer on RENDERER_READY (autostart)#328
Merged
Sway-Chan merged 1 commit intoJul 24, 2026
Merged
Conversation
修 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题(#325)
开机自启后主页显示「无节点」,但实际已连上默认节点,退出重开才恢复。
根因:首页节点显示纯由渲染端 store 的 config 派生(connection-control-card / home-status-bar),不读连接状态。silent-start「deferring window」期主进程发的 CONFIG_CHANGED 无订阅者被丢弃;渲染端挂载后只靠单发 loadConfig 快照——若落在自动连接 / 订阅补更 churn 中(servers 半更 / selectedServerId 未定),定格「无节点」,此后无事件再触发 reload。
改动
renderer-ready-replay,守 isQuitting/destroyed,读失败只 warn 不阻 mount gate),覆盖 silent-start 丢事件 + reload 后空窗。applyConfigFromEvent(set + 作废在飞旧 pull,防 push 被旧 pull 覆盖);抽共用gcOrphanTailscaleLoginCache双调,挂载期不漏孤儿 GC。验证
真机验证
三时刻唤窗时序(silent-start 无窗期 / 建窗到 listener 注册前 / reload 后)建议 runtime 复现验证;打点 debug 需 logLevel=debug。
Fixes #325