fix(agent): 画布审批 - 修复归属校验与大事件刷新

This commit is contained in:
ddcat666
2026-10-10 04:45:12 +08:00
8 changed files with 351 additions and 57 deletions

View File

@@ -5,6 +5,12 @@ description: 信封、错误码与 OpenAPI
# HTTP API 合同
## Agent 画布权限与大事件
自由画布和项目关联画布均使用 `canvas_projects`。Agent 运行时按登录账号和画布 ID 查询归属,不能把所属项目 ID 当作画布 ID;画布不存在、属于其他账号或数据库读取失败时,不声明读写及导出权限。
`canvas_updated` 的画布增量超过单事件 128 KiB 上限时,复用 `requiresRefresh: true` 通知客户端重新读取完整画布,优先保留操作摘要;摘要仍超限则仅发送刷新通知。画布正文、历史和操作回执仍完整保存,普通大小事件继续携带 `canvasPatch`。不提高事件上限、不截断正文、不修改审批暂停或模型调度判断。
## 注册邮箱等价检查
公开注册与邮箱绑定的唯一性检查将 `gmail.com` 和 `googlemail.com` 视为同一域,移除本地部分的点及 `+` 后缀。例如 `a.b+x@googlemail.com` 与 `ab@gmail.com` 不允许创建两个账号。其他域保留点和 `+`;现有域名白名单规则保持不变。

View File

@@ -5,11 +5,13 @@ description: 当前项目已实现功能的手工验证清单与未确认边界
# 待测试
## Agent 资源型文本读取
## Agent 画布权限与大事件审批
- 已修复:`canvas_read_text` 在单工具执行路径中使用资源服务,并在检查点写事务外读取,避免误报“文本资源读取服务不可用”及 SQLite 单连接嵌套读取阻塞。
- [x] 专项测试通过:实际运行时工具入口读取资源正文、中文分页、跨用户资源拒绝、读取不修改画布,以及相邻工具结果回填测试。
- [ ] 后端加载修复后,在真实画布中让 Agent 读取上传的 TXT/Markdown 节点,确认返回正文;真实对象存储读取和原失败对话的后续回合仍待验收。
- 已修复:权限查询使用 `canvas_projects`;大画布增量超过事件上限时改为完整快照刷新通知,避免审批执行事务回滚。
- [x] PostgreSQL 独立临时 schema 验证独立和项目关联画布、跨账号、缺失画布、项目 ID 误用以及数据库读取失败。
- [x] 专项测试复现修改前大节点审批失败;修改后覆盖完整批准、执行、回执保存、正文保留、重复批准不再写入、小事件保留增量及超大摘要刷新。
- [x] 本地用户确认原审批失败场景可以继续执行;前端画布事件与版本同步专项测试通过。
- [ ] 验证跨浏览器、多实例及刷新失败时的恢复;本次不改既有审批恢复和模型调度流程。
## 复制生图节点后节点消失