Skip to content

Tabletwo 升级正式 Calcit 0.30.0:迁移 98 处 Map 读取并修复拖放光标 - #31

Merged
tiye merged 4 commits into
mainfrom
migrate/tabletwo-option-0300
Oct 16, 2026
Merged

tiye merged 4 commits into
mainfrom
migrate/tabletwo-option-0300

Conversation

@tiye

@tiye tiye commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

最新追加:正式协作依赖图

使用者影响:Cumulo Reel 0.0.54 已正式发布,现同步 Recollect 0.0.61、WS-EDN 0.0.40、Respo Message 0.0.35,避免根依赖和传递版本冲突。仅修改 deps/README,应用源码、原断言、package/lock、workflow、COS/部署路径均不变;不代表后端已准备,不合并生产。以下旧段落的“等待 Cumulo054”是历史证据,现由本段取代。

已用四个正式 tag 的独立干净克隆验证当前实际 root:完整 strict status=passed,原公共 native/JS 各51项、0排除,原 native server-effect 2项,生产构建、immutable、真实 native WSS/guest patch/消息/Unit callback/合成存储与backup一致/SIGINT退出通过。没有运行或绕过受限的本地 Caps 缓存操作,干净 Caps 验证以此次新 head 的 CI 为准。共享 runner 首次调用因缺省相对文档路径错误退出,显式指向其现有 exclusions/support 文档后重跑通过;没有新增排除或脚本。

0.30.1-alpha.4 只读探测:服务端 77/77 通过;客户端 308通过、6失败、131阻塞、1级联,失败在 Respo style->string、三种 nominal identity、cursor 和 Alerts prompt event。旧 WS/Recollect 阻塞已不再出现,但这不是整图兼容或 alpha 运行验收。原完整浏览器 Confirm/Text、后端准备和生产合并门槛仍保留。新 head 的 CI/review 待独立完成,不能沿用旧 head 的绿色结果。


本轮追加:正式排序键依赖(6660e3b)

使用者影响:Bisection Key 0.0.32 已正式发布(精确 main e786e19,PR/main CI 和实际 review 通过),本次同步 std 0.2.43,避免 root/transitive std 冲突。不改变应用源码、原断言、package/lock、workflow、数据库格式、COS 或部署路径;未合并应用、未部署后端。

在真实发布 tag 的独立干净克隆与匹配 std043 上复跑当前应用,其他依赖保持原版本:完整 strict、原51+2测试、JS/Vite构建、原真实nativeWSS/guestpatch/Unitcallback/临时持久化-backup一致/SIGINT退出通过。不是只沿用此前包含其他候选依赖的副本结果。

新HEAD CI 38839079749 及其实际review仍需独立通过;下方 c336059 是此前源码迁移证据,不是新head通过声明。Cumulo/Recollect/WS/Message另一组正式依赖仍等待Cumulo054,未擅自引入未发布版本。原完整浏览器Confirm/Text和后端部署门槛仍保留。


使用者需要注意

CLI / @calcit/procs 从已发布的 0.30.0-alpha.3 精确配对升级到正式 0.30.0。本轮清理 0.30.1 即将改变返回合同的底层 Map 接口,但 不代表整个依赖图已兼容 0.30.1,不锁 alpha/hash。

正常文章、段落顺序、缺失值 nil、false/0、Number session key、原 decoder 和 wire/storage 协议不变。拖放 payload 缺少 target/base 会更早给出明确错误;同时修复真实回放发现的旧问题:移动段落后,原 update 将嵌套 session 路径当成单键,编辑光标未更新。现在以 update-in 和 Option 输入处理更新光标,保留内容。

前后端部署路径、COS/CDN、持久化文件和模块版本不变。本 PR 不发版、不合并部署;原 Confirm 删除、完整 Text popup 和全应用浏览器验收限制仍保留。

具体修改

  • 83 处业务代码 + 15 处原测试读取从 &map:get 迁到公开 get:Dynamic Map 用 .unwrap-or nil,具体 Map 用 match 保留原缺失语义。不是将 Option 当原值,也不添加伪类型或统一防御包装。
  • 段落列表用 map-entries 保留 String key 和 Map value,仍按原 key 排序,渲染原段落和 focus。避免 .to-list/.map-pair 擦除 key 类型。
  • 仅补 1 条真实拖放/光标回归测试,在原 move :tests 中覆盖重排、内容、Number session key 和错误 payload;无新测试文件、runner 或检查脚本。
  • README 同步影响和限制;正常 Yarn 生成 lock,保留一小时隔离。现有正式模块图及 CI 命令不变。

验证证据与边界

  • 原 alpha.3 基线 50 项共同语义测试与 2 项 server-effect 通过。正式 0.30.0、源码修改前的可达检查为客户端 446 / 服务端 77,完整 strict 通过。
  • 修改后双入口可达检查与完整 strict 通过;最终原共享 runner 的 native/JS 各 51 项(0 excluded),native server-effect 2 项通过。原 52 条测试的名字、标签、断言预期均保留,仅迁移读取;另增上述 1 条真实回归。
  • 官方解析后全 Snapshot 对照:除 98 处读取、1 处 MapEntry pipeline、2 个缺失必填 key 的错误分支和 1 处 cursor update-in + 回归测试外,schema/import/config/其他 AST 相同(Set 序列化顺序归一);所有区域 &map:get 为 0。
  • 正式工具链 JS / Vite CDN base 构建、Yarn immutable、canonical format / diff check 通过。大 chunk 提示保留,不调宽阈值。
  • 原隔离 native WebSocket 回放验证 connect、guest patch、unknown kind/op、真实 Unit callback、disconnect、合成存储/backup 一致和 SIGINT clean exit;不读取生产库或凭据。
  • 隔离真实浏览器挂载本次 comp-previewer:乱序插入的 a/b 段落按原 key 顺序显示,Unicode/字面量文本、Number 成员和缺失 focus 正常,无 console error(保留原 mode 未配置 warning)。未把静态组件验收称为完整双客户端拖放/Confirm/Text popup 验收;临时页和 Vite 已关闭。
  • 0.30.1-alpha.4 只读探测仍失败于已发布旧依赖:客户端有 WS-EDN callbacks、Respo style/nominal identity、Respo Message 等诊断,服务端有 Recollect diff-map。依赖未迁移,不放宽门禁或混用不一致图;正式 0.30.0 结果与这项探测分开报告。干净 CI Caps/远程 Actions 以本 PR 的实际结果为准。

修改均通过 Calcit 官方 query/tree/edit transaction 和 scoped revision,临时审计/回放文件不提交;没有增加编译器 fix/proof 规则、concurrently、额外 COS verify 脚本或生成目录。

@tiye
tiye merged commit ee97279 into main Oct 16, 2026
1 check passed
@tiye
tiye deleted the migrate/tabletwo-option-0300 branch October 16, 2026 07:52
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