Skip to content

v0.65.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 14:46
b179b64

0.65.0 (2026-11-07)

⚠ 升级须知 / Upgrade notes

主机从 v0.64.0 升到 v0.65.0:按 docs/runbooks/release.md §3.143–§3.148 执行。这一版带两个迁移,都随 apply-release.sh 自动应用,也都可逆:governance 0041_one_active_grant_per_scope(§3.143)和 core 0055_chat_message_idempotency_key(§3.145),见 §6 两行。不改 compose,没有新环境变量,主机的 .env 和 secrets/kernel.env 都不用改。
Two reversible migrations (governance 0041, core 0055) apply automatically with apply-release.sh. No compose, .env or kernel.env change.

升级前先在主机上跑两条只读查询,必做:

  • §3.143 查同一范围的重复有效授权。查出有行就先别升级:0041 会报错停下,什么都不改。由维护者决定每个范围保留哪一条,撤销其余几条之后再升级。
  • §3.146 数一下已写下的平台暂停原因。不是 0 的话,先请维护者看过再升级:这一版起,这些原因会显示给对应工作区的成员。

Before upgrading, run the two read-only checks in §3.143 (duplicate active grants: 0041 stops if any exist) and §3.146 (existing platform-suspension reasons become visible to workspace members).

同版升级:控制台和内核要同版升级(控制台用到 send_chat_message 的 idempotencyKey 和 WS 的 ping)。kernel、agent-host、worker-supervisor 与 worker-runtime 仍按 §3.112 一起升。主机按大版本攒着升(release.md §1 第 6 条),这一版发出不等于要升主机。

这一版是什么:断网、超时和重复调用时更可靠。同一条消息不会因为重发多出一轮;断线很快能看出来;重复的授权、改名和归档不会多记一笔。

  • 发送结果不确定时可以安全重发(§3.145、§3.147,遗留 673):发出后没收到答复,对话页会说结果不确定,并给「再发一次」。重发带同一个幂等键,内核返回原来那条消息和它的那一轮,不会多出一轮;同一个键换了文字会被拒绝(409 idempotency_key_reused)。迟到的请求先落地时,页面会跟上它开的那一轮。
  • 断线很快能看出来(§3.147,遗留 672):控制台每 15 秒发一次 ping,10 秒没有答复就显示「重连中」,网络恢复后马上重连。之前网络静默断开时,状态会一直显示「已连接」。
  • 会话到期即断开推送(§3.147,遗留 677):控制台会话到期后,/ws 连接按时关闭,已打开的页面不会再收到推送。
  • 同一范围只保留一条有效授权(§3.143,遗留 647):给同一成员再授予已持有的访问,会返回原来那条授权,不新增行,也不重签入口 Handle;审计照常写,payload 带 alreadyGranted: true。
  • 门被平台暂停时所有者看得到(§3.146,遗留 674):「健康与操作」写明暂停的时间、原因,并提示去找平台管理员;门的 Operation 照常列出,计数一致。
  • 审计页的读操作改在分页前去掉(§3.144,遗留 669):没勾「显示读操作」时,第一页不会再全是被藏起来的读操作。这是 0.64.0 的已知问题,这一版修了。
  • 重复归档、取消归档,或改成同一个标题(§3.148,遗留 665):只写 dispatch 行,不再多记一条对话转移,也不推送。

已知问题

  • 门被平台暂停时,「系统与授权」的门卡片和访问卡片还看不出来,访问卡片只写「你:用不了」,要打开「健康与操作」才看得到(遗留 675)。
    Known issue (legacy 675): a gate the platform suspended is not yet flagged on the Systems & access cards; open "Health & operations" to see it.
  • 开着管理员智能体的主机每跑一次 S2,「平台 · 集成」页多一个停用的 accept-tickets-<nonce> 实例,gate-host 里留一份测试凭证(遗留 629)。
    Known issue (legacy 629): on a host with the admin agent switched on, each S2 run leaves one disabled accept-tickets-<nonce> instance and one test credential in gate-host.

回滚(回退目标 v0.64.0,见 release.md §6 两行与 §3.143–§3.148 各节):全部只回退代码即可。

  • 0055:旧代码不写、不读新加的那一列。
  • 0041:只回退代码时,旧代码对已持有的范围再授予一次,会被索引拒掉,那次调用返回 500,不会写出重复行。
  • 要撤迁移,按 §6 两行的步骤做。

测试

  • e2e 新旅程:⑬ 自接入门的连接、轮换、暂停与确认清单(#1046,CI 栈加了自接入门,遗留 671);⑭ 能力包从导出到撤销升级的一生(#1052,批次 E,遗留 656)。
  • 新增 resilience 用例(#1048,批次 C3):静默断网,以及内核停机时切换工作区。这一版的断网用例按修好后的行为断言。
  • 目标的确认、hold、修订和 Operation 的发布、对齐有了真实内核上的 e2e(#1043,遗留 657 首批)。
  • e2e 定位守卫新增 L3(#1056,遗留 655):拦住页面内 JavaScript 发起的点击。
  • 能力矩阵又声明了 18 行重复调用(#1058,遗留 664 第一批)。

Features

  • kernel: answer a WS ping so the console can tell a dead socket (legacy 672) (#1054) (5368e65)

Bug Fixes

  • an owner sees that the platform suspended a self-connected gate, when and why (legacy 674) (#1051) (da9fde5)
  • kernel,web: the audit streams leave reads out before paging (legacy 669) (#1040) (0c0ffff)
  • kernel: close a console socket when its session expires by itself (legacy 677) (#1057) (a176bff)
  • kernel: grant a scope once, so a repeated grant returns the grant held (legacy 647) (#1036) (12c4b1a)
  • kernel: renaming or archiving a Chat to the state it is in records no transition (legacy 665) (#1060) (7a6afd0)
  • kernel: send a chat message once, so a resend with its idempotencyKey returns the message sent (legacy 673) (#1050) (7a8444f)
  • web: a send with no answer says its outcome is not known and resends once; a dropped connection shows promptly (legacies 673, 672) (#1053) (5a5a81c)

This PR was generated with Release Please. See documentation.