Skip to content

迁移首页到 Calcit 0.30.1 候选,修复存档恢复并配置前端 COS - #43

Merged
tiye merged 1 commit into
mainfrom
migrate/cumulo-org031
Oct 20, 2026
Merged

tiye merged 1 commit into
mainfrom
migrate/cumulo-org031

Conversation

@tiye

@tiye tiye commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

对使用者的影响

首页仍由原 index.html / Vite 构建。前端资源改用 COS/CDN,原 rsync 目的地 /web-assets/repo/${github.repository} 不变,无后端部署。PR 使用独立 CDN 前缀,不覆盖生产对象;本次不合并或部署生产。

修复实际存档问题:Store 序列化后解析为 Struct,旧恢复逻辑只接受 Map,会忽略自己保存的数据。现在接受历史 Map / Store Struct,检查字段并重建当前名义 Store;保留 localStorage 的 cumulo.org 键和字段。仍沿用原周期/卸载保存,不宣称能保证崩溃或配额失败时不丢数据。

删除未被当前入口、脚本、CI 调用的旧 app.page 四个 ClojureScript 页面生成定义,以及其私有 cdn?。若仓库外仍直接调用它们,需要改用 Vite;旧源码可从 base Git 恢复。

迁移内容

  • Calcit / @calcit/procs 从 0.22.0-alpha.3 配对升级到 0.30.1-alpha.5。正式 0.30.1 的原 Publish 仍按上游说明暂停在上传前(#2080 收尾),暂依官方建议使用完整候选,不冒称正式版。
  • 模块采用精确正式 tag:Reel 0.6.39、Respo 0.16.122、UI 0.7.41、Markdown 0.4.58、js-ffi 0.2.3。删除未使用的 Lilac/Memof,不新增依赖框架。
  • 真正迁移为泛型 Reel State/Record/control/refresh 和 typed 控件;定义具体 Op 与 updater 合同。DOM 复用 Respo 公开桥接;storage/timer/date 使用 js-ffi;高亮外部输入检查 String,宿主对象使用已有真实 trait。
  • unsafe 5→0、codeNil 2→0、typeNone 5→0、schemaDynamic 14→3、typeNotFull 13→3、unresolved 16→3,deprecated 0。原质量基线仅收紧,不放宽;保留三处真实存档/事件/renderer 的开放边界。
  • Node24/Yarn4.18,简单 compile/build/dev,不加 concurrently、js-out、compact.cirru、package.cirru 或额外检查脚本。
  • 使用 COS action v1.2.0 的 public-base-url 内置逐文件校验。main 缺 secrets 则失败,不继续生产部署;同仓 PR 缺 secrets 明确跳过。外链改 HTTPS,Action 采用用户已接受可移动风险的精确正式 tag。

验证与剩余风险

  • 最新本地 all-defs 303/303,完整 strict passed / diagnostics 0;两项 definition-attached 回归 2/2、6 条真实 assert=,覆盖混合 Tag/String/Number 游标 false 状态、content/hydration 与真实 Store 序列化往返/坏字段拒绝。
  • 原质量基线、收紧后的基线均通过;canonical 格式无变化,官方 README 片段检查通过。
  • Node24/Yarn4.18 immutable 安装、JS 生成、CDN 基址生产构建通过,HTML JS/CSS 都使用指定前缀;既有约1.44MB chunk 警告保留,不调高阈值。
  • 实际浏览器验证首页 Markdown/Bash 高亮、原 Shift+Meta+Alt+K Reel 开关与 Close;最新生成代码 HMR 后刷新,Reel 出现实际 :hydrate-storage 记录,console warn/error 为0。这次本地浏览器恢复的是初始空 Store,不夸大为非空历史用户数据全覆盖;附加非空往返为原生断言,不冒充 JS 单测。
  • 未本地执行 Caps;本地正式模块链接仅用于迁移验收,远端仍须独立解析声明图并跑 CI/COS 内置校验。生产上传和 rsync 尚未验收。

上游评估

本轮问题是旧消费代码与实际数据合同不符,已通过应用解码和现有公开 API 修复,不新增编译器硬编码迁移规则。没有证据需要新报 compiler issue;不重复已有 #2080 发布跟踪,Cumulo Phlox 旧快照恢复另由 #2052/#2103(计划0.31.0)跟踪。

Summary by CodeRabbit

  • New Features

    • Added Vite-based page generation and development workflow with hot module replacement.
    • Added safer persisted-store recovery: valid legacy and serialized data remains supported, while invalid data is ignored with an error.
    • Added event-specific paths for frontend resources during builds and deployments.
  • Bug Fixes

    • Updated external font and favicon links to use HTTPS.
    • Improved deployment validation and resource upload verification.
  • Documentation

    • Documented development, testing, build, persistence, and deployment behavior.

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: cff5ce43-4234-4736-a43f-52a68b034fe1
📥 Commits

Reviewing files that changed from the base of the PR and between cb9d453 and 650237c.

⛔ Files ignored due to path filters: 1
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing: 7
  • .github/workflows/upload.yaml
  • README.md
  • calcit.cirru
  • config/calcit-quality.cirru
  • deps.cirru
  • index.html
  • package.json

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The application now uses typed state and operation handling, and the frontend toolchain uses updated Calcit and Vite commands. The workflow adds validation steps and builds frontend assets with event-specific CDN paths, with conditional COS credential checks and uploads.

Changes: Application Migration and Delivery

Layer / File(s) Summary
Browser toolchain and build setup
deps.cirru, calcit.cirru, package.json, index.html, README.md
The project updates Calcit and Respo dependencies, configures the browser target and JavaScript build scripts, and changes external asset URLs to HTTPS. The README lists the development and build commands.
Typed application state and runtime
calcit.cirru, README.md
The application adds typed store and operation schemas, validates persisted data, and updates state handling, rendering, and component inputs. The README describes the migration and persistence formats.
CI validation and frontend deployment
config/calcit-quality.cirru, .github/workflows/upload.yaml, README.md
The workflow adds formatting, type, quality, and test checks. It builds with event-specific CDN paths, handles missing COS credentials according to event type, and verifies uploaded frontend resources. The README documents deployment conditions.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 65023

No actionable merge-blocking issue was identified. Run the documented build before starting the development server; CI and COS deployment still need normal validation.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed 标题准确概括了主要变更:迁移首页至 Calcit 0.30.1、修复存档恢复,并配置前端 COS。
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (7 skipped: 7 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@tiye

tiye commented Oct 20, 2026

Copy link
Copy Markdown
Member Author

精确提交 650237c 的独立 CI 39382048224 已全部通过:Caps 独立验证6个模块、CLI/runtime 配对、all-defs 303/303、完整 strict、收紧基线、原生附加测试2/2和 CDN 构建。COS action 内置校验实际验证 index.html 717字节、CSS 27710字节、JS 1436846字节,共3文件;不是缺 secrets 跳过。生产 rsync 步骤跳过。当前非 draft、MERGEABLE、未解决评审线程0;未合并、发版或部署生产。运行详情:https://github.com/Cumulo/cumulo.org/actions/runs/39382048224

@tiye
tiye merged commit 289dff3 into main Oct 20, 2026
2 checks passed
@tiye
tiye deleted the migrate/cumulo-org031 branch October 20, 2026 07:12
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