发布与部署不能替代本地直接运行。日常验收用本地 run。只有任务是发布、分发或远程托管时才进入发布路径。
路径矩阵(严格)
| 路径 | 命令 | 目标 | 认证 / 密钥 | 本板状态 |
|---|---|---|---|---|
| 本地 serve | arc blocklet run <dir> · arc service start --blocklet <dir> | 本地 daemon | 仅本地进程 | 已验证(2.0.0-beta.28) |
| 本地 daemon 注册 | arc deploy <path>(无发布标志) | 运行中本地 daemon 额外目录 | 本地 | 优先 serve 命令;注册可对环境敏感 |
| 本地 DID Space 发布 | arc deploy <path> --publish | 开发者本地 DID Space /blocklets/<id>/ | 本地 snapshot 密钥(见下) | 部分——命令面真实;隔离 home 需要密钥 |
| 远程 DID Space 发布 | arc deploy <path> --server <url> [--token] | 经 RPC 的远程 DID Space | 始终需要浏览器/passkey、vault 或 --token | Experimental / 未验证(本板未 E2E) |
| Pages 一步 | arc blocklet deploy [dir] | 本地暂存 + 可选 Cloudflare Pages | --cloud=cf 时需 CF 凭证 | 平台路径——在你的环境验证 |
| Instance 子命令 | arc blocklet instance … | 已部署 Pages instance | 平台 | 高级;对照实时 CLI help |
| Fleet | arc blocklet fleet … | 多 blocklet 聚合 | 平台 | 高级 / monorepo 运维 |
先本地验收
arc dsl validate ./my-app
arc blocklet check ./my-app --profile <profile>
arc blocklet run ./my-app
# 浏览器验收然后才选择发布路径。
本地 DID Space 发布(--publish)
意图语义(CLI help 与 ARC deploy 模块):
- 写入本地开发者 DID Space(无网络、无浏览器认证)。
arc deploy show/list --published读取该本地注册表路径。- 远程
--server发布不会写入本地 show/list 注册表。
arc deploy ./my-app --publish
arc deploy list --published
arc deploy show did:blocklet:my-app密钥前置(已验证失败)
在干净隔离的实例 home 上(ARC_HOME 已退役;用具名实例和 --home 隔离),2.0.0-beta.28 无 snapshot 密钥时发布失败:
Error: Local publish failed: Snapshot V2 requires a snapshot token secret:
set AFS_DID_SPACE_SNAPSHOT_SECRET (32-byte hex).
…
Prefer the dedicated variable.把这记为本地发布的环境要求,而不是「发布未实现」。只在你控制的环境配置密钥;不要提交密钥。
远程 DID Space 发布(--server)
arc deploy ./my-app --server https://example-did-space.example
# 始终需要认证:浏览器流、缓存凭证或 --token本板不声称远程发布 E2E 成功。 在团队对非共享目标完成成功运行(认证、上传、从远程副本独立 serve)之前,把任何远程工作流标为 experimental/未验证。
即使 loopback URL 也需要真实凭证——不是认证旁路。
Cloudflare / Pages 向命令
arc blocklet build ./my-app
arc blocklet deploy ./my-app --project <project-name>build 打包后会打印 deploy 提示。Pages 部署与 DID Space 发布是不同产品面。在当作第三方作者默认路径前,在你自己的环境验证凭证、项目名与线上路由。
Instance 与 fleet(高级)
arc blocklet instance --help
arc blocklet fleet --help已理解 package vs instance 且有平台目标时再使用。不要要求「我在笔记本上脚手架了一个 Blocklet」就走这些路径。
有状态 /instance 交互(settings 写入、replicated 发帖、变更 instance 树的 agent 工具)需要真实 instance DID Space。无该绑定的本地壳 HTTP 200 不证明这些路径。未亲自跑过则将深层 /instance E2E 视为 未验证。
写「已部署」前的诚实清单
- 是否记录了本地
check+ 浏览器验收? - 发布目标是哪一个(本地 space / 远程 server / Pages)?
- 是否说明了认证与密钥路径且未嵌入密钥?
- 远程或
/instance声称若未 E2E 是否已标注? - 读者是否仍有不依赖 deploy 的本地路径?