Ctrl K
ComunidadGuías…

docs/RELEASE_NOTES_v0.9.3.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# v0.9.3:有限收包与通知可靠收尾

[English](RELEASE_NOTES_v0.9.3.en.md)

版本日期:2026-10-14。相对公开 Core 0.9.2 的补丁更新。

业务工具返回过大正文,或远程附件超过限额时,Core 过去会先收完整包再拒绝。一次正常关闭也可能在回调、通知或死信记录完成前释放资源;执行器通知的死信重投则可能走错原生渠道。百灵中枢(BailingHub)0.9.3 修复这些边界,并让既有后台维护进度可被只读观察。

## 修复了什么

### 收包时执行 HTTP 与附件限额

业务工具 HTTP 正文新增独立的默认 **5 MiB** 传输预算。过大的 `Content-Length` 可以提前拒绝;缺少、低报长度或压缩响应仍按 fetch 解码后的实际字节逐块检查。超限请求取消下载,丢弃部分正文。模型回流默认 **8 KiB** 和审计载荷 **64 KiB** 的预算分别按 UTF-8 字节截断,不再把字符数当字节数。

远程文件沿用配置的 `max_bytes`(默认 **20 MiB**),渠道附件下载为 **20 MiB**,均在收包时检查。下载预算不保证压缩包展开或解析器的资源用量。

HTTP 200 响应头和部分正文不是已完成写入的证据。已尝试外发的写操作遇到正文超限或丢失时,继续保留原 Job / invocation、幂等标识和结果未知状态,不自动重发。

### 正常关闭等待通知的实际收尾

每个 Kernel 登记回调、送达派生、审批 webhook、告警和 DLQ 写入的实际工作,在释放资源前按共同关闭预算排空;已接受的工作可以登记后续子工作。standalone 停止定时器后也等待已开始的维护生产者。超时保留同实例工作和依赖,等待后可重试 `close()`。

这是正常关闭保证,完成排空不等于每条消息成功送达。本版未建立覆盖全部通知意图的持久 outbox,不能承诺 SIGKILL 后全部 HTTP 通知自动补投。

### 执行器死信重投原通知子任务

原生渠道仍使用原生送达。执行器通知死信先核对类型、原通知子任务、收件人和内容,再重排原通知子任务;保留其完整输入、request/job 标识,不能重跑业务父任务。

同一死信的入队和持久标记原子保存,并发请求、入队成功但确认丢失或 resolve 失败不会再次入队。返回 `queued` 只表示入队,不表示收件方已收到;再次执行失败形成的新死信可另行处理。绑定冲突明确失败,自定义仓储未配套时返回 unavailable,不降级到错误渠道。JSONL 仍只支持单 writer。

## 新增后台维护指标

既有可选 `/metrics` 端点新增后台在途数、最老在途年龄、完成/失败数、最近运行时间、排空状态与超时数,以及结算/审批最近一页进度和结算退避。

维护采集器只读 owner 内存,不查询业务明细、不触发核对或模型请求。标签仅使用固定类别,不包含账号、主体、任务、正文或凭据。计数随 owner 重建重置;最近一页进度不是持久积压总量,工作完成数不是收件方确认数。见[运维指标](OPERATIONS.md)。

## 谁需要升级

- **Core 管理员**:使用业务 HTTP 工具、远程附件、通知或 DLQ 的部署,建议升级;先保留配置、数据、队列和回滚制品,再显式应用 067。
- **嵌入式及自定义仓储开发者**:继续公平调用 `tick()` 和使用 `close(drainMs)`;执行器重投需配套 `ensureExecutorReplay`、`RuntimeStateStore.requeueDeliveryJobOnce` 及其原子语义。
- **业务后端及客户端接入方**:保留原调用标识、业务幂等和最终权限;确认工具正文符合下载预算。MCP / Agent Client SDK 0.7.0、DSH 0.7.0 不变。ACC、客户端和独立 Host 各自发行、部署,不包含在本次 Core 补丁中。

## 升级、验证与未覆盖范围

相对 0.9.2 新增 `067_delivery_dlq_replay.sql`,为 DLQ 保存类型、原通知子任务与重投标识,为 Job 保存独立入队标记。启动新 Core 的全部 MySQL DLQ 读写前必须使用官方显式迁移器应用 067,包括原生渠道 record/get;启动不自动迁移。旧数据不批量猜测类型,重投时核对原任务。见[升级指南](UPGRADE_v0.9.3.md)。

公开回归涵盖有限收包、Unicode 预算、未知写结果、正常关闭、原通知重投和指标隔离;专用 MySQL 专项覆盖从 0.9.2 升级、并发及真实 COMMIT 后的确认异常、resolve 失败和仓储重开。通知专项是仓储断点测试,不是实际杀进程、真实渠道送达或生产验收。见[可靠性契约与回归入口](CORE_RELIABILITY.md)。

依赖版本未更新。既有 Mammoth library-only 精确审计例外仍于 **2026-11-09 00:00 UTC** 到期,未扩大或续期;这不是全量依赖审计无告警的声明。

[升级指南](UPGRADE_v0.9.3.md) · [完整版本记录](CHANGELOG.md) · [能力与证据索引](IMPLEMENTATION_STATUS.md) · [上一版本](RELEASE_NOTES_v0.9.2.md)