Skip to content

存档恢复前注册保存监听,失败后可能覆盖原数据 #18

Open

Description

@tiye

使用者影响

当前 main 76319c4 的 app.main/main! 在读取并解析存档之前已注册 beforeunload 保存监听。读取/解析/类型解码失败后关闭页面,仍可能把初始状态覆盖回原存档。

修复方向与证据边界

通过官方 query 确认顺序:register-language、render、watch、devtools、beforeunload、storage-get/parse/hydrate、随机 pick-case。
只把原恢复表达式整体移到渲染/保存监听之前;保留原 storage key、Map 解码与字段、启动随机展示、高亮和导航,不吞异常、不新增默认值。

这是应用初始化副作用顺序问题,不是 Calcit 诊断缺失,无需添加项目专用硬编码 fix。候选将跑正式 0.30.1 完整图与原两项测试、实际正常浏览器;坏存档真实保留性测试尚未执行,不虚报全部故障场景。

Activity

  1. tiye commented on Oct 21, 2026

    @tiye
    MemberAuthor

    候选 #19 通过官方受保护事务前移恢复顺序,最终 171102c / CI39695949710 的正式0.30.1配对、306全定义、31公开定义、完整strict及原两项测试通过。实际页面高亮/Logo切换/正常刷新无warning/error;坏存档真实保留性尚未验收,issue保持开放,不将正常路径冒称全部故障覆盖。未合并或部署。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions