跳到主要内容

ARC 2.0.0-beta.28

测试与诊断

Blocklet 失败时收集源码、契约、运行时与可见 surface 证据,并把失败映射到正确命令。

失败时建立四个独立事实:选定源码、声明契约、本地 runtime、可见/可调用 surface。一步绿灯从不蕴含其他步。

快速分诊

症状先跑的命令可能层
脚手架缺文件重跑 createfindPackage 源码
DSL 校验失败arc dsl validate <dir>AUP/DSL 源
lint 报 format_changedarc dsl format --write <dir>仅格式
profile check 失败arc blocklet check --profile <recipe>缺 recipe 资产
端口占用具名实例(自动分配端口)或 --port。不要 stop 你没启动的种子 daemon本地 daemon
路径找不到 blocklet确认 blocklet.yaml.aup/ 或约定入口发现
HTTP 非 200 / 空白 host使用打印的 Host / ?blocklet= URL路由
构建 OK、页面不对浏览器验收 + 源码路径检查Surface,不是 zip
有状态写入失败确认 /instance 绑定;非仅 seedInstance 数据
远程发布失败认证、密钥、网络——见发布页发布路径

诊断配方

1. Package 身份

bash
arc blocklet inspect ./my-app
arc blocklet list .
cat ./my-app/blocklet.yaml

2. 契约

bash
arc dsl validate ./my-app
arc blocklet check ./my-app --profile minimal-app
arc blocklet dev ./my-app

dev 报告内容类型与约定 mount,不提供流量。

3. 产物

bash
arc blocklet build ./my-app
ls ./my-app/dist/.afs/manifest.json ./my-app/dist/blocklet.dist.json

4. 本地 surface

bash
export ARC_INSTANCES_DIR=/tmp/arc-instances-demo
arc service start --instance demo --home /tmp/arc-home-demo --blocklet ./my-app
arc service url --instance demo --print url
# 探测打印出来的 host/port;不要假定 4900

再在真实浏览器打开同一 URL。

5. 服务状态

bash
arc service status --instance demo
arc service stop --instance demo    # 仅当你启动的是这个临时具名实例

2.0.0-beta.28 上观察到的失败模式

观察证据文档立场
arc blocklet run 因端口占用报错种子实例 4900 被占用具名实例(自动端口)或显式 --portARC_SERVICE_PORT 只作用于种子实例
minimal-apparc dsl lintformat_changed脚手架输出未格式化 DSL记录 dsl format --write;不单方面认定 recipe 坏了
无 snapshot 密钥时 arc deploy --publish 失败要求 AFS_DID_SPACE_SNAPSHOT_SECRET作为本地发布环境前置,不是 Blocklet 源码 bug
一次隔离试验中 arc deploy <path> 返回 missing 'dir'CLI 向 /api/blocklets/dirs/add 提交父目录本地验收优先 blocklet run / service start --blocklet;裸 deploy 注册对环境敏感

不要得出的结论

证据无效结论
check 通过用户看到了正确页面
build 通过远程部署可用
本地 HTTP 200/instance 写入与认证流可用
路径里的历史产品名与该产品功能对等

相关板