diff --git a/.github/workflows/upload.yaml b/.github/workflows/upload.yaml index 0973522..c4361ad 100644 --- a/.github/workflows/upload.yaml +++ b/.github/workflows/upload.yaml @@ -42,6 +42,7 @@ jobs: caps --strict --ci yarn install --immutable caps verify --toolchain + git diff --quiet -- deps.cirru package.json yarn.lock .yarnrc.yml - name: Check canonical Calcit snapshot run: | @@ -51,7 +52,7 @@ jobs: test ! -e compact.cirru test ! -e package.cirru calcit calcit.cirru edit format - git diff --exit-code -- calcit.cirru + git diff --quiet -- calcit.cirru calcit calcit.cirru --check-only --all-defs calcit calcit.cirru --check-only --ns app.comp.container --ns app.config --ns app.main --ns app.schema --ns app.updater --summary-only --format json calcit calcit.cirru fix --workflow strict --verify --format json | jq -e '.data.workflow.status == "passed" and .diagnostics == []' diff --git a/README.md b/README.md index 88f3f96..b492c5a 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,9 @@ https://github.com/calcit-lang/respo-calcit-workflow ### Development and deployment -开发与 CI 使用配对正式 Calcit/procs 0.30.1,以及精确正式 Reel 0.6.41、Respo 0.16.124、 -js-ffi 0.2.5;升级后需重新安装模块。站点链接、存储键与部署路径不变。 +开发与 CI 使用配对正式 Calcit/procs 0.30.1,以及精确正式 Reel 0.6.42、Respo 0.16.126、 +js-ffi 0.2.6;升级后需重新安装模块并构建、刷新,避免混用旧生成代码。 +站点链接、存储键、存档格式与部署路径不变,npm 依赖和 lock 不变。 自动保存从误用的 60 毫秒修正为 60 秒;存档恢复成功后才安装定时器与卸载保存监听。 损坏存档仍明确报告错误,但不会被后续自动保存覆盖;页面静态链接仍可用。 Use Node.js 24 and Yarn 4.18.0. The canonical source files are @@ -49,6 +50,14 @@ legacy Map/new Store data when hydrating the original `map.clj.im` storage key. 保留一处实际 `&struct:to-map` 转换,不以类型断言或 Dynamic 擦除伪造身份。 移除无引用的模板 `repeat!` / `snippets`,不引入新的定时器框架。 +三处源码及一处原测试的 Option helper 改为接收者 `.unwrap`,仍在缺失时失败; +没有改为吞错、nil 或默认值。原两项测试的业务断言不变。 +三份静态样式的行高改为无单位 String(4、3、2.4),对应 schema 从 +`Map` 收紧为 `Map`。实际 Respo DOM 实现原本就将这些 +数值行高输出为同样的无单位字符串,因此不改变行高,也不新增运行期转换或强断言。 +`hud!`、恢复成功后才启用保存的顺序、60 秒间隔和卸载保存均保持。 +这些真实源头类型可以直接收紧,不需要增加编译器 fix/proof 规则或迁移脚本。 + 本轮本地未运行 Caps;开发者仍须执行上述安装步骤以生成模块链接,CI 独立 strict 解析。 两项定义附着业务测试覆盖旧 Map/Struct 存档往返、局部状态更新及 content 保留, 不新增检查脚本。此前 alpha 迁移曾用隔离合成存档验收恢复、保存重载、热更新回放及损坏存档卸载不覆盖; diff --git a/calcit.cirru b/calcit.cirru index d9f0140..1ba8be0 100644 --- a/calcit.cirru +++ b/calcit.cirru @@ -88,9 +88,9 @@ :schema $ :: 'Map 'Tag 'String 'style-category $ %{} 'CodeEntry (:doc |) :code $ quote $ def style-category - {} (:font-size |32px) (:font-weight |bold) (:line-height 4) + {} (:font-size |32px) (:font-weight |bold) (:line-height |4) :examples $ [] - :schema $ :: 'Map 'Tag 'Dynamic + :schema $ :: 'Map 'Tag 'String 'style-container $ %{} 'CodeEntry (:doc |) :code $ quote $ def style-container {} $ :font-family "|Helvetica Neue, PingFang SC, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif" @@ -109,15 +109,15 @@ :schema $ :: 'Map 'Tag 'String 'style-hint $ %{} 'CodeEntry (:doc |) :code $ quote $ def style-hint - {} (:text-align |center) (:font-size |12px) (:line-height 3) + {} (:text-align |center) (:font-size |12px) (:line-height |3) :background-color $ hsl 120 40 92 :examples $ [] - :schema $ :: 'Map 'Tag 'Dynamic + :schema $ :: 'Map 'Tag 'String 'style-link $ %{} 'CodeEntry (:doc |) :code $ quote $ def style-link - {} (:line-height 2.4) (:font-size |18px) (:text-decoration |none) (:display |block) + {} (:line-height |2.4) (:font-size |18px) (:text-decoration |none) (:display |block) :examples $ [] - :schema $ :: 'Map 'Tag 'Dynamic + :schema $ :: 'Map 'Tag 'String 'style-resources $ %{} 'CodeEntry (:doc |) :code $ quote $ def style-resources {} $ :padding-left |40px @@ -209,7 +209,7 @@ :features $ #{} :js-ffi 'mount-target $ %{} 'CodeEntry (:doc |) :code $ quote $ def mount-target - option:unwrap $ dom/query-selector |.app + .unwrap $ dom/query-selector |.app :examples $ [] :schema $ :: 'respo.dom/DomElement 'persist-storage! $ %{} 'CodeEntry (:doc |) @@ -284,8 +284,8 @@ fields $ if (map? raw) raw $ if (struct? raw) (&struct:to-map raw) (raise |Saved-store-must-be-a-Map-or-Struct) decode-map-as {} - :states $ option:unwrap $ get fields :states - :content $ option:unwrap $ get fields :content + :states $ .unwrap $ get fields :states + :content $ .unwrap $ get fields :content , Store :examples $ [] :schema $ :: 'Fn $ {} (:return 'app.schema/Store) @@ -335,7 +335,7 @@ :: :states ([] :editor) |draft , |test 0 assert= |keep $ :content next - assert= |draft $ option:unwrap $ get-in (:states next) ([] :editor :data) + assert= |draft $ .unwrap $ get-in (:states next) ([] :editor :data) assert= ({}) (:states base) :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.updater diff --git a/deps.cirru b/deps.cirru index b075a2b..5346dca 100644 --- a/deps.cirru +++ b/deps.cirru @@ -1,6 +1,6 @@ {} (:calcit-version |0.30.1) :version |0.0.1 :dependencies $ {} - |Respo/reel.calcit |0.6.41 - |Respo/respo.calcit |0.16.124 - |calcit-lang/js-ffi |0.2.5 + |Respo/reel.calcit |0.6.42 + |Respo/respo.calcit |0.16.126 + |calcit-lang/js-ffi |0.2.6