Skip to content

迁移正式工具链并收紧业务边界 / Migrate released toolchain and checked boundaries - #29

Merged
tiye merged 19 commits into
mainfrom
migrate/tabletwo-core-aliases-1916
Oct 15, 2026
Merged

tiye merged 19 commits into
mainfrom
migrate/tabletwo-core-aliases-1916

Conversation

@tiye

@tiye tiye commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

使用新版 Calcit 升级 Tabletwo 时,页面和 native 服务端现在能在已发布的 alpha.3 配对工具链及收敛后的正式模块图上通过完整 strict 检查。登录、投影、编辑和持久化仍使用原 Cirru EDN 协议;Text 导出不再把 Option 当成 Map。本次补上严格依赖校验并把 README 收敛为实际开发说明,没有增加工具入口。完整浏览器交互、删除确认、审查和 main 验收仍未完成,不作为稳定 0.30.0 发版放行依据。

中文

关联 #28,属于 calcit-lang/calcit#1916 的具名消费者迁移;不自动关闭任一 issue。

范围与设计

  • 保留原 checkout,在独立工作树整合既有迁移。通过 scoped revision 事务迁移两处 merge-dynamic 和一处 w-log,清理 require/refer 冗余 []。
  • 开放投影、凭据、路由、消息和真实事件在实际使用处验证 String/Bool/Number/Map;保留 Number session key、离线 Option、原 op/data envelope 与 Cirru EDN wire/storage。用发布版 Recollect codec 恢复 patch 名义值,不将 raw Map 直接断言成业务值。
  • 组件 props、拖放及 storage/time/DOM/高亮宿主方法使用具体合同;应用 effect callback 真正返回 Unit,不改变 reset!/连接函数合同,也不在尾 recur 后补 Unit。
  • Text 导出使用 MapEntry<String, Map<Tag, Dynamic>> 保留 key/value,按 key 排序后检查文本;标题、分隔符、空集合、Unicode 与 HTML 转义保持。
  • CLI/procs 继续精确配对正式 alpha.3,保留一小时 npm 隔离及 native ABI 核验。不改缓存源码、不使用未发布编译器替代、不放宽 Dynamic。
  • 本次更新十个已发布模块 pin:Reel 0.0.53、Util 0.0.28、Alerts 0.10.52、Feather 0.4.26、Markdown 0.4.54、Message 0.0.34、UI 0.7.39、Respo 0.16.120、Recollect 0.0.60、WS-EDN 0.0.39;CI 既有 Caps 命令明确使用 --strict --ci。没有修改 Snapshot、package.json 或 Yarn lock。
  • 按此前维护者授权删除旧数量基线;严格与语义门槛、原部署路径、PR 资产隔离及凭据保护不变。README 去掉重复迁移流水,使用原 query/edit/strict/test 入口。

当前增量验证

本次提交 7248cb896e2de3e525ff3d592cd5a4b228a36c92:

  • caps --strict --ci、正式 CLI/procs 配对、18 个 native/module 核验及 Yarn immutable 全部通过。此前依赖选版阻塞已解除;旧 require 提示仍如实保留。
  • canonical format 无变化,Snapshot Git blob 仍为 c97b39b4ee55a288267bf455d0f1d8862d129461;双入口及完整 fix --workflow strict --verify 通过,诊断/建议为空。
  • 原 50 项定义 :tests 在 native/生成 JS 各通过,零排除;另两项 native server-effect 通过。没有删测试、改断言或新增 checker。
  • 原隔离 native 业务回放在新图再次通过:真实 WebSocket 连接、访客 patch、消息、断开、原 callback Unit 断言、合成持久化/backup 一致及 SIGINT 退出。临时 Snapshot 的结构化修改与运行使用相同固定 CLI,并复制真实版本清单;不访问生产存储。
  • 当前 JS 生成与 Vite 生产构建通过,大 chunk 提示保留。
  • 当前项目结构化查询覆盖 117 定义、52 测试及 27 个 import 区域,本轮11项旧入口无命中;仅是当前分支声明源证据,不是默认分支、依赖或 macro 展开完整退场证明。
  • 最新 HEAD 的 Upload Actions 已 completed/success;以本次提交验收,不复用旧 HEAD 绿灯。实际 review、剩余业务和精确 main 门槛仍保留。

原业务证据与剩余验收

先前正式配对、旧依赖图的隔离浏览器已通过访客/注册、双客户端编辑与追加、真实 HTML5 拖放排序、高亮、刷新自动登录、持久化重启、个人页和退出后刷新。旧失败日志保留;这不是新依赖图已完成所有浏览器回归。

本轮额外以合成文章挂载原 Text 组件,保留其 code/schema/FFI,通过 strict 和真实页面渲染;点击后未观察到可读取的完整弹窗,因此没有将 Text 弹窗内容标为通过,也没有用 window mock、纯导出函数或“无新错误”替代它。不创建账号、不接触剪贴板或业务服务。

仍需新图完整浏览器/宿主验收、实际 Confirm 删除和完整 Text 弹窗、依赖/生成宏/CI/docs 的逐项退场核对,以及最新 HEAD 实际 review、评论处理、CI/CLEAN 与精确 main。未批准的 Confirm 不执行。保留已有显式 unsafe/开放边界,不宣称全应用静态化、不删除 core 兼容入口、不关闭 #1916 或提前发稳定版。

English

Refs #28 and the named-consumer migration in calcit-lang/calcit#1916. Neither issue is auto-closed.

Scope and design

  • Integrate the preserved migration in a separate worktree. Revision-guarded transactions migrate two merge-dynamic calls and one w-log call, and remove redundant require/refer markers without touching the original checkout.
  • Validate open projection, credential, route, message and event fields at use sites. Preserve numeric session keys, offline Option, the op/data envelope and Cirru EDN wire/storage. Use the published Recollect codec for nominal patches rather than asserting raw maps.
  • Give props, drag events and storage/time/DOM/highlighting host methods concrete contracts. Application effect callbacks actually return Unit without changing reset!/connection semantics or appending Unit after tail recur.
  • Keep Text key/value evidence through typed MapEntry, ordered by key and checked by existing text decoders; preserve title, separators, empty input, Unicode and HTML escaping.
  • Retain the published alpha.3 CLI/runtime pair, one-hour npm quarantine and native ABI checks. No cache-source replacement, unreleased compiler substitution or wider Dynamic.
  • Upgrade ten published module pins: Reel0.0.53, Util0.0.28, Alerts0.10.52, Feather0.4.26, Markdown0.4.54, Message0.0.34, UI0.7.39, Respo0.16.120, Recollect0.0.60 and WS-EDN0.0.39. CI now explicitly uses the existing strict Caps mode. Snapshot/package.json/Yarn lock are unchanged.
  • Retire the old counting baseline under prior maintainer authorization while preserving strict/semantic/deployment/credential gates. README now describes actual usage instead of repeated migration history, without another tool entry point.

Current increment verification

For commit 7248cb896e2de3e525ff3d592cd5a4b228a36c92:

  • Strict Caps, formal CLI/runtime pairing, all18 native/module checks and immutable Yarn pass. The old version-selection blocker is removed; legacy require warnings remain visible.
  • Canonical formatting is unchanged; Snapshot blob remains c97b39b4ee55a288267bf455d0f1d8862d129461. Both entries and full strict workflow pass without diagnostics or suggestions.
  • All50 original common attached tests pass native/generated JS with zero exclusions; two native server-effect cases also pass. No deleted tests, altered assertions or new checker.
  • The original isolated native business replay passes again on the new graph: real WebSocket connection/guest patch/messages/disconnect, original callback Unit assertions, synthetic persistence/backup equality and SIGINT exit. Temporary structured mutations use the same pinned CLI as execution and retain the actual version manifest. No production storage.
  • Current JS generation and production Vite build pass with the existing chunk warning.
  • Structured queries cover117 project definitions/52 tests/27 import regions without this round's eleven old entries. This is current declared-source evidence, not main-branch/dependency/generated-macro retirement acceptance.
  • Latest-head Upload Actions complete successfully for this commit, not by reusing old-head results. Actual review, remaining business and exact-main gates stay open.

Prior business evidence and outstanding gates

Earlier matched-toolchain browser replay on the previous graph covers guest/signup, two-client editing/appending, real HTML5 drag ordering, highlighting, refresh auto-login, persistence restart, profile and logout persistence. Historical failures remain recorded; do not treat that as complete browser acceptance of this graph.

This turn additionally mounts the unchanged actual Text component with a synthetic article and passes strict plus real page rendering. Clicking does not expose an independently readable complete popup, so popup content is not accepted. No window mock, pure-function assertion or absence of new errors replaces it. No account, clipboard or business-service interactions.

Retain full new-graph browser/host acceptance, actual Confirm deletion and complete Text popup, dependency/generated-macro/CI/docs retirement, plus latest-head actual review, comments, green CI/CLEAN and exact-main checks. Unapproved Confirm actions stay untouched. Existing unsafe/open boundaries remain; no full-static claim, syntax-only core removal, parent closure or premature stable release.

@tiye

tiye commented Oct 15, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@tiye
tiye merged commit 6bf5ee0 into main Oct 15, 2026
1 check passed
@tiye
tiye deleted the migrate/tabletwo-core-aliases-1916 branch October 15, 2026 09:36
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