lili
|
a327c9913e
|
fix(m3a): result-out failureReason 对齐后端 FailureReasonEnum 真七值(catch-all=llm_error)
mini-desktop 真 e2e 部署收口抓到的契约 bug:result_out 七值集用了 content_violation/
budget_exceeded/generation_failed 三个不在 FailureReasonEnum 内的值、catch-all 用无效的
generation_failed → worker 失败回调被后端 DifyCallbackTxService.isValidFailureReason 拒
(「failureReason 不在契约#6 七值枚举内」)、回调事务回滚、任务未转终态。
修:七值集对齐 FailureReasonEnum(unsafe_prompt/intent_unclear/no_template_match/
config_invalid/llm_error/timeout/asset_gen_failed);catch-all=llm_error(SaaGraphDispatcher 同口径)。
Java slice test 原只测成功路 validateSucceededPayload、漏测失败路 failureReason 校验故没抓到 →
改为反射调后端真 isValidFailureReason(就是它拒了 generation_failed),本地即可守此 bug 类。
验证:Python result_out 13/13 + Java slice 4/4 本地绿;待 mini-desktop 重部署真 e2e 复验。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 22:06:50 -07:00 |
|
lili
|
847089b541
|
feat(m3a): 便宜档 Node 退役机制 U1-U4 本机交付(Python §6.1 worker + 后端路由契约/A2A/幂等)
M3a 退役机制 plan 经 Codex+Opus 双评审(needs-rework)→ 按创始人 A(全局 dispatcher
flag 整体翻转、不做 per-request 灰度)重写 → Opus 复审 minor-fixes → 发现项全数修复。
U1 Python §6.1 HTTP worker(cheap-worker/worker_service.py + result_out.py):
202 投递握手 + 有界串行队列(治串行 worker 忙 409 误判)+ 三字段 result-out
(gameConfig 占位 / engineBundle 承重含 __GameBundle / sourceProject best-effort 2.0)
+ HMAC 回调。27 单测 + 真生成 e2e 过九门 + 真网络回调。
U2 跨语言契约 slice test(CheapWorkerResultOutContractTest):反射调真
validateSucceededPayload 过薄校验 + 真 CallbackSignatureVerifier HMAC。
U3 A2A 状态(additive):AigcTaskStatusEnum.toA2aStatus + app VO/RPC DTO a2aStatus
字段(保留数字 status 不破坏调用方)+ Convert/ApiImpl backfill + 契约 aigc.yaml。
U4 创作请求级幂等(行业标准 idempotency):DO idempotencyKey + Flyway V26
(列+唯一索引,NULL 多值=不去重)+ Mapper selectByIdempotency + submitGenerate dedup。
真验证抓到并修 2 个真 bug:① worker 回调走系统代理被 fake-ip 拦 502 → 禁代理 opener;
② result-out 顶层 costRmb 不在 DifyCallbackReqVO 字段内、后端严格拒未知 → 落 trace.cost。
验证:Python 27 测 + Java 21 测全绿(mvn BUILD SUCCESS)。
剩余 U2 真派发 / U4 真 DB / U5 待 mini-desktop 真部署。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 21:18:28 -07:00 |
|