Skip to content

迁移 Diffview 到 Calcit 0.30.1 候选,保留差异行为并加强存档边界 - #42

Merged
tiye merged 1 commit into
mainfrom
migrate/diffview031
Oct 20, 2026
Merged

tiye merged 1 commit into
mainfrom
migrate/diffview031

Conversation

@tiye

@tiye tiye commented Oct 20, 2026

Copy link
Copy Markdown
Member

对用户的影响

保留编辑器输入、行/词差异、Sorted、Swap、Clear、原 ⌘ 快捷键及存储 key。旧 Struct 和 Map 存档均检查后恢复;新存档改为同字段 Map,避免依赖序列化 Struct 的身份,不保存 Reel 调试历史。

生产 COS/CDN 与 rsync 路径不变。此仓库原工作流会给同仓 PR 上传独立 pr/<number>/<run>/<attempt>/ 前端资源,继续使用 COS action 内置校验;生产服务器部署只在 main push,创建本 PR 不触发生产部署。

修改内容

  • CLI / procs 0.27.0→配对 0.30.1-alpha.5。正式 0.30.1 release 尚无 CLI 资产,不冒称已正式发布。Respo 0.16.122、Reel 0.6.39、UI 0.7.41 使用正式模块 tag,消除旧 alpha 模块依赖。
  • 通过官方 CLI dry-run/revision 事务迁移:Reel Map→State<Enum,StoreData>;StoreData 的 states 明确 Map<Tag,Dynamic>;移除读取 store、刷新和键盘事件的伪强转/断言。
  • 业务操作仍接收 Enum,文本与游标 payload 在实际写入前解码,未知操作保留原日志/不改 store 的行为;Reel 控制独立走正式 typed API。
  • 旧 Struct 存档先显式投影字段,再统一 checked decode,不把 Struct 当 Map 直接解码;DOM Document、KeyboardEvent、Option 存储与 Unit/watch 合同使用真实边界;join-str→join-string。
  • CI 从 deps-file 选 CLI、all-defs/full strict,并替换已退役 check-public;原六项业务回归只更新 Reel 与 ChildPair 读取方式,不新增测试框架、CDN checker、并发依赖或质量基线。忽略 .calcit/ 本地产物。

验证与风险

  • 原 main 精确提交 1e63ad7dd64be0e0d34504c0ff28c8b493735427 的 CI 38899891217 成功;不是本地旧 CLI 执行证据。
  • 本地 all-defs 206/206、公开定义 28/28、完整 strict passed,安全迁移建议 0;deprecated call 和 dynamic method 为 0,源码 unsafe/assert-type 搜索为 0。
  • 原六项 JS 回归全部通过:diff 数据解码、行/词增删、textarea 单 Enum/fallback、toggle/swap/clear、排序、嵌套状态。
  • 实际恢复函数验收当前 Struct、格式化再解析的 Struct、Map,以及拒绝错误字段;真实浏览器输入、结果/词模式、Sorted、Swap、⌘E 及 beforeunload 保存后重新加载均正常,浏览器采集日志无 warning/error。
  • immutable 与生产 CDN 前缀构建通过;本地正式模块导出只读使用,不运行本地 Caps,不改共享模块源;独立依赖图以此 PR CI 为准。
  • 保留 dispatcher/旧存档的两个开放入口和真实异构状态,不宣称全类型化。Struct 兼容投影使用现有 &struct:to-map,无新增编译器规则/证明;本轮未复现新的共享模块/编译器缺陷,旧 API 更名与旧测试布局按已发布合同迁移,不重复建 issue。
  • 未合并、未发版、未生产部署。

@tiye

tiye commented Oct 20, 2026

Copy link
Copy Markdown
Member Author

精确提交 95caa46 的 CI 39362559996 全部成功:独立严格依赖图、CLI/npm 核对、canonical、all-defs、完整 strict、公开定义、原六项 JS 回归和前端构建均执行。COS action 自身实际验证了 3 个文件:JS 446634 bytes、CSS 407 bytes、HTML 2859 bytes,预览前缀 Memkits/diffview/pr/42/39362559996/1/;未添加重复校验脚本。生产 rsync 跳过。浏览器已实际验证输入、行/词差异、Sorted、Swap、⌘E、beforeunload 保存与重新加载恢复;旧 Struct/Map 恢复由真实生成函数另行验证。源码 unsafe/assert-type 为 0,但两个开放入口及异构状态仍如实保留。未合并、未发版、未部署生产。

@tiye
tiye merged commit 4542617 into main Oct 20, 2026
1 check passed
@tiye
tiye deleted the migrate/diffview031 branch October 20, 2026 05:22
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.

1 participant