Files
X-Financial/document/development/2026-07-16/dev-logs/bugs/ai-learning-multi-outcome-idempotency.md
caoxiaozhu 787bc3a481 feat(platform): close AI expense value loop
Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
2026-07-17 14:14:08 +08:00

1.7 KiB
Raw Permalink Blame History

修复记录

  • 19:01修复一个 AI 决策关联多条工作流结果后,原申请动作幂等重放可能命中多行的问题。
    • Git 提交检查:已执行 git fetch --all --pruneHEAD..origin/main 无新提交;本地相对 upstream ahead 17 个既有提交,从 661990b2 feat(expenses): add transactional expense case events242d68c3 feat(approval): add task workflow and waiver decisions,其中包含认证、费用 Case、AI 反馈/记忆、迁移安全、预审、风险处置和审批任务能力;本次未拉取、合并或改写这些历史。
    • 修改:ExpenseApplicationLearningService._find_existing() 不再按 decision_id 使用可返回多行的无序 scalar 查询,而是根据原始动作的租户、幂等键和稳定 UUID 精确取回首次 Feedback/Outcome并二次校验租户与 Decision 关联。
    • 修改:工作流结果桥接只关联事件发生前最新的已提交 AI Decision原动作重放只回填同 correlation 的预审结论,不会把后续重新提交的退回或审批结果污染到旧决策。
    • 操作:在 local-x-financial-linux 容器中使用 /tmp/x-financial-server-venv 运行 Ruff 和 AI 预览/工作流学习回归;未在宿主机执行 Python 或 pytest。
    • 验证:test_expense_application_preview_decisions.pytest_expense_workflow_learning.py 组合回归 17 passed;新用例验证第二次提交后的退回仅关联最新 Decision多 Outcome/Feedback 不影响原请求重放。
    • 影响:申请动作重试不再因后续付款、退回或审计结果增多而出现多行异常,也不会将新一轮流程结果错标到历史 AI 建议上。