☰
为什么Whiteboard要vendoring Code OSS?一个AI时代的VS Code分叉设计决策
2026/10/5 2:53:53 网站建设 项目流程

为什么Whiteboard要vendoring Code OSS?一个AI时代的VS Code分叉设计决策

【免费下载链接】whiteboardopen-source canvas for thoughtful software design项目地址: https://gitcode.com/gh_mirrors/whiteboard36/whiteboard

Whiteboard 是一个开源的 AI 软件设计画布,让人类与 Claude Code、Codex 等编码代理在同一工作区里共同设计、审查代码。它的桌面端没有从零写编辑器,而是把 VS Code 的开源内核Code OSS 整体 vendor 进仓库,形成了一个面向 AI 时代的 VS Code 分叉。本文将从动机、做法到上游同步策略,拆解这个设计决策。

决策速览

维度Whiteboard 的选择
基线Code OSS(VS Code 开源内核)
分叉方式整仓 vendor,而非补丁维护
差异管理全部登记在 UPSTREAM,可枚举可审计
许可证MIT(保留上游 MIT 许可与第三方声明)

一、背景:AI 时代,编辑器变成了"审查台" 🧭

当 AI 代理承担大部分"写代码"工作后,人类打开文本编辑器的主要目的,变成了逐行审查 AI 提交的 diff。

Whiteboard 团队在 README.md 里把这一点说得很直白:既然现在大家都有了专门的 agent 工具和桌面应用,文本编辑器只剩"审查"这一核心职责,"might as well start off with the most successful open source editor out there as a baseline"——用目前最成功的开源编辑器当基线。

画布里的时序图、流程图、agent trace 引用都可以点击跳转到底层代码,跳过去之后你得到的是 VS Code 原生的快捷键与 LSP 支持(见 README.md 的 "Why does this exist?" 一节):

二、核心问题:为什么"整仓 vendor"而不是"打补丁"?

绝大多数 VS Code 分叉采用"上游 + 补丁集"的维护方式。Whiteboard 反其道而行,给出的理由有两条(README.md 的 "On vendoring Code OSS" 一节):

  1. 编码代理处理补丁很难:AI 在"一堆 diff 补丁 + 跨文件上下文"上工作时错误率更高;把完整源码平铺在仓库里,人和 agent 都能直接读、直接改。
  2. 上游大量代码与审查场景无关:团队估计目前 VS Code 代码库里约45% 与 Copilot 相关——一个专注代码审查的桌面端根本用不到它们。

一句话总结:vendor 整仓,让代码树保持"平的",对 AI 友好,也更容易删干净。

三、这份 VS Code 分叉具体做了什么?

所有"与上游的差异"都必须登记在 UPSTREAM 中,可以按三类来看:

3.1 锁定上游基线

分叉固定在上游提交8a7abeba,并打上序列化 tagcode-oss-upstream-8a7abeba(UPSTREAM)。刷新上游时,只需对比"tag 处的干净上游"与当前代码树。

3.2 大刀阔斧做减法

类别内容
vendor 时直接排除.github/、上游 CI 配置、extensions/copilot/(约占 45% 代码库)等
裁剪 18 个内置扩展emmet、grunt、gulp、notebook 渲染、github-authentication 等审查场景用不到的扩展
删除整个 Agents 窗口605 个上游文件——分叉从不打开该窗口,却曾在每个打包构建里编译并分发它

3.3 把 Review 的代码收进一个目录

Whiteboard 自己的工作区代码统一放在 code-oss/src/vs/review/,与上游代码物理隔离;首次启动还会自动从本机的 VS Code 安装导入键位与用户设置(见 apps/review-desktop/README.md 的 "VS Code settings and keybindings" 一节)。

扩展生态同样"策展化":固定扩展目录、没有 Marketplace,每个 VSIX 的精确版本、目标平台、大小与 SHA-256 哈希都记录在 curated-extensions.manifest.mjs 中,安装前逐一把关。

四、如何持续跟上上游 VS Code?

vendoring 不等于"一次性拷贝后躺平"。团队的做法是定期监控上游、按 commit 精确 backport:

  • 在 UPSTREAM 的 backport 清单里,可以看到 Electron 42.10.0 升级、安全加固,以及 2026 年 9 月 Microsoft 发布的十条安全通告中挑选应用的 4 个 CVE 修复——甚至逐条说明了"为什么这条不适用 / 为什么这条决定不修";
  • 每次上游刷新后,tag..HEAD的差异必须完全可枚举:每一个文件差异都要对应清单里的一条记录("Serialize the fork" 一节)。

这种纪律让"分叉漂移"始终处于可审计状态。

五、许可证与隐私:分叉也要守规矩

  • Whiteboard 采用 MIT 协议;vendored 的 Code OSS 保留微软 MIT 许可与第三方声明,见 apps/review-desktop/LICENSE 与 UPSTREAM。
  • 应用只针对本地 checkout 运行,匿名遥测不含代码、diff、提示词或模型输出,详见 docs/privacy.md 与 docs/telemetry.md。

六、三步本地跑起来 🚀

git clone https://gitcode.com/gh_mirrors/whiteboard36/whiteboard cd whiteboard pnpm install && pnpm dev

需要提前安装 Node.js 24 与 pnpm 11(CONTRIBUTING.md 的 Setup 一节),开发构建可以与已安装的 Whiteboard 并存。完整的构建、打包与发布流程见 apps/review-desktop/README.md。

小结:AI 时代分叉开源项目的四条启示

  1. 选最强基线:审查代码这件事,Code OSS 是当之无愧的最佳起点;
  2. 对 AI 友好的代码组织:整仓 vendor 优于补丁堆叠,agent 可以直接读改源码;
  3. 差异可枚举:每一份有意分歧都登记在案,上游刷新永远可控;
  4. 做减法:删掉约 45% 用不到的 Copilot 相关代码,产品更轻、攻击面更小。

延伸阅读

  • 产品理念与 vendoring 决策:README.md
  • 桌面端构建与发布:apps/review-desktop/README.md
  • AI 代理插件源码:packages/agent-plugins/
  • 贡献指南:CONTRIBUTING.md

【免费下载链接】whiteboardopen-source canvas for thoughtful software design项目地址: https://gitcode.com/gh_mirrors/whiteboard36/whiteboard

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询