同步external_generation_job表目录的provider checkpoint口径
- 补记 provider_kind 与 provider_task_id 的追加字段、租约栅栏与禁止覆盖语义 - 说明 checkpoint 不进 payload、read model、BFF 响应与公开契约 - 事件表目录补充 provider_checkpoint 事件
This commit is contained in:
@@ -359,6 +359,8 @@ Responses 的终态载荷既是工具调用的恢复源,也是正文的恢复
|
||||
|
||||
- 2026-08-06 原子提交对上述 source-only / slice 条款的修正:“provider 原图已持久化”只能解释为 OSS 对象已上传并验证,不再表示 project resource / account asset 已先行入库。source-only、透明整图和成功切片必须先完成最终选择,再作为一份 prepared commit 连同 canvas/job/receipt 一次提交;未选中或失败分支不得留下正式 resource / asset 部分记录。
|
||||
|
||||
- 2026-09-21 provider checkpoint 追加:主表末尾追加可选 `provider_kind` / `provider_task_id`,只服务外部 provider 异步任务的 at-most-once submit。`set_external_generation_job_provider_checkpoint_and_return` 复用与 phase 完全相同的 `job_id + worker_id + lease_token` running 租约栅栏,写入成功时追加一条 `provider_checkpoint` 事件;目标行已有 checkpoint 时直接拒绝覆盖,因此崩溃后重新 claim 的 attempt 只能读到既有 provider task id 继续查询与落库,不会二次 submit、二次扣费。checkpoint 不写入 `request_payload_json`,也不进入任何用户可见 read model、BFF 响应或公开契约,provider task id 只作服务端 checkpoint 与对账;`external_generation_job_summary` 不投影这两个字段,轻量摘要按无 checkpoint 返回。
|
||||
|
||||
### `external_generation_job_summary`
|
||||
|
||||
- Rust 结构体:`ExternalGenerationJobSummary`
|
||||
@@ -374,6 +376,8 @@ Responses 的终态载荷既是工具调用的恢复源,也是正文的恢复
|
||||
- 用途:外部生成任务审计事件表,按 `job_id` 和 `owner_user_id` 记录 `enqueued`、`claimed`、`lease_renewed`、`completed`、`failed`、`acknowledged` 等状态转换事实。状态转换只能由 SpacetimeDB procedure 写入,不由前端或 worker 直接改表;该表用于追溯任务生命周期和排障,不替代 `external_generation_job` 当前状态。
|
||||
- 保留策略:事件只会随已确认通知的终态任务由 `prune_external_generation_job_history_and_return` 原子删除,不支持按事件单独清理,以保持任务、摘要和审计链一致。单次事务最多删除 256 条事件;若事件未删完,任务和摘要暂不删除,维护脚本用同一个 job cursor 重试剩余事件。
|
||||
|
||||
- 2026-09-21 事件类型追加:provider 异步任务在 submit 成功后落 checkpoint 时追加一条 `provider_checkpoint` 事件,记录 provider task id 与写入 worker;该事件只作服务端追溯与对账,不进入用户可见 read model。
|
||||
|
||||
### `ai_text_chunk`
|
||||
|
||||
- Rust 结构体:`AiTextChunk`
|
||||
|
||||
Reference in New Issue
Block a user