docs/RELEASE_NOTES_v0.9.1.md
Rama main · réplica de lectura del repositorio original.
# v0.9.1:异步模型工作关闭与公开能力证据
[English](RELEASE_NOTES_v0.9.1.en.md)
业务助手请求生成图片后,中枢会先返回原请求的 pending 状态,供应商响应和用量结算随后完成。如果宿主此时淘汰实例、升级或退出进程,不能把 HTTP 请求已经结束当成后台工作也已结束。
Core 0.9.1 修复这一关闭边界:在关闭资源前,等待属于原实例的 usage 后台工作及其后续结算。它还纳入公开能力索引和此前主分支的通用安全治理。本版是补丁版本,**没有新增 HTTP/API、SQL 迁移、套餐规则、客户端功能或 SDK/DSH 发行**。
## 关闭修复
- 每个 `UsageRepository` 独立登记模型工具完成、普通模型响应后的结算、响应清理、待结算 usage 核对,以及参考价格刷新到持久化结束的工作。
- Kernel 先停止新 HTTP 接入,等待前台、InHub 和执行队列完成登记,再停止新 usage 工作和维护;动态排空已接纳的完成及晚登记的结算子工作后才关闭资源。
- 所有阶段共用原 `close(drainMs)` 时限。usage 排空超时会保留原实例依赖和关闭状态,供宿主在同一实例重试;不因此重新派发模型或业务写入。
- 图片首次响应仍及时返回 HTTP 202;普通文本结果也不等待财务结算再交付。原 `operation_id`、结果/计费状态分离、业务权限、审批和未知结果处理不变。
- 失败后台工作仍可能留下 durable pending/unknown 证据。排空结束不保证所有记录已经 settled,也不提供进程崩溃恢复或供应商任务恢复保证。
正式 v0.9.0 的关闭路径没有显式登记这些 usage continuation;该 Tag 和已有制品保持原样。修复不回写其历史保证。完整语义见 [Kernel Host API](KERNEL_HOST_API.md) 和 [能力与证据索引](IMPLEMENTATION_STATUS.md)。
## 公开文档与通用安全治理
新增中英能力与证据索引,分别说明 Core、业务系统、本地宿主和独立适配层的职责,以及发行事实、公开测试/复现路径和未覆盖范围。线程上下文、可见对话审计与完整用户级长期记忆分别说明,不把已有测试扩展为生产采用证明。
本版同时纳入依赖审计与显式例外检查、固定 GitHub Actions 来源和最小权限、依赖更新及仓库安全扫描配置,以及公开安全自评和 Security Insights 元数据。自评/元数据属于仓库治理,排除在 npm 运行包和 Docker 构建内容之外;治理资料存在不意味着全部安全控制通过或没有残余风险。
## 升级影响
- 从公开 Core 0.9.0 升级,没有新增 SQL 文件,不改变已有迁移内容。更早版本仍须应用其未执行迁移,见 [升级指南](UPGRADE_v0.9.1.md)。
- 原有 USD 额度、统一倍率、周期售价/额度、模型目录和业务治理契约保持。无需为本补丁重新开通套餐或改变原请求标识。
- 使用既有 **MCP / Agent Client SDK 0.7.0、DSH 0.7.0**;不机械重发独立包。业务后端的声明、验签、授权和审批代码无须为本补丁改写。
- 嵌入式宿主应读取新 Core 制品的版本及完整 manifest,并继续调用其公开 tick/close 入口。Core 制品升级不证明宿主或客户端已经升级、部署或验收。
## 验证范围
[登记器单元测试](../src/modules/usage/background-work.test.ts) 与 [实际 Kernel + MySQL 生命周期测试](../src/app/kernel-usage-lifecycle.mysql.test.ts) 分别检查内部登记/排空机制和真实 Kernel、数据库事务、HTTP/standalone 关闭接线。后者覆盖延迟完成、晚结算、SQL 锁、同实例重试、双 Kernel 隔离、普通文本异步结算、单独清理/核对、价格持久化,以及失败保留原结果而不重派。
数据库用例需 `BAILING_USAGE_TEST_MYSQL=1` 和其专用测试 MySQL;供应商及业务数据为合成数据。测试源码或被跳过的测试不等于通过记录;真实供应商、业务接口和部署仍各自验收。本页不声称生产采用、全量模型质量或完整故障恢复。
[升级指南](UPGRADE_v0.9.1.md) · [版本记录](CHANGELOG.md) · [上一版本](RELEASE_NOTES_v0.9.0.md)