Files
X-Financial/document/development/2026-07-16/dev-logs/bugs/risk-observation-access-and-lifecycle.md

14 lines
3.6 KiB
Markdown
Raw Normal View History

## 修复记录
- 2026-07-16 15:10:42 CST修复风险观察列表和完整证据链读取范围过宽的问题。风险池仅允许管理员、财务、管理层和预算监控角色访问单据完整风险证据只允许管理员或当前审批人查看申请人和无权主体统一以 404 隐藏资源存在性,所有查询继续绑定可信租户。
- 2026-07-16 15:10:42 CST修复风险反馈只有自由文本状态、无法可靠表达处置过程的问题。新增类型化判定与生命周期投影区分确认风险、误报、补件、整改、豁免申请和完成处置使用乐观版本、请求指纹、行锁和仅追加事件表保证并发与审计一致性已完成状态不可重新判定。
- 2026-07-16 15:10:42 CST修复前端读取错误 JSON 字段名导致证据、政策依据、贡献度和决策轨迹可能丢失的问题;风险证据卡改用服务端持久字段并展示处置状态、版本和明确动作,高风险卡不提供直接审批入口。
- 2026-07-16 15:10:42 CST验证在 `local-x-financial-linux` 容器完成:风险观察、风险处置、审批工作台与风险门禁组合 26 项,前端审批/风险/动作协议定向 72 项Vite 生产构建通过;一次性 PostgreSQL 验证了复合租户外键、唯一约束、仅追加触发器和非空降级保护。
- 2026-07-16 15:10:42 CSTGit 拉取检查已执行;上游没有本地尚未包含的新提交,当前分支相对上游 ahead 14。已有 ahead 提交均保留在修复上下文中,未修改用户正在维护的财务规则工作簿和历史未跟踪日志。
- 2026-07-16 15:33:03 CST交叉审查后收紧处置动作语义误报、补件和豁免申请必须提供服务端校验的说明完成处置必须提供处理结果版本冲突返回明确消息并触发前端刷新已完成生命周期不再展示重复动作。
- 2026-07-16 15:33:03 CST处置服务在 Claim 公共锁内重新确认当前审批人Observation 和 Disposition 使用租户范围行锁及固定顺序;风险观察写入同样获取 Claim 锁。完整证据、风险池和处置权限分别执行最小授权,跨租户和无权资源继续以 404 隐藏。
- 2026-07-16 15:33:03 CST最终验证全部在 `local-x-financial-linux` 容器完成并设置 60 秒超时;相关后端 174 项、迁移/所有权 54 项、前端 73 项与生产构建通过,一次性 PostgreSQL 17 的结构和并发验证 14 项通过。规则工作簿和历史未跟踪日志未被改动或纳入提交。
- 2026-07-16 15:44:39 CST交叉审查发现风险处置重放在权限复核前读取当前 Disposition 及全部事件,旧 request_id 可能看到首次动作之后的处置状态。新增 `20260716_0012`:完整响应在 append-only Event 的 INSERT 前原子写入 `response_json`,重放只返回该不可变快照并将 `replayed=true`;不得通过 UPDATE 补写审计事件。
- 2026-07-16 15:44:39 CST兼容 0012 前历史事件时,不回读当前 Disposition只使用目标 Event 的 `after_json``version <= target` 的只追加事件重建;快照身份、租户、观察、处置、请求和版本任一不一致均 fail-closed。新增后续补件/整改后重放首个裁决的服务与 HTTP 回归,确认只返回版本 1 和当时事件。
- 2026-07-16 15:44:39 CST容器内风险处置、迁移和前置检查 69 项通过、1 项条件跳过,审批快照与报销接口 29 项通过;一次性 tmpfs PostgreSQL 17 的 0012 Head 迁移与审批风险真实并发共 17 项通过,临时数据库自动清理且持久开发库未修改。