Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
1.8 KiB
1.8 KiB
后台报销与 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;upstreamorigin/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。
- Git 提交检查:已执行