还没有载入任何 run
这是 foundation export <run> 产物 viewer.json 的只读查看器——单文件、无外部依赖,不联网、不重跑、不推断。
方式一:点右上角「选择 viewer.json」,挑一个 runs/<id>/viewer.json。
方式二:在地址栏加 ?run=<run id 或路径>,例如
viewer.html?run=jev-write2。此方式需要通过本地 HTTP 服务器打开本页
(浏览器出于安全策略,直接双击打开的 file:// 页面通常不允许用
fetch 读取旁边的文件)。例如在 foundation/ 目录下:
python3 -m http.server 8765 然后访问
http://localhost:8765/viewer/viewer.html?run=jev-write2
桌面
全部活着的 Item,按 kind 分栏。点开一张卡片看它的版本链(历代 supersedes)与挂在它身上的标记。
拍线
一拍一条,事件已按写 Log 的顺序归好:谁看了什么(读数)、出口、被裁掉的提议、这一拍新出现的东西。
上交队列
只读展示。系统拿不准、或触发了保险的东西,都会停在这里等人答。命令文本按 answer <run> <id> act|ignore 生成,点「复制」拿去在 CLI 里跑—— 要在项目根目录(地基/,.venv 所在处)跑。
单元名册
句子(原样回显 YAML 里的判断依据)、状态、缝、两条线是否校准、自动率、花费。 「花费」一栏 viewer.json 本身没有单元粒度的字段——按同一次调用里参与的单元数把那次调用的花费均摊算出, 标为估算值,见页面底部说明。
包树
本阶段只有根分区;§3.9 已留接口(Pack.observe),包实现之后这里会长出子节点。
账
调用数、账本命中率、花费。全部数字可在 Log 的 ask 事件里找到出处。
每拍花费
重放
拖动滑块,按 beats[].alive_after 重建那一拍结束时桌面的样子——这是重放的唯一依据。