Files
X-Financial/document/development/2026-07-17/dev-logs/bugs/employee-session-directory-regressions.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

2.2 KiB
Raw Blame History

修复记录

  • 13:19修复用户会话结算测试身份错配、缓存命中后旧部门不再归一化以及 Excel 导入清空上级时误清空员工租户的问题。
    • Git 提交检查:已执行 git fetch --all --prunegit status -sbgit log HEAD..@{u}git log @{u}..HEADorigin/main 无新提交,本地 main ahead 17工作区仍包含多智能体并行变更未做清理、覆盖或提交。
    • 本地 ahead 摘要17 个提交覆盖审批任务与幂等回放(242d68c328b834ed4940ebc4)、租户安全费用学习/预审/票据关联/申请记忆与反馈(ee88a36ba662cfe6)、历史回填与迁移安全(5ed34c2b11275e4b)、费用时间线/事务(1347366b22669a90a616b30c661990b2)及不透明认证会话(653eda05)。
    • 修改:会话结算正向用例改用会话真实所有者认证,保留服务端 username ownership 校验;新增其他用户不能关闭该会话的反向测试,避免用放宽授权掩盖 durationMs=0
    • 修改:目录建表/种子初始化继续按 bind 与租户缓存,但缓存命中时仍以租户过滤查询旧部门编码并持久化映射到规范部门;不再因初始化缓存永久跳过外部同步产生的旧编码。
    • 修改Employee 与 OrganizationUnit 的复合租户关系只把 organization_unit_idmanager_id 标记为 SQLAlchemy 可同步外键,tenant_id 只参与关联过滤;清空部门或上级不会再把员工租户写成 NULL,数据库复合外键仍阻止跨租户关联。
    • 测试:补充会话所有权反例、导入后 tenant_id/manager_id 持久化断言,以及旧部门归一化后租户与数据库组织归属断言。
    • 验证:容器内三个原失败点与新增反例 4 项通过员工服务、Excel 导入、行为画像/会话和认证会话相关回归 31 项通过ORM mapper 确认关系同步列仅为 organization_unit_id/manager_id;相关文件 Ruff 与 git diff --check 均通过。
    • 影响:会话时长能在正确登录主体下正常结算,其他用户仍不能关闭该会话;旧组织编码会持续收敛到标准部门;员工导入或资料更新清空上级/部门时不会破坏不可为空的租户归属。