Skip to content

feat(native): make Bun the sole packaging engine, retire Node SEA - #9

Merged
7723qqq merged 6 commits into
mainfrom
feat/bun-sole-engine
Aug 24, 2026
Merged

feat(native): make Bun the sole packaging engine, retire Node SEA#9
7723qqq merged 6 commits into
mainfrom
feat/bun-sole-engine

Conversation

@7723qqq

@7723qqq 7723qqq commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Related Issue

执行 SEA 退役(runbook 阶段 2+3 合并执行)。用户群体极小(维护者 + 数人),保留期失去意义,直接一次切换。Follow-up to #5

Problem

Bun 已是事实上的构建/发布引擎,但仓库里还并存着完整的 Node SEA 构建链、升级端的 SEA 检测分支和 manifest 的 platforms 段——双引擎并存的维护成本(两套构建、两套升级路径、CI 双 job)由所有人承担。

What changed

  • 构建链退役:删除 build.mjs02-sea-blob.mjs03-inject.mjsbuild:native:sea/release 脚本、blob/sea-config 路径助手;build:native:bun 成为唯一打包引擎
  • 升级端:移除 node:sea 检测(source.ts、native-assets.ts);manifest 的 platforms 段退场(schema optional、selectPlatformEntry 删除),bun 段是唯一更新产物来源;stage 默认引擎 bun
  • produce-manifest:只产 bun 段,缺失任一目标即失败
  • CI_native-build.yml 只保留 Bun 六目标矩阵(SEA job 与 build-sea/build-bun 输入删除)
  • flake.nix:沙箱构建切到 build:native:bun
  • kimi-build 包退役(唯一消费者是 SEA 注入器)+ Makefile 清理
  • 文档:CONTRIBUTING(en/zh)原生构建章节重写为 Bun 唯一引擎、AGENTS.md 口径翻转
  • 新增 minor changeset(引擎切换对用户可见:存量 SEA 安装停止二进制更新,需重装)

验证

  • 本地全链:冻结安装 ✓、tsc 0 错 ✓、全量 vitest 972/973 文件(1 例已知时序 flake 单跑 69/69 绿)✓、build:native:bun 161.5MB ✓、冒烟 ✓
  • 预期 CI 迭代点:flake 沙箱首次执行 build:native:bun,如有沙箱特有问题按轮次修复

Checklist

  • I have read the CONTRIBUTING document.
  • Tests: 受影响套件全部更新并通过(update 236、release-artifacts、tools)。
  • Changeset 已含(minor:引擎切换)。

luozihao added 6 commits August 25, 2026 04:19
Delete the SEA orchestrator (build.mjs), blob/inject steps, the
build:native:sea/release scripts, and the blob/sea-config path helpers.
Bun (build:native:bun) is now the only packaged engine.
- Remove the SEA build chain (build.mjs, 02-sea-blob, 03-inject,
  build:native:sea/release scripts, blob/sea-config path helpers)
- Updater: drop the node:sea detection and the manifest platforms
  section — the bun section is the only source of update artifacts,
  and the stage default engine is bun
- produce-manifest emits a bun-only manifest and fails on any missing
  target; native-manifest makes platforms optional and drops
  selectPlatformEntry
- CI: the native bundle matrix now builds Bun binaries only; flake.nix
  compiles build:native:bun offline
- Retire packages/kimi-build (its only consumer was the SEA injector)
- Docs: Bun is the packaging engine everywhere (CONTRIBUTING en/zh,
  AGENTS.md); changeset for the engine switch
- release-artifacts tests now describe the bun-only manifest: full
  coverage required, missing targets listed in the error, platforms
  section gone
- pin session_id in the builtin-tools projection test (sibling of the
  earlier isolation fix)
- native-manifest test: bun section is the only lookup
@7723qqq
7723qqq merged commit bf50a31 into main Aug 24, 2026
16 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