Skip to content

feat(sdk): add web and release toolkit SDKs - #55

Merged
JimmyDaddy merged 2 commits into
mainfrom
feat/web-toolkit-sdk
Aug 31, 2026
Merged

feat(sdk): add web and release toolkit SDKs#55
JimmyDaddy merged 2 commits into
mainfrom
feat/web-toolkit-sdk

Conversation

@JimmyDaddy

@JimmyDaddy JimmyDaddy commented Aug 31, 2026

Copy link
Copy Markdown
Owner

背景

浏览器和桌面 WebView 需要通过正式 npm 入口消费 Web/WASM 和纯工具层,而现有共享 WASM 含 Node 分支,公开类型与发布资源也需要统一。本次接续已有 verified-delta-pipeline 工作,不重做 Node/CLI/Action、转换器或规划器。

改动

  • 准备 0.5.0,公开 ESM /web/toolkit,修正根 browser 条件的类型解析,同时保留 RN、根 CommonJS、Node/CLI 和 Action。
  • 从相同 C 源构建浏览器专用 single-file WASM,保留 Node/NODEFS 产物;消费者无需 Node polyfill、alias 或 CDN。
  • 完善 Worker job 的取消完成、并发隔离、错误清理、迟到消息、输入所有权,以及危险处理前/过程中的资源限制。
  • 保留 toolkit 首匹配候选规则和结构校验边界,修复 canonical 环/特殊键及非法预算处理。
  • 接续流式补丁、BSDIFF40 离线转换和发布规划器;补齐双语 SDK 指南、CI、发布前/后的消费者验证。

验证

  • immutable 安装、prepare、lint、typecheck、Jest、toolkit、Node/CLI、Action、原生 C 操作及 2000 轮 sanitizer fuzz。
  • Web/真实 Chrome Worker/WASM、Metro、固定 tarball 的正常无 RN 安装与完整依赖树、strict TypeScript(skipLibCheck=false)、生产 Vite 构建。
  • 同源 CSP(仅 wasm-unsafe-eval)下禁止外网访问,生成/还原逐字节匹配,输入保持完整。
  • 官方 registry 0.4.0、0.5.0 候选和原生 C 双向交叉还原。
  • Vite/Expo canary、网站构建/结构/浏览器测试。

兼容与发布边界

运行时格式继续为 ENDSLEY/BSDIFF43;BSDIFF40 仅检查/离线转换。显式零预算与畸形不前进控制流会更早失败,旧默认预算不收紧。Toolkit 不验签,头部 valid 不等于完整补丁验证。Tauri/Rust 集成和手机实机没有在本地验收,原有平台 CI 继续执行。

合并并通过检查后,从 main 的这个版本建立 v0.5.0 GitHub Release,交由既有 npm OIDC 工作流发布和验证 provenance;不会从本机直接 npm publish。

最终发布候选验证

0.5.0 发布文案更新后已重新正常打包,并用该固定 tarball 重跑 SDK 与包消费者:全部通过。73 个文件,SHA-256:b22f85b3591321d6b86c3c9b64c35a8370d6049391bb5190dee2cff9a402bdd2。相对首次候选仅 README 发布安装说明变化,运行时/类型产物保持一致。正式 registry 包仍将在发布后单独验证。

CI 跟进修复

首次 CI 发现 iOS 旧版 RN fixture 在未安装根依赖时执行 yarn pack,新增 prepack 检查因缺少 Yarn node_modules state 失败。后续提交 9ea113f 补齐 Node22 immutable 安装和 prepare,再切回原 Node18 矩阵;没有跳过任何检查。本地已用 Node18.20.8 成功执行同一 yarn pack/prepack 路径,完整平台矩阵由更新后的 CI 验证。

@wip ready for review

@JimmyDaddy JimmyDaddy changed the title feat(sdk): add web and release toolkit SDKs WIP: feat(sdk): add web and release toolkit SDKs Aug 31, 2026
@JimmyDaddy JimmyDaddy changed the title WIP: feat(sdk): add web and release toolkit SDKs feat(sdk): add web and release toolkit SDKs Aug 31, 2026
@JimmyDaddy
JimmyDaddy merged commit 3289137 into main Aug 31, 2026
15 checks passed
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