Hub r4 交接:做到哪了,还剩什么,怎么接着做
给接手的代理(和所有者)。先读 AGENTS.md,再读这一页。使用者指南(给在 Circle 里用 Hub 的人)见 Hub r4 使用指南。进度和已定的决定仍记在 Hub r4 进度,设计和做法在 Hub r4 架构。
现状(2026-10-22 更新)
分支 hub-redesign,全部提交都带 -s 和署名行,最新提交以 git log 为准。
| 部分 | 状态 |
|---|---|
| 合约(词表轴、记录与任务包格式、三种知识视图) | 完成并生成 |
| records、config、refs、rules、platform、knowledge、runs、connectors、server | 完成,各经两位独立复核和一轮修复 |
| jev | 对外调用(HTTP 客户端、密钥、配置、命令)已拆除;脚本化判断器与核验形状保留,供以后核验 bot 的归位提议 |
装配、管理员命令(含命名文档 doc put/list/show)、答案文本预算、真实测试 Hub |
完成 |
| 任务包:用例评审初评与复核、模板缺口、用例定位、回归范围、维护巡检、追溯矩阵、质量看板、缺陷转用例、FAMX/FAMY 产品包、5 个系统包 | 完成,各包当前版本见使用指南 |
| 持久部署(这台 Mac,只监听本机,LaunchAgent,钥匙串里的钥匙和操作令牌) | 在运行(2026-10-22 的记录);决定 137 起 Hub 不再读钥匙串,升级到含这项改动的发布之前,先用 key export --confirm 把主密钥经管道交给新发布的 key import,再 operator-token reissue |
| 知识库 | 6 条版本线、84 个构建已产出根(2026-10-22 的记录);CLI 手册已入树 |
Circle 一侧(本地分支 hub-mcp-client,不推送) |
完成,npm run check 通过(2026-10-22 的记录) |
| 用例索引与用例节点规则 | 完成:默认值统一为“带标签或带标记”(marked),case_rule: tagged 限制为只认标签;评审摘要带规则说明行与 marked_only 计数;验收场景已按新规则更新 |
| 判断服务拆除 | 完成:Hub 不调用任何模型;没有路径的条目留在根下标为未归位;结构性保险测试防回潮 |
| 引擎三处读法 | 完成:修复只用于待判定产物上的检查;unknown 不改终态;每个检查必须声明档(旧版本兼容缺省) |
| 构建候选与运行上下文 | 完成:每个候选写制作时间和“基于”的构建,按制作时间从新到旧,发布状态另写;运行上下文 builds 冻结带 built_at、base、has_root |
| 判定规则参照实现与差分测试 | 完成(tests/acceptance/oracle/;发现的引擎缺陷已记录并逐条处理) |
| 端到端验收(22 个场景)与覆盖审计 | 完成(tests/acceptance/、docs/hub-r4-coverage.md) |
| 设备管理包核心 | C1(合约与词表)、C2(租约服务 hub/leases)、C4(命名文档 hub/server/docs.ts)完成并合并,平台归属检查覆盖 leases 表;C3(start_run 接线)未合并 |
| 设备管理包本体 | P1 纯函数完成(清单校验、环境事实、选台架,packs/workflow/test-bed);P2–P4 包装成工作流未做 |
| 真实 Circle 客户端逐项验证 | 用例定位和模板缺口已通过(2026-10-22 的记录);其余没做,脚本任务页 docs/hub-r4-tasks/real-acceptance.md 在仓库里 |
| 转自动化 | 设计已定(设备管理包设计);上机部分要所有者给台架、账号和允许的命令类;用例转工作簿的编译部分还没有设计 |
怎么确认现状
npx tsc --noEmit
node tools/gen-contracts.ts --check
node --test --test-concurrency=3 "hub/**/*.test.ts" "packs/**/*.test.ts" "contracts/**/*.test.ts" "scripts/**/*.test.ts" ".github/checks/*.test.ts"
node bin/circle-hub status # 持久部署的状态;其他命令见 node bin/circle-hub help
跳过的用例和 todo 用例要如实报,不算通过。包内函数的沙箱和断网在 Linux CI 的 Linux isolation 任务里以 bubblewrap 与 AppArmor 运行;需要 macOS 的路径(sandbox-exec、plutil、launchd)在 Linux CI 上跳过。
规则(摘要,全文在 AGENTS.md)
- 逐个列出路径暂存,
git commit -s,一句首字母大写的英文祈使句,不加前缀和句号,后面空一行写署名行。不推送,不建 PR。 - 环境配置文件只由
scripts/real/下的脚本在运行时读,屏幕上只写键名、是否找到和长度;不要自己打开它,也不要把任何值写进文件、日志或命令行。 - 真实系统只读;失败的敏捷平台登录不重试(Hub 自己只试一次就停,管理员用
resource reset-login或secret set解除)。 - 仓库里不放内部地址、真实编号、真实文档内容;夹具只仿结构。真实文档的编号和金标准放在仓库外(
--gold文件)。 - 任务包目录里有测试和说明,发布时用
pack publish <目录> --stage;改了包里的文件要重新签:node packs/workflow/case-review/packaging.ts sign <包名>;已发布的版本不能改内容,再发布要先升版本号。 - 资源绑定的是系统包的某个版本:发布新版本后用
resource update <资源> --system-pack <包名>改绑。
分工(2026-10-22 起)
所有者的决定:代码全部由 Otty 里的其他终端(circle、agy、kimi、grok)写,监督者(Claude)只监控结果、安排工作、复核合并、发布部署、跑真实 Circle 验收。每项任务一个工作树和分支(都从 hub-redesign 开出,工作树是仓库旁边名为 circle-hub-<名字> 的兄弟目录),任务页在 docs/hub-r4-tasks/,改完在终端里回报,监督者独立跑测试、安排另一个终端复核,再合并进 hub-redesign。
| 任务 | 状态 |
|---|---|
| 回归范围、维护巡检(grok)、追溯矩阵、质量看板(kimi) | 完成并合并(包在 packs/workflow/) |
| 用例索引收尾(circle) | 完成并合并(用例规则默认值统一,c41d709) |
| 缺陷转用例(agy) | 完成并合并(含紧凑索引与沙箱保护) |
| 运行上下文带构建、构建候选带制作时间(builds-context、candidates-times) | 完成并合并(a35c349、f39ec5a) |
| 判断服务拆除(kimi) | 完成并合并(7c1ecaa,含两条结构性保险测试) |
| 引擎三处读法(hub-engine3) | 完成并合并(e5cd0bd) |
| 端到端验收与覆盖审计(hub-accept) | 完成(场景套件与 docs/hub-r4-coverage.md 在仓库里) |
| 判定规则参照实现与差分测试(hub-oracle) | 完成并合并(8489409;缺陷记录后已由引擎三处读法等任务逐条处理) |
| 设备管理包核心 C1(合约)、C2(租约服务)(agy,hub-leases) | 完成并合并 |
| 设备管理包核心 C3(start_run 接线) | 未合并(按监督者安排在做,待核实) |
| 设备管理包核心 C4(命名文档)(kimi) | 完成并合并(6533092) |
| 设备管理包本体 P1 纯函数 | 完成并合并(42ba61e);P2–P4 待做 |
真实验收脚本(real-acceptance.md) |
待开 |
| 转自动化上机部分 | 等所有者给台架、账号和允许的命令类;编译部分还没有设计 |
监督者独有的事(需要真实凭据或持久部署):发布新版本的任务包、resource update 改绑、knowledge sync、重新部署、用真实系统和真实模型的验收。
已知问题和待所有者决定的事
- 独立复核需要另一个模型家族:环境配置里现在只有千问家族的端点(
qwen3.7-max、qwen3.7-plus、qwen3.8-flash),Hub 把名字里有共同词的模型算同一家族,不认作独立。初评可以用千问,复核要换成 Kimi 或 Grok 的端点(在环境配置里再加一组)。 - 用例节点规则的默认值已定(2026-10-22 决定 13):统一为“带标签或带标记”(
marked),case_rule: tagged留作只认标签的开关。 - 第一份评审文档对应的构建(一个 FAMY 构建)还没有出现在构建站;现在用同一版本线里最新的构建(2026-10-22 的记录,未再核实)。
- 4 份 CLI 手册的凭据扫描命中(ftp 示例地址)已由管理员接受,应用手册里的加密私钥示例仍被只保留;不同意可以
source withdraw <摘要>撤回。