Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
2.2 KiB
2.2 KiB
报销审批非参与者错误映射与陈旧测试契约
日期:2026-07-16 文档路径:document/development/2026-07-16/dev-logs/bugs/reimbursement-approval-task-access-error-mapping.md
修复记录
- 21:38:记录 bug 修复:报销审批非参与者错误映射与陈旧测试契约。(bug-log:242d68c3)
- Git 提交检查:已手工执行
git fetch --all --prune,upstreamorigin/main无本地尚未包含的新提交;当前分支 ahead 17 且工作区已有其他智能体和用户的未提交改动,因此未自动合并或变基。ahead 包括审批任务与风险链242d68c3、28b834ed、4940ebc4,AI/费用学习与预审链ee88a36b、6bdf65bc、ae3f02c3、54754b55、211f85d9、5b246307、a662cfe6,Expense Case/时间线与事务链5ed34c2b、1347366b、22669a90、a616b30c、661990b2,以及迁移安全11275e4b、认证会话653eda05。 - 修改:
reimbursement_approval_actions.py将审批任务访问策略抛出的LookupError显式映射为 404,避免非任务参与者通过报销审批/退回接口触发 500;test_expense_claim_service.py与test_reimbursement_endpoints.py同步到正式审批任务的资源隐藏与任务冲突契约,并增加申请人审批、退回均无状态和动作账本副作用的 HTTP 回归。 - 操作:完整读取
agent-change-logSkill,沿ExpenseClaimActionProtocolMixin → ApprovalTaskLifecycleService → ApprovalTaskAccessPolicy诊断调用链;保留“非参与者不可读取任务”的权限语义,没有放宽审批人、管理员、申请人或租户边界;随后运行日志 helper 创建本记录并补齐实际证据。 - 验证:在
local-x-financial-linux容器中,原失败用例与新增 HTTP 用例 2 项通过;审批任务、审批路由和报销接口组合 65 项通过;费用服务审批、退回和付款相关筛选回归 30 项通过;相关 Python 文件 Ruff F/I 检查通过。 - 影响:申请人或其他非任务参与者调用审批动作时稳定返回 404,不再出现服务端 500,也不会创建动作账本、审批事件或修改 Claim;可见但不可操作的任务仍按既有策略返回 403,状态/版本冲突继续返回 409。
- Git 提交检查:已手工执行