接入 External v1 抠图工具
Project CI / Frontend tests (push) Successful in 4m34s
Project CI / Repository checks (push) Successful in 4m38s
Project CI / Backend tests (push) Successful in 5m24s
Project CI / Native shell tests (push) Successful in 14m14s

将 agc_remove_background 切换到 External v1 异步契约

补齐稳定幂等身份、画布目录上下文与有界队列投影

同步 Skill、技术方案与项目决策记录
This commit is contained in:
2026-08-24 15:16:02 +08:00
parent 03add97d30
commit c59b8d4a1e
5 changed files with 16 additions and 25 deletions
@@ -14412,5 +14412,5 @@
- Direct 对话恢复从新到旧扫描全部合法 User 回合,遇到较新已回答回合继续向前,不得丢失更早未回答回合。成功返回时 Rust 已先持久化 assistant,前端冗余 append 失败也不得重跑 Provider;普通错误终态的显式 append 失败后,恢复 claim 必须保持到 React fallback writer 对同一稳定 assistant messageId 的写入明确成功或失败,不能在 writer 尚在途时按旧 `/history` 快照重跑。fallback 成功后释放 claimfallback 失败时跳过该 writer 的无界迟到重试并释放 claim,后续显式 `/history` 才可复用原稳定 `clientTurnId`。终态收敛后删除 claim,避免长会话无界增长。
# 2026-08-24 AGC Direct 抠图语义工具
- 决策:将账号态 `/api/editor/images/background-removals` 通过 `agc_remove_background` 加入受控 `agc_tools`。工具只接受当前 manifest 的图片 `sourceLocalAssetId` 与结果名称;客户端负责正式 resourceId、账号态、画布/素材目录、taskId、权限和错误脱敏,不向 Codex 暴露内部 BgFilter worker、凭据或任意 API。
- 约束:该能力不是 External v1 契约,不扩展 External v1 OpenAPI;异步结果只投影有界 `queueState`,不允许模型自行构造源 URL 或在不确定提交后更换 taskId 重试
- 决策:将 External v1 `/api/external/v1/editor/images/background-removals` 通过 `agc_remove_background` 加入受控 `agc_tools`。工具只接受当前 manifest 的图片 `sourceLocalAssetId` 与结果名称;客户端负责正式 resourceId、画布/素材目录、稳定 operation/idempotency 身份、权限和错误脱敏,不向 Codex 暴露内部 BgFilter worker、凭据或任意 API。
- 约束:异步结果只投影有界队列状态,不允许模型自行构造源 URL 或在不确定提交后更换请求身份;External v1 负责 API Key、幂等接收与统一 operation 查询,客户端不得绕过该契约