Repository navigation
v0.18.12
·
2778 commits
to main
since this release
Agent Workflow v0.18.12
本版本交付三件大事:数字员工操作系统(RFC-310 后续批次)把「代码能力」从一条研发流水线升级成可程序化定制员工类型的操作系统,并新增统一事件中心与统一任务创建入口;公共内核架构边界加固(RFC-317)以 18-agent 并行审计的 131 条发现为输入,修掉 52 条 P1/P2(含三条越权 / 数据丢失级 P1)并给公共内核装上「第二实现长不出来」的机器棘轮;统一事件自动化规则权限合同(RFC-315)把 Webhook 私有权限名换成来源中性的事件自动化规则权限。另含 RFC-314 的 node_run_events 三处读写形状修复与 RFC-311 维护循环余项。
本版本含导航结构调整与权限点更名(webhook-triggers:* → event-automation-rules:*,/webhooks → /events,/code → /digital-employees),新增 15 个迁移,升级前请务必备份数据库并阅读文末「升级说明」。
主要更新
数字员工操作系统(RFC-310 后续批次)
- 产品形态变更:上层不再是「一条研发 Mission 长工作流」,而是可程序化定制员工类型的数字员工操作系统。配置层级收敛为「数字员工 → 数字员工分类 → 工作项 → 工具」:分类工具箱直接复用固定的 20 节点全景职责图,点哪个工作项就展示并增加该节点的工具;员工只配置岗位模板、名称启停、范围与节点工具绑定,重试统一收到「设置 → 执行策略」。
- 导航与页面:
/code、/code/executors、/code/assignments三项合并为单页/digital-employees(含分类详情/digital-employees/:typeRef与个案详情/employee-cases/:caseId);/outcomes退出导航。 - 统一事件中心(
/events):Webhook / 轮询降为「观察方式」,公开事件目录只收「已经发生」的稳定业务事实。代码平台统一为code-host.activity@1,11 类公开code-host.*事实可直接建立来源无关的响应规则;自定义来源按事件类型显式配置参数 namespace,机器键与界面显示名分离,完整路径实时显示为trigger.<namespace>.<field>。迁移0199把早期持久化的code-host.webhook@1第二套目录保留为兼容历史但从新创作面隐藏。 - 统一任务创建与任务目录:任务列表只保留一个「新建任务」入口,数字员工成为第四张执行方式卡;选择后继续走「执行方式 → 执行空间 → 任务内容 → 确认」四步 Stepper,最终确认时才调用 Case command。任务目录新增通用
public/internal可见性并沿调用树继承,数字员工的执行宿主标记为 internal——任务列表不再被内部执行刷屏,审计记录一条不删。 - 确定性职责编排:
development@8类型包(@1..@7保持不可变)。检视、流水线、冲突、员工协同与外部审批全部改为可选泳道,未配置不阻断发布 / 执行且不订阅;分类工具注册带有序问题清单,岗位选择工具即自动派生并连接P1..Pn,平台按有序问题种类确定性选择下一把修复工具。 - 双来源入口与人工审核分支:
界面输入与ISSUE是同一来源列中上下并列、无前后顺序的两个入口节点,分别独立汇入「准备工作材料」;关闭审核走「分析并实现」,开启审核走「分析 → 人工审核修复计划 → 实现」,两条路径汇合后回到同一主行。 - 工具契约对齐:分类工具主输入为流水线失败证据与流水线目录,输出显式展示
development.problem-set(逐条问题记录 + 去重后的待处理种类 + 当前头提交);修复工具主输入同步展示问题集、平台分派的问题种类、原始失败证据与流水线目录。中英文文案、示例 JSON、后端 WorkContract 与运行时语义逐项对齐。 - 交互修复:岗位优先级拖拽由稳定泳道容器持有 pointer capture,按冻结槽位边界实时预览、其他泳道以可中断 FLIP 让位;扇出卡改为同一不透明 paint stack,不再与邻卡交错;Select 在焦点交接期间不再逃逸出弹窗。
公共内核架构边界加固(RFC-317)
- 起于 RFC-294 四条判据里从未落地的第四条「存在防止第二实现再长出的棘轮」。18-agent 并行审计产出 131 条经复核发现与 95 条无人看守的违规类别;开工时 116 个架构守卫文件里只有 3 个自带能自证会红的负 fixture。
- 三条 P1 全部修复:①五类数字员工配置资源(动作模板 / 验证档案 / 数字员工 / 自动化策略 / 适配器定义)的写门只校验「能看见」,而 user 预设本就持有这五类的
:update/:archive点 ⇒ 任何登录用户都能改写、发布、归档他人的 public 资源;②归档沿两跳 FK 静默删除review_comments;③employee_definitions的 ACL 三列完全惰性。 - 两条数据正确性修复:
list<markdown>端口值落库前被按行切碎(数据损坏),codec 下沉进 handler;前端五族 class 有调用无定义,直接渲染成裸文本。 - 同批修 52 条 P1/P2、79 条 P3 入账锁死(其中 17 条顺带修掉)、19 条过期断言逐条改对并立成 6 条派生式不变量(判据的一端永远是活的源码:枚举长度 / schema 列 / 真实 import / RFC 索引状态)。
- 机器账本:仓根新增
architecture/{commons-manifest,commons-debt,guard-manifest,ledger-baselines}.json,条目数与源码逐字相等且只降不升——要升须显式allowGrowth并点名 RFC,且在下一笔不涨的提交上被判过期、强制清理。守卫的守卫 manifest 143 条:凡扫语料的守卫必须声明语料下限并两向钉死,凡断言「不存在」的必须配自变异转红的负 fixture。
统一事件自动化规则权限合同(RFC-315)
- 以来源中性的
event-automation-rules:{read,create,update,delete,override-owner}取代 Webhook 私有权限名,同时把来源无关规则从event-sources:update中拆出:默认 user 只读,manager 仅管理本人规则,admin / 显式 override 可跨 owner;创建仍叠加tasks:execute,数字员工目标仍叠加development-missions:launch。 - 迁移
0202保留旧 grant provenance、映射并去重各状态 PAT scope,不映射event-sources:*、不重写 audit。Webhook PAT 通道保持,来源无关规则全路由拒绝 PAT。
node_run_events 三处读写形状修复(RFC-314)
- 起于生产对账:部署 v0.18.11(已含 RFC-311 字节水位)的
node_run_events仍是 78.6 万行 / 1.72GB。三条形状问题与表总行数无关、与单个 run 的事件条数成正比,被归档水位掩着但没消失。 autoKill的max(ts)join 194.9ms → 最慢 0.4ms(改为逐 run「最后 200 行内 max(ts)」的有界窗口——用窗口而非最后一行,因为后果是杀真实进程,要吸收子代理回灌的 ts 乱序);会话树两段窗口的ORDER BY ts造成 TEMP B-TREE,461.5 + 122.0ms → 最慢 48.8ms(窗口按id取、取回后仍按(ts,id)排);事件落库由每行一条 autocommit INSERT 改为单次 chunk 内合并成多行 INSERT。- 零索引新增、零迁移、零 wire 变化:三条真慢语句全部走索引、没有一条
SCAN,慢在行量不在查找;实测加三个索引会让 5000 条 INSERT 的 WAL 页写 ×12.8 且对这三条一条都不起作用。
稳定性、权限与开发工装
- RFC-311 余项:
startEventsArchiver/startTaskArchiveSweeper此前只挂setInterval(1h)、没有 boot 首拍,于是在「重启比一小时更勤」的部署上一次都不执行,两个给库体积封顶的执行者形同虚设;checkpoint 循环读的是 boot 配置快照,改walCheckpointIntervalMs不重启永不生效。两条均已修复。 - 普通用户的语言切换恢复:按 RFC-036 把语言偏好与管理员 daemon 配置权限解耦——无
settings:write的账号只更新浏览器本地语言,不读写/api/config,也不消费前序管理员留下的配置缓存。 - 运行时能力门补齐:runtime 能力门此前只装在注册写路径上,现在在 spawn 前也校验。
- 开发工装(非产品代码):
bun run dev会额外起一个开发用 mock OIDC 身份提供方(http://127.0.0.1:7460),并往当前服务的库里幂等种入admin / manager / user / guest四个角色账号,点一下按钮即可切角色验证权限行为。它整体位于 test-mock 包packages/system-mocks/src/dev-auth/,产品代码零改动,AW_DEV_AUTH=0可关。
升级说明
- 数据库迁移:新增 15 个(
0192_rfc310_digital_employee_os_authoring.sql→0206_rfc310_employee_case_name.sql),迁移端点由0191前进到0206。升级前务必备份数据库。 - 权限目录 109 → 113 点:删除
webhook-triggers:{read,create,update,delete,override-owner},新增event-automation-rules:{read,create,update,delete,override-owner}与event-sources:{read,create,update,archive}。存量 grant 与 PAT scope 由迁移0202同 verb 映射并去重;event-sources:*不由迁移发放。 - 导航与路由变更:
/webhooks→/events(读面权限改为event-sources:read);/code、/code/executors、/code/assignments合并为/digital-employees;/outcomes退出导航。请更新收藏与外部深链。 - 写权收紧(breaking):五类数字员工配置资源的 revise / publish / archive 由「可见即可写」收紧为「owner 才可写」。
resource_grants只进可见性判定、不进 owner 判定,因此被授权的非 owner 写会得到 403;出路是由 owner 操作、授resource-acl:bypass、转移 owner,或自行复制一份。 - 任务列表默认不再显示内部执行:数字员工的执行宿主标记为
internal并沿调用树继承,存量执行树由迁移回填。审计记录未删除,按个案详情仍可追溯。 - RFC-310 状态如实说明:RFC-310 仍为 In Progress——本版交付的 authoring / runtime / case-task 批次已全部落主干,但 RFC-294 的 wave exit 尚未满足(DA public/required SPI、route/bootstrap 与 WorkspaceRef 未全切,
/api/tasks仍未使用 public-only membership)。功能可用,内部架构收口继续。 - 可直接替换对应平台二进制。
发布信息
- 源码提交:
d0aeb3861fff5590c0b95f09704b6d8484463ca0 - 数据库迁移:新增 15 个(
0192→0206) - 变更规模:696 个文件,+108233 / −5923
- 完整变更:v0.18.11...v0.18.12