Files
X-Financial/document/development/2026-07-16/dev-logs/bugs/tenant-safe-historical-risk-evidence.md

10 lines
2.6 KiB
Markdown
Raw Permalink 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.
## 修复记录
- 2026-07-16 14:29:13 CST历史风险观测、few-shot 样本、Qdrant 向量和规则生成链路原先缺少完整租户、场景及制度版本边界Hermes 全局扫描还可能把不同租户的 Claim 放进同一风险图,历史检索结果若直接公开也可能泄露样本 ID、费用单号或人工评语。
- 2026-07-16 14:29:13 CST风险观测与 few-shot 关系数据改为租户复合唯一,风险接口、反馈、查询和 Hermes 图构建按认证租户隔离Qdrant 写入与检索显式携带 tenant、scene、policy_ref、rule_version使用稳定向量 ID并清理旧向量命中后再由关系库校验租户、状态和版本。风险规则生成与再生成从认证用户透传租户缺失租户时禁用历史注入而不回落到 default。
- 2026-07-16 14:29:13 CST报销预审新增只读 `historical_case_evidence`,检索或向量服务异常时降级为空证据。公开协议和 AI 助手只返回固定的“历史已确认/历史误报,仅供复核”标签与脱敏摘要,不返回 sample ID、claim_no、人工评论或历史结论原文历史证据不参与 review ID、确定性 findings、passed、blocking count、预算复核或审批路由计算。
- 2026-07-16 14:29:13 CST加固 `20260716_0008` 迁移:`RiskObservation.claim_id` 明确改为旧 Claim 表的 view-only 软引用,使空库与旧表采用路径的 Head 结构一致;降级若发现非默认租户或非空 policy/rule 版本数据则在 DDL 前 fail-fast禁止静默丢失隔离和版本信息非 PostgreSQL 在变更前明确拒绝。
- 2026-07-16 14:29:13 CST执行 `git fetch --all --prune`、工作区状态和上下游提交差异检查;`origin/main` 没有新增提交,当前分支 ahead 13最近本地检查点为权威提交前预审、持久化零录入票据和个人申请记忆本次未改写这些提交。
- 2026-07-16 14:29:13 CST全部验证在 `local-x-financial-linux` 内执行并设置 60 秒超时。历史案例、风险观测、风险图、预审和规则生成组合 90 项,报销接口与费用服务 137 项,补充 Golden/规则历史注入 28 项通过;迁移/模型/租户组合 70 项通过Ruff F/I、compileall 和 `git diff --check` 通过。一次性 tmpfs PostgreSQL 17 完整迁移循环 9 项通过,临时容器自动清理,开发数据库未修改。
- 影响:同名用户、相同样本键或相似向量不能跨租户读取、覆盖或进入 Prompt历史案例开始帮助预审与复核但只以脱敏、可降级、非决策证据存在不会扩大 AI 自动放行或审批权限。