Repository navigation
fix: verify released alpha24 client states / 校验 alpha24 客户端状态边界 - #75
Conversation
中文修复已发布为 0.16.114-alpha.11,annotated tag f72478aa peel 到仅版本提交 d3dc27ec2dc8e29992e24b30b64dc74fd3a66c24;精确合并 main 与版本提交的 Tests 均成功(37974908083、37975466786)。这是通过正常 Caps 消费的源码模块,没有 npm 发布步骤,也没有另一个 release workflow。 实际消费复验:隔离复制 Diary #75 的当前 d294773,仅在副本 deps.cirru 选择 alpha.11; 副本的原 strict workflow、client/server check-only、各 entry 原 public checks、76 native tests、61 同 AST JS、原宿主边界、client/Vite build 均通过;Snapshot sha256 前后均为 50a2bdfdd9301b6cbe2a58ea1bf27923dd1117d6cd20deb2ce92659ee7cbe814。本次没有重做 Chrome:原 #238 最终源已经实际验证保存/刷新恢复任务;Diary #75 的实际 Chrome 证据在它的 PR,且尚待用户或 bot review,未因此合并。 EnglishPublished source module alpha.11 has an annotated tag peeling to version-only d3dc27ec2dc8e29992e24b30b64dc74fd3a66c24. Both exact merged-main and version-only Tests succeed (37974908083/37975466786). There is no npm package or separate release workflow. A fresh isolated copy of Diary #75 d294773 changes only its dependency choice to released alpha.11, installs normally through Caps/immutable Yarn, and verifies 17 modules with published CLI/runtime alpha.24. The installed Respo source HEAD is d3dc27ec, with no immutable-cache source edits. Existing highest-SemVer transitive warnings remain; this is not claimed as strict-Caps proof. Original strict, client/server checking, entry-specific public checks, 76 native tests, 61 same-AST JS tests, host boundaries and client/Vite build pass. Snapshot SHA256 is unchanged as recorded above. No new Chrome run is claimed: #238's final source already has real persistence/reload proof; Diary #75 has its own bounded actual Chrome proof and still awaits review, without premature merge. |
这次迁移让 Diary 在正式 Calcit alpha.25 与 Respo alpha.11 配对下继续保留混合 cursor、编辑草稿和已有恢复行为,同时在组件入口拒绝不符合约定的子状态键。它不改变存储数据或业务默认值;原严格检查、构建与实际界面回放已通过,但按维护者要求 PR 暂时保持开放、不自动合并。
中文
继续 calcit-lang/calcit#1529 的正式发布配对验收,基于已合并 #73。四处已授权的宏内 nil 判断迁移已合并,不重复提交。
修复与版本
原
comp-diary (>> states :diary) ...在正式 alpha.24 完整 strict workflow 中产生E_CALL_ARGUMENT_UNPROVEN:组件需要Map<Tag, Dynamic>,Respo 为混合 cursor 提供Map<Dynamic, Dynamic>。新增checked-child-states,复用现有decode-map-as校验子状态键,仅替换该组件调用。保留 String/Tag/Number 混合 cursor、typed DiaryEditorState、原缺失分支种子和其他八处开放调用;错误 String 键明确拒绝。Snapshot 修改采用官方 guarded 事务、dry-run 与 scoped revision。最新升级提交固定完整发布的
calcit/@calcit/procs0.29.0-alpha.25、Respo 0.16.114-alpha.11,保留 std 0.2.39、JS-FFI 0.2.1-alpha.16、ws-edn 0.0.37。Respo alpha.11 已包含 #238 的 Task 持久化身份修复。正常 Caps/Yarn 安装、精确 npm 预批准,无模块缓存源码修改、通配符或年龄策略放宽。版本升级只改四个依赖/lock 文件,Snapshot、测试、断言与业务默认值未变。最新版本验收
caps --ci、yarn install --immutable、caps verify --toolchain:17 模块,CLI/runtime 精确配对。保留原 transitive SemVer 和项目缺少 version 的警告,不冒称 Caps strict。calcit fix --workflow strict --verify --format edn、格式化零 diff、client/server check-only、各 entry 全部原 public checks 均通过。yarn test-boundaries保留全部原断言及存储 fixture:76 native、61 同 AST JS、六项日期/两项登录,以及原 storage/credentials/patch/实际 dispatch 宿主合同通过。三项新增 definition:tests验证混合 cursor/草稿、缺失分支和坏键拒绝。yarn compile-page、yarn release-page通过,保留原 500 kB chunk warning。Snapshot SHA256 仍为50a2bdfdd9301b6cbe2a58ea1bf27923dd1117d6cd20deb2ce92659ee7cbe814。reload!callback 保留相同 state/快照并重绘,不冒称重新编译后的全 HMR。实际 PR 生成的生产 bundle SHA256 与该正常安装副本一致。旧 alpha.24 的真实 Chrome 证据是历史验证,不称新的 Chrome 证据。主动关闭的
Lost connection!、原配置/拒绝日志未屏蔽。保留原 native/JS/browser target 边界,不宣称 browser entry 可运行整个 server all-defs,也不替代 Diary #61–#64 全业务验收。最新 HEAD98fbbe110ecb060a04c0bc4ee4a9ebebf2ae7bca的 完整 CI completed/success,包含 COS 资产校验与 PR preview;review threads 为零且 CLEAN。维护者于 2026-10-10 明确要求先保持 PR 开放,不自动合并;CI 成功或后续 review 出现不解除该决定,须由维护者明确允许后再进入合并门禁。English
Continue released-pair consumer acceptance for calcit-lang/calcit#1529 on merged #73. The four approved macro-local nil-predicate edits are already merged and are not repeated.
Boundary fix and versions
The original
comp-diary (>> states :diary)fails the full released alpha.24 strict workflow withE_CALL_ARGUMENT_UNPROVEN: the component expects Tag-keyed state while Respo intentionally returns an open Map supporting heterogeneous cursor keys. Reusedecode-map-asin one typedchecked-child-statesboundary. Preserve mixed String/Tag/Number cursors, nominal DiaryEditorState, original missing-branch seeds and the other eight open-state callers; reject invalid String keys. Snapshot mutations use the official guarded dry-run/scoped-revision transaction.The latest upgrade pins fully published CLI/runtime 0.29.0-alpha.25 and Respo 0.16.114-alpha.11, retaining std 0.2.39, JS-FFI 0.2.1-alpha.16 and ws-edn 0.0.37. Respo alpha.11 includes #238's persisted Task identity repair. Normal Caps/Yarn installation and exact npm preapproval use no cache-source edits or wildcard/age-policy bypass. Only four dependency/lock files change in this upgrade; Snapshot, tests, assertions and business defaults remain unchanged.
Latest-pair validation
Normal Caps/immutable Yarn/toolchain verification passes for 17 modules with exact CLI/runtime pairing. Existing transitive SemVer and missing-project-version warnings remain; this is not strict-Caps proof. Every original CI strict, zero-format-diff, client/server entry and public-definition gate passes.
The unchanged
yarn test-boundariesrunner supplies storage fixtures and passes 76 native/61 same-AST JS tests, all six date/two login contracts and original storage/credential/patch/actual-dispatch host assertions. Three new attached Calcit tests cover mixed cursors/draft, missing branches and invalid-key rejection. Client compilation and production build pass with the original chunk warning. Snapshot SHA256 remains the value recorded above.A normally installed, same-source alpha.25/Respo alpha.11 isolated copy runs the actual generated app and Respo renderer in the Codex in-app browser, using local injected WebSockets only. Actual textarea input retains nominal DiaryEditorState; valid patches synchronize raw/typed state; bad deep fields preserve the complete snapshot identity with one recovery connection; incremental patches cannot recover; full replacement restores count 5 and preserves the draft. The existing
reload!callback retains identical state/snapshot and rerenders, without claiming full recompilation/HMR coverage. The actual PR's production-bundle SHA256 matches this verified isolated copy. Earlier actual Chrome proof belongs to alpha.24, not a new Chrome run.Deliberate-close
Lost connection!and original configuration/rejection logs remain visible. Existing native/JS/browser boundaries remain; no browser-entry server all-definitions or Diary #61–#64 whole-business acceptance is claimed. Complete CI 38005928408 succeeds for exact HEAD 98fbbe1, including COS asset validation and PR preview. On 2026-10-10 the maintainer explicitly requested that the PR remain open, with no auto-merge. Successful CI or a later review does not lift that hold; wait for explicit maintainer permission before applying merge gates.