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

1.8 KiB
Raw Blame History

后台报销与 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 --pruneupstream origin/main 无新提交;本地 ahead 17 条,包含 242d68c3 feat(approval): add task workflow and waiver decisions28b834ed fix(approval): replay immutable action responses4940ebc4 feat(approval): add safe risk disposition workflowee88a36b feat(ai): add tenant-safe hierarchical expense learning 等共享工作区既有提交,本次未改写这些提交。
    • 修改:linked_reimbursement_draft_jobs.py 将已认证 current_user 显式传给 Orchestrator避免后台 AgentRun 丢失 tenantsteward.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。