Files
X-Financial/document/development/2026-07-17/dev-logs/bugs/steward-linked-reimbursement-tenant-context.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

13 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 后台报销与 Steward 可信租户上下文缺失
日期2026-07-17
文档路径document/development/2026-07-17/dev-logs/bugs/steward-linked-reimbursement-tenant-context.md
## 修复记录
- 02:09记录 bug 修复:后台报销与 Steward 可信租户上下文缺失。bug-log:242d68c3
- Git 提交检查:已执行 `git fetch --all --prune`upstream `origin/main` 无新提交;本地 ahead 17 条,包含 `242d68c3 feat(approval): add task workflow and waiver decisions``28b834ed fix(approval): replay immutable action responses``4940ebc4 feat(approval): add safe risk disposition workflow``ee88a36b feat(ai): add tenant-safe hierarchical expense learning` 等共享工作区既有提交,本次未改写这些提交。
- 修改:`linked_reimbursement_draft_jobs.py` 将已认证 `current_user` 显式传给 Orchestrator避免后台 AgentRun 丢失 tenant`steward.py` 为 plans、slot-decisions、runtime-decisions、plans/stream 注入认证用户,用登录态覆盖 payload 身份字段,并补充会话归属校验和申请候选单租户过滤;对应测试覆盖未认证、空 tenant、伪造 tenant、跨租户会话及候选单隔离。
- 操作:所有静态检查和测试均在 Docker 容器 `local-x-financial-linux``/app` 下执行;没有修改 commercial、迁移、连接器、AI 发布或 Savings 代码,也没有提交或推送。
- 验证:容器内定向 pytest 两组共 54 项通过Ruff 排除目标旧文件既有 E501 长行后全部规则通过。完整 Ruff 仍报告目标旧文件历史 E501不涉及本次新增安全逻辑。
- 影响:后台报销任务不再因漏传登录态落入缺失/default tenant四类 Steward AI 入口统一要求登录,客户端伪造 tenant、用户或权限字段不能覆盖服务端身份跨租户会话和申请候选单读取会 fail-closed。