2.0 KiB
2.0 KiB
修复记录
- 15:33:记录 bug 修复:AI 新建费用申请直接提交绕过统一事务。
- Git 提交检查:
git fetch --all --prune后未发现 upstream 新提交;本地 ahead 2 个既有提交,分别为653eda05 feat(auth): add opaque bearer sessions(不透明 Bearer 会话与认证收口)和661990b2 feat(expenses): add transactional expense case events(Expense Case 与事务业务事件基础)。 - 修改:
user_agent_application.py将 AI 新建并直接提交改为先创建草稿,再统一调用ExpenseClaimService.submit_claim,删除入口内手写提交状态和平台风险评估;提交异常或未找到单据时主动回滚,避免外层工具日志提交失败草稿。 - 修改:
budget.py的预算就绪检查改为复用当前 Session 连接执行 metadata 检查,避免 Engine 连接隐式提交已经flush的申请和预算数据;test_reimbursement_endpoints.py、test_user_agent_service.py补齐成功提交、事件失败整体回滚、保存草稿无副作用和必填部门上下文回归。 - 操作:所有后端验证均在
x-financial-local-linux容器内执行,单条命令使用timeout 60s;没有修改数据库结构,没有对持久化开发数据库执行迁移,也没有重启服务。 - 验证:AI 直接提交/失败回滚/保存草稿 3 项、申请提交主链路 5 项、预算与 Expense Case 13 项,共 21 项通过;相关 Python 文件
ruff --select F,I通过。整份test_reimbursement_endpoints.py运行结果为 13 项通过、3 项未通过,失败分别位于既有附件风险等级断言、申请审批路由断言和中文测试请求头编码,不属于本次 AI 提交事务断言。 - 影响:AI 一键新建申请现在与编辑重提共用同一提交语义,预算预占、提交校验、申请风险标记、Expense Case 事件和审批状态保持一致;业务事件写入失败时,申请、预算额度、预算流水、预算预占和 Case 关联不会残留部分成功数据。
- Git 提交检查: