Repository navigation
Releases
v0.66.0
0.66.0 (2026-11-07)
⚠ 升级须知 / Upgrade notes
主机从 v0.65.0 升到 v0.66.0 时,按 docs/runbooks/release.md §3.149–§3.151 执行。这一版带一个迁移 worker 0014_definition_derivations(§3.151):它新建一张只许插入的表,不改已有数据,会随 apply-release.sh 自动应用,可以回退(见 §6 那一行)。compose 没有改动,也没有新环境变量,主机的 .env 和 secrets/kernel.env 都不用改。
One reversible migration (worker 0014, a new insert-only table) applies automatically with apply-release.sh. No compose, .env or kernel.env change.
从更早的版本升:主机按大版本攒着升(release.md §1 第 6 条),这一版发出不等于要升主机。从 v0.65.0 之前的版本升,还要按途经各版的 §3 各节执行。其中 v0.65.0 那一步的两条只读查询(§3.143、§3.146)是必做的。
Coming from before v0.65.0, also follow the §3 sections of every version on the way, including the two read-only checks of v0.65.0 (§3.143, §3.146).
同版升级:控制台和内核要同版升级。控制台会用到这一版新增的 get_worker_definition_stats、get_combination_candidates、propose_definition_from_combination,以及 specRef 字段。kernel、agent-host、worker-supervisor 和 worker-runtime 仍按 §3.112 一起升。
这一版是什么:S11 GO16 完成。Worker 能看出自己在不同版本、不同环境、不同组合下用得怎么样,跑得好的组合可以沉淀成新的 Worker 定义。
- Worker 的「使用情况」(§3.150,GO16a,遗留 569):Worker 详情页按版本、运行环境和组合(原样,或带步骤调整)统计运行次数、Task 结果、达成率和失败分组。
- 指纹只给读得到目标的人(§3.150,遗留 681):步骤调整的指纹只给能读到它所在目标的调用者,也就是目标的请求人和 workspace owner。其余调用者拿到的是只在这次响应里有效的编号
#n。控制台先写调整了哪些字段,再写编号。 - 可沉淀的组合(§3.151,GO16b):同一个 Worker 版本加同一份步骤调整,如果近 90 天里达成至少 3 次(请求人确认或平台判定)、来自至少 2 个目标、达成率至少 80%,能读到那些目标的人就可以把它沉淀为新的 Worker 定义草稿。确认前会提示内容发布后全工作区可见。新定义会记下自己从哪来。只有人能发起沉淀,agent 拿不到这两个能力。猜测指纹的调用一律返回 404。
- 编辑器草稿不再撑满标签页的存储(§3.149,遗留 667):一个标签页里所有草稿加起来不超过 100 万字符,超出时先丢最旧的。Skill 正文改回原样后,就不再保留草稿。
已知问题
- 平台管理员把成员「移出」工作区后无法撤回,控制台里也没有恢复入口(遗留 687)。移出前请确认。
Known issue (legacy 687): removing a member from a workspace cannot be undone yet; there is no restore. Confirm before removing. - 门被平台暂停时,「系统与授权」的门卡片和访问卡片还看不出来,要打开「健康与操作」才看得到(遗留 675)。
Known issue (legacy 675): a gate the platform suspended is not yet flagged on the Systems & access cards. - 开着管理员智能体的主机每跑一次 S2,「平台 · 集成」页就多一个停用的
accept-tickets-<nonce>实例,gate-host 里也会留下一份测试凭证(遗留 629)。
Known issue (legacy 629): each S2 run on a host with the admin agent on leaves one disabledaccept-tickets-<nonce>instance and one test credential.
回滚(回退到 v0.65.0,见 release.md §6 那一行和 §3.149–§3.151):全部只回退代码即可。
- worker 0014:上一版既不读也不写这张表。沉淀出的 Worker 在上一版里就是普通的 WorkerDefinition,只是不再显示来历。
- #1064 和 #1069 要一起回滚。如果只回滚 #1069,所有 builder 会重新拿到完整的指纹。
- 要连表一起删,按迁移文件头的三条语句操作。删表会丢掉来历,审计记录还在。
测试
- e2e 新旅程:⑮ 一个目录条目的完整生命周期(#1068);⑯ 沉淀一个跑得好的组合(#1071);⑰ 在控制台里提议、放弃和弃用 Operation(#1074)。遗留 657 的
e2e_waived从 76 降到 65。 - 能力矩阵又声明了 29 行重复调用(#1066、#1070、#1072、#1075、#1077,遗留 664 第三到第八批),
repeat_unclear从 100 降到 71。
Features
- kernel,shared,web: keep a combination that kept working as a new Worker definition (S11 GO16b) (#1071) (767ac12)
- kernel,shared,web: Worker usage per version, run environment and combination (S11 GO16a, legacy 569) (#1064) (fa28987)
Bug Fixes
- kernel,shared,web: show a WorkerSpec's digest only to readers of a goal it ran in (#1069) (ac9639b)
- web: editor drafts keep within the tab's storage, row keys cannot stall, a restored Skill body set back keeps nothing (legacy 667) (#1062) (171b834)
This PR was generated with Release Please. See documentation.
v0.65.0
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 disabledaccept-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
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.
v0.64.0
0.64.0 (2026-11-07)
⚠ 升级须知 / Upgrade notes
主机从 v0.63.0 升到 v0.64.0:按 docs/runbooks/release.md §3.133–§3.142 执行。带两个迁移,都随 apply-release.sh 自动应用,都可逆:governance 0040_pack_installs_from_admin_proposals(§3.137)与 core 0054_audit_acting_through(§3.138),见 §6 两行。不改 compose,没有新环境变量,主机 .env 与 secrets/kernel.env 都不用改。
Two reversible migrations (governance 0040, core 0054) apply automatically with apply-release.sh. No compose, .env or kernel.env change.
同版升级:控制台与内核同版(§3.137 的控制台用到 install_pack 的新参数);kernel、agent-host、worker-supervisor 与 worker-runtime 仍按 §3.112 一起升。主机按大版本攒着升(release.md §1 第 6 条),这一版发出不等于要升主机。
这一版是什么:管理员智能体能提议安装能力包,审计写明每件事经由谁做,几个控制台丢内容、看不懂的地方修掉了。
- 管理员智能体与能力包(§3.137):平台管理员的管理员智能体能列出部署里的能力包,并向某个工作区的所有者提议安装其中一个。所有者在提案里或「能力包」页安装,两条路径是同一个
install_pack、同一套权限;装完提案记为已应用,安装记录能回到提案。装不了时(包已不在、版本已不是最新、已在「能力包」页装上)只能拒绝,控制台写明原因。新的 409:admin_proposal_segment_is_pack_install、admin_proposal_pack_mismatch。开着ADMIN_AGENT_ENABLED的主机升级后就能用;没开时没有影响。 - 审计写明经由谁(§3.138):审计记录写明每条操作是人本人做的,还是经由管理员智能体、入口智能体、Worker、服务或成员的 Handle 做的,或是系统自己的后台工作;
audit_query、platform_audit_query、platform_overview/platform_status的recentAudit、reconstruct的审计行多actingThrough与actingSessionId(可为 null)。智能体被拒绝的调用也会进审计,每个会话每种拒绝每小时最多 20 条,其余只计数(指标nexttime_capability_refusals_total)。升级前的旧记录这一项为空。工作区与平台两个审计页都显示「经由」一列,能按它筛选,升级前管理员智能体代为的旧行也筛得出(#1035);Worker 与服务账号的行写出名字,被拦下的行用中文写出原因(#1038)。 - 会话过期不丢内容:对话输入框(#1023),以及技能、流程、目标计划编辑器(§3.140),会话过期后重新登录回到原处,没保存的内容还在;登录页说明为什么要重新登录;
connection_closed的提示不再叫人刷新页面(页面会自己重连)。 - 切换工作区(§3.134):连不上平台时提示不再自动消失,带「刷新页面并进入」按钮;内核
/ws每次认证与关闭各记一行日志。 - 「系统与授权」(§3.135):「成员」是可搜索的下拉框,已授权的成员标「已授权」、不能再选。
propose_goal的描述(§3.133)写清验收放在plan.acceptance、路径是 JMESPath;校验行为不变。- 验收脚本(§3.136):单独跑
accept_s1/accept_s2/accept_s3后会停掉它起的 fake-llm。 - 内核小修(§3.139):第二次
stop_agent保留第一次的停止请求时间,用户看不到区别。
已知问题
- 审计页选「本人」等筛选时,第一页可能全是被隐藏的读操作,要点「加载更多」(遗留 669)。
Known issue (legacy 669): filtering the audit pages (e.g. by "in person") can show an empty first page of hidden reads; use "Load more". - 开着管理员智能体的主机每跑一次 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 disabledaccept-tickets-<nonce>instance and one test credential in gate-host.
回滚(回退目标 v0.63.0,见 release.md §6 两行与 §3.133–§3.142 各节):全部只回退代码即可。旧代码不写、不读 0054 的两列,两条约束对 null 都成立;0040 放宽的约束与旧版本写的行兼容。只回退代码时,旧控制台列出 pack_install 段会显示不认识的条目类型、也应用不了它,只能拒绝或撤回。要撤迁移,按 0040、0054 文件头的步骤做(0040 的前提是没有带提案溯源的 pack 记录、也没有 pack_install 段)。
测试
- 测试缺口批次 D 全部完成:审计 actor 遍历(#1027)、重复调用语义(#1031,能力矩阵
repeat列与守卫 M6,首批 8 行已声明,其余在遗留 664、665)。 - 批次 F(#1008):staging 每轮预演都演练回滚与恢复。批次 B1(#1012):e2e 定位守卫上线,存量只减不增。
draft-evaluations集成测试不再因 CI 负载超时连锁失败(#1032,遗留 663)。
Features
- admin-agent: let the admin agent see capability packs and propose installing them (AA5g) (#1002) (6705498)
- kernel: record what an audited act came through and audit refused Handle calls (#1028) (6c6beb2)
- web,kernel: a refused audit row says why, and a Worker's or service account's act names it (legacy 666, 670) (#1038) (3d11bd7)
- web: show and filter what an audited act came through on both audit pages (legacy 666) (#1035) (70479cd)
Bug Fixes
- accept: stop fake-llm once the production provider is back (legacy 643) (#1001) (01f16f2)
- goal: say where propose_goal's acceptance goes and that paths are JMESPath (legacy 645) (#1000) (8e048d4)
- web,kernel: offer a reload when a workspace switch cannot reach the platform (#1003) (4015564)
- web: keep the chat draft and say why across a session that expires (legacy 658, 659) (#1023) (c77ed15)
- web: keep the skill, procedure and goal plan editors' unsaved work across an expired session (legacy 662) (#1029) (dfe80d4)
- web: pick the member to grant in one searchable list on Systems & access (#997) (729bae9)
This PR was generated with Release Please. See documentation.
v0.63.0
0.63.0 (2026-11-06)
⚠ 升级须知 / Upgrade notes
主机从 v0.62.0 升到 v0.63.0:按 docs/runbooks/release.md §3.125–§3.132 执行。带一个迁移,随 apply-release.sh 自动应用:governance 0039_admin_proposal_segment_verified(只建一个函数)。compose 有一处变化(见下条),主机 .env 不用改。
附加能力包目录 config/packs/(§3.127):kernel 多一个环境变量 EXTRA_PACKS_DIR=/data/config/packs,写在 docker-compose.yml 里,走已有的只读 config/ 挂载,主机 .env 与 secrets/kernel.env 都不用加。升级时 apply-release.sh 会自动建好空的 config/packs/(新装由 host-env-init.sh 建);目录空着什么都不变。往里放包按 docs/runbooks/operations.md §14.10:先解到 .incoming-*、tar --no-same-owner --no-same-permissions、有符号链接就停下、chmod 后原子 mv;放进去就生效,不用重启。有问题的包只丢掉它自己,原因在「平台 · 模块」的「本部署附加的能力包」卡片和内核日志 extra_pack_skipped 里看。
Extra packs: the kernel now also reads capability packs from the host's config/packs/ (EXTRA_PACKS_DIR is set in compose; no .env change). apply-release.sh creates the empty directory on upgrade; an empty directory changes nothing. Place packs per operations.md §14.10.
管理员智能体的开关 ADMIN_AGENT_ENABLED(§3.118):新装主机默认打开(host-env-init.sh 在新的 secrets/kernel.env 里写 ADMIN_AGENT_ENABLED=1)。已有主机升级后不会自动打开:kernel.env 写什么就是什么,没写就是关。要打开,在 secrets/kernel.env(不是 .env,compose 不从 .env 传这个变量)里加 ADMIN_AGENT_ENABLED=1,再 docker compose up -d --force-recreate kernel(host-checkout.md §E3.3)。值只能是空、0、false、1、true,写成其他值内核启动时报错退出。
Admin agent switch: new installs start with ADMIN_AGENT_ENABLED=1. Existing hosts are not switched on by an upgrade; to turn it on, add ADMIN_AGENT_ENABLED=1 to secrets/kernel.env (not .env) and recreate the kernel.
同版升级:控制台与内核同版(§3.126、§3.129 用到 §3.125、§3.127、§3.128 的新字段与能力);kernel、agent-host、worker-supervisor 与 worker-runtime 仍按 §3.112 一起升。
这一版是什么:管理员智能体(S11 W3)做出来的东西能落地、能带走。
- 应用时绑门(§3.125、§3.126):管理员智能体提议的 Worker 写明要用的系统;所有者应用前在控制台勾选要绑的门(默认全绑),应用工作区部分后自动验证一次,详情里显示核验结果。绑门不等于授权。
- 附加能力包(§3.127、§3.129):见上面的升级须知;能力目录里附加包标「本部署附加」,安装、审阅、撤销、核验和自带包一样。
- 导出成能力包(§3.128、§3.129):平台管理员可以把已应用、并且最近一次验证通过的管理员提案工作区部分导出成能力包(只返回文件,不写任何东西),在控制台下载成 tar,放进
config/packs/后其他工作区可以安装。用法与拒绝原因见operations.md§14.11。 - 修复(§3.132):
list_allowed_operations只在 Handle 持有request_action时列执行类 Operation;有门、没声明request_action的 Worker 以前会拿到每次都 403 的执行类工具,现在不再列出。默认值不变:要请求动作必须在 Worker 定义里显式列request_action。
已知问题
- 开着管理员智能体的主机每跑一次 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 disabledaccept-tickets-<nonce>instance on the Platform · Integrations page and one test credential in gate-host. An existing host is affected once the switch is turned on.
回滚(回退目标 v0.62.0,见 release.md §6 一行与 §3.125–§3.132 各节):全部只回退代码即可。governance 0039 只加了函数,上一版不调它;要撤迁移就 drop function admin_proposal_segment_verified(uuid) 再删 schema_migrations 里 governance 39 那一行。config/packs/ 留着无害,旧内核不读它;从附加包装进工作区的内容是普通安装记录,撤销照旧。
主机目前停在 v0.50.0(维护者 11-06 决定等这一版再升),届时从 v0.50.0 连同 §3.75–§3.132 一起走(其中 §3.94 要求内核与 worker-supervisor 同版,§3.100 要求 llm-proxy 与内核同版,§3.112 要求 kernel、agent-host、worker-supervisor 与 worker-runtime 同版)。
测试
- #979(§3.130):
accept_s2把工单旅程应用的部分导出成能力包,在第三个工作区安装,人做的每件事逐条打印。 - #981、#985(§3.131):
accept_s2 --real让真实模型走一遍管理员智能体工单旅程,按步记录到哪、卡在哪,不让整轮失败;staging 第三轮admin_tickets1/1(到应用、绑门、自动验证),只跑一次,说明能走通、说明不了成功率(docs/retrospective-s11-w3-admin-agent.md)。
Features
- kernel: bind a proposed Worker's gates when its admin proposal is applied (AA5f) (#968) (673a436)
- kernel: export an applied admin proposal segment as a pack (S11 AA5d-2) (#976) (5c80a43)
- kernel: extra packs dir beside the image's packs (S11 AA5d-1) (#971) (18c69e6)
- web: choose a proposed Worker's gates before applying an admin proposal (AA5f-2) (#969) (8780d6b)
- web: pack source label, extra packs on the platform, export an admin proposal as a pack (S11 AA5d-3) (#977) (4a93d34)
Bug Fixes
This PR was generated with Release Please. See documentation.
v0.62.0
0.62.0 (2026-11-05)
⚠ 升级须知 / Upgrade notes
主机从 v0.61.0 升到 v0.62.0:按 docs/runbooks/release.md §3.109–§3.124 执行。带六个迁移,随 apply-release.sh 自动应用:core 0052_activity_session_record、core 0053_chat_agent_kind、governance 0036_admin_agent_targets、0037_connection_request_admin_agent_session、0038_admin_proposal_rejection_reads、task 0013_task_admin_agent_session。不改 compose。
同版升级:kernel、agent-host、worker-supervisor 与 worker-runtime 镜像必须一起升(§3.112);控制台与内核同版(§3.113、§3.115、§3.116)。
升级时确认:主机 secrets/kernel.env 与 .env 里都不应该有 FAKE_INVOKE_WORKER,有就删掉,它只属于 CI(§3.114)。
管理员智能体的开关:已有主机升级后,ADMIN_AGENT_ENABLED 保持 kernel.env 里原来的值,没写就是关。只有新装主机默认打开(§3.118)。可选环境变量 ADMIN_PROPOSAL_REJECTION_LIMIT(默认 3)、ADMIN_PROPOSAL_REJECTION_WINDOW_DAYS(默认 7),写错会让内核启动时停下(§3.120)。
这一版是什么:管理员智能体(S11)能真正跑起来了,从试验工作区一路走到目标工作区里生效。
- 运行时与对话(§3.111–§3.113):管理员智能体有自己的对话、会话和容器(
nexttime-admin-*);平台管理员在「平台 → 管理员智能体」页选目标工作区、看状态、停掉它。 - 试验(§3.119、§3.121):管理员智能体在试验工作区里可以请人接入系统(凭证由平台管理员录入,智能体看不到)、试跑 Worker;对话里链到 Task 和「完成连接」。试验工作区里,平台预置的 http / mcp 连接器允许平台管理员自接,每次单独审计。
- 审阅与交接(§3.110、§3.115、§3.116):平台管理员在「平台 → 管理员提案」审阅平台部分;所有者在侧栏与「待我审批」看到待处理的管理员提案数。
- 防刷(§3.120):同一目标 7 天内被拒满 3 次后,管理员智能体暂时不能再向它提议,到时自动恢复。
- 审计(§3.123):被拦下的调用在审计流里标「被拦下」和拒绝码(遗留 628)。
- 修复:0.61.0 的已知问题(遗留 609)已修,管理员智能体读回提案时看不到门宿主实例的地址(§3.109)。
- 验证(§3.124):验证一段已应用的管理员提案时,会探它写入的 Operation 和 Worker 经过的门,每个门都要连得通;门不通或被平台切断时,验证从「通过」变成「不通过」,这是本意(遗留 630)。
已知问题
- 开着管理员智能体的主机每跑一次 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 disabledaccept-tickets-<nonce>instance on the Platform · Integrations page and one test credential in gate-host. The host has the switch off today, so it is not affected.
回滚(回退目标 v0.61.0,见 release.md §6 各行):
- 先删管理员容器:
docker ps -aq --filter label=nexttime.role=admin | xargs -r docker rm -f(§3.112)。 - core 0053:先确认
select count(*) from chats where agent_kind = 'admin_agent'为 0,不为 0 先归档这些对话。 - governance 0036:只回退代码前先
drop trigger admin_proposal_segments_target_chosen on admin_proposal_segments并删它的函数。 - 其余迁移(core 0052、governance 0037、0038、task 0013)只回退代码即可。
主机目前停在 v0.50.0(维护者 10-31 决定,等需要真机完整验证时再一次升),届时从 v0.50.0 连同 §3.75–§3.124 一起走(其中 §3.94 要求内核与 worker-supervisor 同版,§3.100 要求 llm-proxy 与内核同版,§3.112 要求 kernel、agent-host、worker-supervisor 与 worker-runtime 同版)。
测试
- #945(§3.114):CI 的管理员智能体旅程 ⑨,带 CI 专用的提议标记,标记只在 CI 生效。
- #949(§3.117)、#959(§3.122):staging 预演用真 pi 跑管理员智能体的提议与工单旅程(试验、提案、应用、验证)。
Features
- admin-agent: admin agent chats, targets, status and stop in the kernel (S11 AA4c-1) (#937) (1bd1754)
- admin-agent: agent observations record their session; rollback preview names workspaces (S11 AA4-0) (#933) (5afa987)
- admin-agent: new installs start with the admin agent switched on (#957) (0ac9e0e)
- admin-agent: run admin agent turns in their own container (S11 AA4c-2) (#941) (e2a9e1a)
- console: admin proposal handoffs — owner count badge, chat proposal link, trial return, targets deep links (S11 AA4e) (#947) (d73af4d)
- console: admin proposal rows show the platform part apart, with a filter for the ones awaiting you (legacy 619) (#951) (7ecb8bc)
- console: platform administrators review admin proposals on the platform (S11 AA4b) (#936) (5de733e)
- console: platform administrators run their admin agent from the console (S11 AA4c-3) (#943) (608f460)
- kernel: admin agent trial runs — request_connection and invoke_worker in its trial workspace (AA5a-1) (#954) (4b07111)
- kernel: close a target to an admin agent after repeated rejections (AA5a-2) (#956) (2c7ab3c)
- web: admin chat links to the Task and to completing a connection; trial exception copy (AA5b) (#961) (91862e2)
Bug Fixes
- kernel: verify an applied admin proposal by probing the gates it runs through (legacy 630) (#966) (846b7d0)
- web: mark refused calls in the audit streams (legacy 628) (#964) (4297b34)
This PR was generated with Release Please. See documentation.
v0.61.0
0.61.0 (2026-11-02)
⚠ 升级须知 / Upgrade notes
主机从 v0.60.0 升到 v0.61.0:按 docs/runbooks/release.md §3.101–§3.108 执行。带七个迁移,随 apply-release.sh 自动应用:core 0050_admin_trial_workspaces、core 0051_ontology_version_origin、worker 0013_draft_origin、governance 0032_admin_proposals、0033_change_segments_from_admin_proposals、0034_admin_proposal_platform_segments、0035_admin_proposal_platform_dependency。不改 compose,没有新环境变量,主机不需要额外操作;ADMIN_AGENT_ENABLED 仍默认关,这一版没有运行时会启动管理员智能体。控制台与内核同版发布(§3.105 成员资格加了必填字段)。
升级验收期间先别建试验工作区:create_workspace {purpose: 'admin_trial'} 不受 ADMIN_AGENT_ENABLED 控制,一旦建了,只回滚代码的窗口就关上了(§3.101)。
这一版是什么:管理员智能体(S11)的提案链路在内核里完整了,人这一侧的审阅也有了第一块界面。
- 试验工作区与 I-A6(§3.101):管理员智能体的 Handle 只在试验工作区签发与使用;草稿记录起草方(人 / 智能体 / 平台)。
- 管理员提案(§3.102–§3.104、§3.106):管理员智能体在试验工作区起草提案、读回、撤回;目标工作区的所有者预览、应用、拒绝发给自己的部分,应用的内容像能力包安装一样可以撤销;提案可以带新建门实例的「平台部分」,由平台管理员应用、拒绝或撤销;工作区部分要等平台部分应用、并对照它建的门实例复查后才能应用(提案依赖锁与数据库第二道墙)。
- 控制台(§3.105、§3.107、§3.108):成员资格标出试验工作区;手机上的导航抽屉恢复工作区切换(遗留 610);审阅页显示草稿的起草方;所有者在「能力目录 → 管理员提案」审阅、应用或写理由拒绝,安装历史带上提案标题与链接。
已知问题(下一版修,遗留 609):管理员智能体读回自己的管理员提案时(提议的返回、agent_get_admin_proposal、agent_withdraw_admin_proposal),能看到平台部分新建门宿主实例的地址和 OpenAPI 地址。这些地址都是它自己提议的,提议时已拒绝任何带凭据的地址。下一版去掉。
Known issue (fixed in the next release): When the admin agent reads back its own admin proposal (the propose result, agent_get_admin_proposal, agent_withdraw_admin_proposal), it sees the addresses (target and OpenAPI URL) of the gate-host instances the platform part proposes. These are addresses it proposed itself, and any address carrying a credential was refused when proposed.
回滚(回退目标 v0.60.0,见 release.md §6 各行):
- 只回滚代码的前提是没有试验工作区(
select count(*) from workspaces where purpose = 'admin_trial'为 0);建过的要先停用、等满 7 天清除,这期间只能保留这个版本(core 0050)。 - 管理员提案应用到工作区的内容,要先在 0.61.0 上撤销,再回退代码(旧代码看不到
admin_proposal来源的记录,governance 0033)。 - 有平台部分的提案,先在 0.61.0 上应用、拒绝或撤回,再回退代码(governance 0034)。
- 其余迁移(core 0051、worker 0013、governance 0032、0035)只回退代码即可,表与列留着没人读。
主机目前停在 v0.50.0(维护者 10-31 决定,等需要真机完整验证时再一次升),届时从 v0.50.0 连同 §3.75–§3.108 一起走(其中 §3.94 要求内核与 worker-supervisor 同版,§3.100 要求 llm-proxy 与内核同版)。
测试
- #911(遗留 588,只改验收脚本):评测试跑慢时按时取消,它自己的残留引起的 429 不再判为缺陷。
Features
- admin-agent: admin proposals an admin agent makes, reads back and withdraws (S11 AA3b-1) (#916) (36666f8)
- admin-agent: owners preview, apply, reject and roll back admin proposal segments (S11 AA3b-2) (#920) (ee71a62)
- admin-agent: platform segment of admin proposals (S11 AA3c-1) (#921) (305e6ad)
- admin-agent: workspace parts of an admin proposal hold to its platform part (S11 AA3c-2) (#923) (65ab5f7)
- console: mark trial workspaces in memberships (legacy 596) (#924) (375d247)
- console: owner reviews admin proposals in the catalog (S11 AA4a) (#929) (a69027d)
- console: show who wrote a draft on review pages (legacy 597) (#927) (d0b622b)
- kernel: admin trial workspaces, I-A6 and draft origin (S11 AA3a) (#914) (fd90b8e)
This PR was generated with Release Please. See documentation.
v0.60.0
0.60.0 (2026-11-01)
⚠ 升级须知 / Upgrade notes
主机从 v0.59.0 升到 v0.60.0:按 docs/runbooks/release.md §3.99、§3.100 执行。带两个迁移 llm-usage 0003_usage_refusal(llm_usage.refusal_scope 列、CHECK llm_usage_refusal 与两个 refused 部分索引;建索引时 llm-proxy 的用量插入短暂排队,会自动重试)与 goal 0017_pause_model_refused(goal_runs.pause_reason 加 model_refused),随 apply-release.sh 自动应用。不改 compose,没有新环境变量,ADMIN_AGENT_ENABLED 仍默认关。
llm-proxy 与内核必须同版:旧内核的严格用量 schema 不认 refusalScope。apply-release.sh 按 tag 整体升级,正常走就是同版。
行为变化(遗留 589 关闭):
- 工作区当天的 token 或费用配额用完后,模型一个字没答的运行不再被记成完成:Worker Task 失败
model_refused,评测试跑记errored不判分,目标暂停model_refused(不自动恢复,预算重置或调高后由请求者继续),入口 Turn 结束为failed,对话里写明是哪个预算用完、什么时候重置、谁能调高。 - llm-proxy 的预算拒绝挪到读完请求体与模型白名单之后;白名单外照旧 403、不计量。402 的 message 以
out of budget:开头。每个 402 先写一条 0 token、0 费用的 refused 用量记录再回,最多多等 5 秒;超时照样回 402,打 warnrefusal delivery timed out并给nexttime_llm_proxy_refusal_delivery_timeouts_total{provider}加一。升级窗口内出现几次这条 warn 属正常。 - 平台运行状态的 30 天调用次数与
report-usage.sh的calls不再算被拒的调用,后者单列refused。
回滚(回退目标 v0.59.0):不能只回滚内核,否则旧内核会把混有 refused 记录的整批用量拒掉,llm-proxy 的队列满后丢真实用量、预算少算;llm-proxy 与内核按 tag 一起回。schema 与 refused 行默认保留,只回退代码;要撤 schema 的顺序与前置检查见 release.md §6 的两行(goal 0017 要先确认没有 model_refused 暂停的运行)。
主机目前停在 v0.50.0(维护者 10-31 决定,等需要真机完整验证时再一次升),届时从 v0.50.0 连同 §3.75–§3.100 一起走(其中 §3.94 要求内核与 worker-supervisor 同版,§3.100 要求 llm-proxy 与内核同版)。
新功能
- #903(S11 AA2b):再加三个只有管理员智能体会话能调用的只读能力
platform_state_runtime(当前与最近镜像、入口容器计数、五个平台服务的状态)、platform_state_updates(当前 / 最新 / 回滚版本、待跑迁移、pi 更新状态)、platform_state_invariants(最近一次一致性检查的时间与每项违例数,不给样本)。调用路径与审计同 AA2a,返回内容按形状白名单投影(§3.99)。
修复
- #910(遗留 589):见上面的行为变化(§3.100)。
- #909(遗留 586、587,只改验收脚本与 staging):真实模型验收轮只要有一次被预算拒绝,
real-budget就判这轮作废、要调大配额重跑;staging 真实模型轮默认配额 3M → 8M。
Features
- kernel: admin agent reads platform runtime, updates and invariant checks (S11 AA2b) (#903) (a301144)
Bug Fixes
- a run whose every model call was refused for the workspace budget fails model_refused (legacy 589) (#910) (976469a)
This PR was generated with Release Please. See documentation.
v0.59.0
0.59.0 (2026-11-01)
⚠ 升级须知 / Upgrade notes
主机从 v0.58.0 升到 v0.59.0:按 docs/runbooks/release.md §3.97、§3.98 执行。带一个迁移 core 0049_admin_agent_sessions(只把 sessions.kind 的 CHECK 放宽一个值 admin_agent,不回填),随 apply-release.sh 自动应用。新环境变量 ADMIN_AGENT_ENABLED 默认关,这一版没有运行时会启动管理员智能体,主机不用设它;但写成 1 / true 以外的非空值,内核启动时直接报错退出,升级前确认主机 .env 里没有它或值合法。
行为变化(遗留 407 关闭):install_pack、install_module、upgrade_module、roll_back_change_segment、verify_change_segment 只能代表人调用;服务 Principal 的 API key 调这五个能力现在得到 403 forbidden,不能再装包、装模块或写 ChangePlan 分段。主机脚本不用服务 key 调它们,不受影响。
回滚(回退目标 v0.58.0):先查 select count(*) from sessions where kind = 'admin_agent'。为 0(这一版总是如此)时可以连 schema 一起撤:按 0001 的五个值重建约束,再 delete from schema_migrations where module = 'core' and version = 49;不为 0 时保留 core/0049、只回退代码。AA4 之后若回退到 AA1 之前的代码,要先吊销管理员智能体的 Handle(语句见 0049 文件头与 §3.97)。
主机目前停在 v0.50.0(维护者 10-31 决定,等需要真机完整验证时再一次升),届时从 v0.50.0 连同 §3.75–§3.98 一起走(其中 §3.94 要求内核与 worker-supervisor 同版)。
新功能
- #897(S11 AA1 + 遗留 407):平台有了「管理员智能体」身份。它没有自己的 Principal,会话种类
admin_agent属于管理员本人在该工作区的 human Principal,Handle 只由容器持有;上限是 28 个只读能力,再按工作区角色收窄;每次调用都重查此人仍是有效平台管理员、工作区启用、开关打开,拒绝也记审计;经它的每条审计都带sessionKind和sessionId。approve、apply、rollback 与逐项确认只走人的控制台通道。管理员降为普通用户时立即吊销其管理员智能体会话与 Handle(§3.97)。 - #900(S11 AA2a):三个只有管理员智能体会话能调用的只读能力
platform_state_gates、platform_state_connectors、platform_state_audit(能力新标记adminAgentOnly)。先在调用方工作区做派发检查与审计,再在只读平台事务里重查权限后读取,平台审计写不进去就不返回结果;返回内容按形状白名单投影,像 IP 或像密钥的值丢弃或只计数(§3.98)。
Features
- kernel: admin agent identity, ceiling and per-call authority (S11 AA1) (#897) (c51352b)
- kernel: admin agent reads platform gates, connectors and recent changes (S11 AA2a) (#900) (2bf46f7)
This PR was generated with Release Please. See documentation.
v0.58.0
0.58.0 (2026-11-01)
⚠ 升级须知 / Upgrade notes
主机从 v0.57.0 升到 v0.58.0:按 docs/runbooks/release.md §3.95、§3.96 执行。这是 S11 W2 的收尾版:没有迁移,不改生产 compose,没有新配置或环境变量,没有单独的主机步骤。回滚只回退代码,随时可以,回退目标 v0.57.0。主机目前停在 v0.50.0(维护者 10-31 决定,等需要真机完整验证时再一次升),届时从 v0.50.0 连同 §3.75–§3.96 一起走(其中 §3.94 要求内核与 worker-supervisor 同版)。
新功能
- #888(S11 GO15a):步骤的 WorkerSpec 逐字段对照这一步用的 Worker 定义版本显示(保留、去掉、加上了什么,模型从什么改成什么,其余沿用定义),每一步有一行准入结论(可以开始 / 要有人批准试用 Skill 草稿 / 现在不会开始,并给理由)。运行暂停时规划器提议也做准入检查,接受确认框列出会让目标停下的步骤;提议卡、计划版本时间线与修订确认框逐字段列出改动步骤改了什么。契约只加:新能力
get_worker_definition(只读)、PlanRevisionWire.checkedStepKeys(§3.95)。 - #889(S11 GO15b):在「修订计划…」里可以用选择器调整一步对 Worker 的设定(Skill、门、观察范围、能力、模型、职责说明,只能收窄,由内核重新准入);暂停说明指向控制台里能走通的入口(§3.96)。
修复
- #890(遗留 581):修订归类把没写目标验收与
acceptance: []算作一样。之前这种情况会让提议卡误报「改了目标的验收」,apply_minor下本来能由平台替请求人采用的小修订被升级成要人决定。
Features
- goal: WorkerSpec against its definition, admission verdict and field-level revision diff (S11 GO15a) (#888) (4fbd852)
- web: edit a step's WorkerSpec in the plan editor (S11 GO15b) (#889) (04ad970)
Bug Fixes
- goal: read no goal acceptance and an empty one as the same in revision class (legacy 581) (#890) (78cae45)
This PR was generated with Release Please. See documentation.
v0.57.0
0.57.0 (2026-11-01)
⚠ 升级须知 / Upgrade notes
主机从 v0.56.0 升到 v0.57.0:按 docs/runbooks/release.md §3.94 执行。没有迁移,不改生产 compose 的结构,但内核与 worker-supervisor 必须同一次升级、同一次回退:新内核给每个目标步骤的 spawn 带 goalRunId,老 supervisor 会拒绝,所有目标步骤都起不来。升级路径已由预发演练(v0.56 → 新头,accept_s2 S14)覆盖。主机目前停在 v0.50.0(维护者 10-31 决定,等需要真机完整验证时再一次升),届时从 v0.50.0 连同 §3.75–§3.94 一起走。
升级前检查
- 主机
.env若设置了TASK_WORKDIR_RETENTION_HOURS,必须 ≥ 2,否则新 supervisor 不启动。 - 两者之间没有启动依赖,内核与 supervisor 重建的短暂窗口里 spawn 可能得到 400(
docs/runbooks/host-worker-runtime.md§17.2)。
新功能
- #884(S11 GO14):同一个目标里,后一步可以读前一步留下的文件。计划条目写
filesFrom: [步骤…](1 到 8 个,必须在它的dependsOn里),被点名步骤那次被接受的尝试,其 Worker 放在/workspace/out的文件只读出现在下游容器的/upstream/<步骤>。上游还没退出就稍后再看;文件交不出(被跳过、没成功、目录不在或不属于这个目标、out被换成别的东西)时目标暂停等人决定,不花尝试次数。没结束的目标里已成功步骤的目录每小时续租,目标结束后再过一个保留期清掉。改filesFrom算小修订;流程模板暂不支持。控制台在确认卡片、规划器提议、步骤详情、修订编辑器里都显示读取关系。契约只加字段:PlanStep.filesFrom?;worker-supervisor 内部接口加goalRunId、upstream[]、409upstream_unavailable/goal_task_spawned、POST /task-dirs/keep。
已知边界
- 步骤间的文件是唯一不经凭证复查的通道(绑定的凭证复查是值级的,文件不做)。这是 GO14 方案的明确取舍:上游 Worker 拿到的观察已经脱敏,Worker 进程不持凭证。
- 长期暂停的目标会一直占着它已成功步骤的目录;只读查询与处理办法见
host-worker-runtime.md§17.1。
回滚(结果记 docs/private/)
- 回退目标是 v0.56.0,只回退代码,内核与 supervisor 一起回退。回退前先跑
host-worker-runtime.md§17.2 的只读 SQL,查有没有计划用到filesFrom(老内核读不了这些计划)。有行时:没结束的目标(包括还没确认的proposed)先由请求人取消;待决的、带filesFrom的修订先拒绝;然后先docker compose stop kernel,换好两边的版本后再一起起。已结束的这类目标回退后读不出详情,直到再升级回来。
Features
This PR was generated with Release Please. See documentation.