feat(runtime): 领域服务运行时随插件分发 + 启动器自动供给(修 P0:同事机器无开发检出就起不来)
CI / contract (push) Has been cancelled

根因:启动器的运行时解析第三顺位是开发检出 ~/Dev/ant/ant-copilot,同事机器没有该目录 → 插件装上、MCP 起不来;而私有 registry 匿名读返回 401,走 npm 安装等于要求每台机器都配 Gitea token。

改法:① 打包产物随插件分发(plugins/<产品>/runtime/,3.96MB 自包含单文件 + manifest 记录来源版本/提交/大小/sha256);② 启动器每次拉起比对 sha256,缺失或被改动即从插件包安装到 ~/.deta/runtime(首次启动零操作、升级自动同步);③ 新增 deta install-runtime(显式安装 + 补装可选依赖 @resvg/resvg-js + 装完立刻做一次真实 MCP 握手自证),status/doctor 显示运行时来源与预览图依赖状态;④ 契约校验加 E6:运行时包必须自洽(sha256/字节数/manifest.pluginVersion 与插件版本一致),拦住“升版本忘重跑 sync-runtime”。

实测:全新 HOME(模拟同事机器、无开发检出、无凭据)下供给探针 10/10 通过 —— 首次启动自动安装、启动行指向沙箱运行时、install-runtime 握手 39 个工具、重复安装幂等、运行时被改动自动修复、插件包缺运行时两处都给打包缺陷指引;已装副本 0.3.14 独立验证(含 npm 自动补装 @resvg 2 包)。studio 0.3.14 / writer 0.1.5。
This commit is contained in:
ringo
2026-09-20 16:40:33 +08:00
parent abb5835310
commit 3ab20c23b0
18 changed files with 192742 additions and 26 deletions
+25 -6
View File
@@ -74,14 +74,18 @@ codex plugin marketplace add https://git.deta.city/deta/deta-agent-plugins.git
codex plugin list
codex plugin add studio@deta
# 准备领域服务运行时(二选一):本机引擎包(~/.deta/runtime)或源码构建
# 源码构建:在领域服务仓库执行 npm run build:mcp
# 冒烟(应等待 stdin/stdout)
bash plugins/studio/bin/deta-mcp.sh
```
装完即用,**没有 OAuth 登录步骤、也不需要终端**。需要云侧能力(项目列表 / 新建项目 / 项目同步 /
领域服务运行时随插件包分发,启动器首次拉起时自动安装到 `~/.deta/runtime`,插件升级后自动同步
(只比对哈希,命中就跳过)。需要显式重装、或补装候选预览图的栅格化依赖时:
```bash
~/.deta/bin/deta install-runtime # 安装/更新运行时 + 预览图依赖,并立刻做一次真实 MCP 握手
~/.deta/bin/deta status # 运行时来源(版本 / 提交 / 哈希)、凭据来源、工作区
~/.deta/bin/deta doctor # 端到端自检:运行时 / 凭据 / 编译服务 / MCP 握手
```
**装完即用**:没有额外安装步骤,也不需要终端。需要云侧能力(项目列表 / 新建项目 / 项目同步 /
打开 Studio)时:让助手调 `login` 工具 → 浏览器打开授权地址(首次输一次账号密码或邮箱验证码)→
点「登录并授权」;令牌自动写入 `~/.deta` 并即时生效,过期先静默续期。
@@ -104,6 +108,21 @@ codex plugin add studio@deta
(版本号形如 `0.1.0+codex.20260910020424`;重装后需开新会话才能加载新技能。)
开发态要跑**工作树**(而不是插件包里那份打包运行时)时,显式指定运行时根:
```bash
DETA_SERVER_ROOT=~/Dev/ant/ant-copilot bash plugins/studio/bin/deta-mcp.sh --profile studio
```
领域服务改动后,要把新产物同步进插件包(否则同事与你自己装的都是旧运行时),
并顺手升插件版本(契约校验会拦下版本与运行时不一致的情况):
```bash
node scripts/sync-runtime.mjs
node scripts/check-plugin-contract.mjs
bash scripts/verify-runtime-provision.sh # 运行时供给探针(全新 HOME 下 10 项断言)
```
校验清单:
```bash