Skip to content

更新 Tool 与维护版本 ​

Tool 更新先检查现有版本和可用模式,再由操作者明确选择原位更新或创建新版本。fkit 默认只运行检查;它不会根据参数猜测写入方式,也不会在一个模式失败后切换到另一个模式。

检查与选择 ​

运行 fkit update NAME 会列出正整数版本、下一版本号和可选模式。也可以用 fkit update NAME:VERSION 指定基线。版本必须是正整数;名称目标存在多个版本时,应先选择基线,不要假设某个版本适合原位修改。

原位更新 ​

原位更新必须指定精确版本,并提供配置 JSON、Markdown 摘要,或两者:

bash
fkit update NAME:VERSION --mode in-place --config tool.json --dry-run
fkit update NAME:VERSION --mode in-place --config tool.json --summary summary.md

fkit 不在本地扫描 Flow 引用,因此无法在提交前判断某个版本是否被引用。BioLine 服务端是唯一权威:如果该版本仍被 Flow 引用,服务器会拒绝修改;fkit 会保留并原样显示该错误,不重试、不自动切换模式,也不新建版本。

配置和摘要使用两个独立的更新请求。两者同时提供时先写配置,再写摘要;摘要请求会复用已准备好的命令,因此不会把刚写入的配置覆盖回原值。第二步失败会明确报告配置已应用、摘要未应用。该组合不具备原子性。

创建新版本 ​

创建新版本不再需要本地镜像:fkit 复用基线版本已经存放在服务端的镜像。基线可使用名称对应的最新正整数版本,也可指定精确版本:

bash
fkit update NAME --mode new-version --dry-run
fkit update NAME:VERSION --mode new-version --config tool.json --summary summary.md

--dry-run 会检查配置和摘要文件、把补丁合并到基线配置并校验命令,同时确认基线版本确实暴露了可复用的 path,但不会创建或更新远端对象。正式执行时创建请求只尝试一次。创建后 fkit 会重新读取 Tool,并要求原 Tool ID 保持不变、所有旧版本仍存在且恰好新增预期的正整数版本;无法验证时不会猜测 ID 或继续写入。

创建请求本身就携带命令、摘要、输入输出和机型配置,所以正常情况下只需要一次写入:新版本一诞生就带着本次提交的命令和摘要,不需要再调一次更新接口把配置“抄”过去。创建后 fkit 会读回该版本核对;如果 BioLine 没有保留请求体里的配置(例如新版本仍然是基线的摘要),fkit 会对刚刚创建的那个版本补发一次 update,再核对一次,绝不多写、绝不循环。每个版本都有独立摘要,这一约束因此始终成立。--json 结果中的 configSource 说明配置来自哪一个请求,remoteWriteCalls 给出实际写入次数(正常为 1)。

输出与安全边界 ​

--json 输出检查结果或操作状态,可用于记录版本前后状态、基线、创建验证、配置核验(configVerified、configSource)、写入次数(remoteWriteCalls)和部分成功。认证和远端读请求仍按 fkit 的项目配置执行;文档模式 --docs 在认证和业务动作之前返回命令说明。