chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08
这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。
按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。
涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
DDL 基线合并 / Kiro 到 Claude Code 迁移
阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# 变更审计记录:修复小程序登录落地页跳转失效
|
||||
|
||||
| 字段 | 值 |
|
||||
|------|-----|
|
||||
| 日期 | 2026-03-28 02:03:11 |
|
||||
| Prompt-ID | P20260328-015747 |
|
||||
| Session-ID | 6ff7eb14 |
|
||||
| Session 路径 | docs/audit/session_logs/2026-03/28/06_a6c60b56_011950 |
|
||||
|
||||
## 操作摘要
|
||||
|
||||
修复小程序登录后按角色跳转默认落地页失效的 bug。2026-03-27 权限改造(W1-W5)将 auth-guard.ts 从角色硬编码改为权限码驱动,但 login.ts 未同步更新,导致所有角色登录后都跳转到 my-profile。
|
||||
|
||||
## 根因分析
|
||||
|
||||
1. `syncVisibleTabs(role)` 改造后变成空操作(noop),登录后 tab 可见性未设置
|
||||
2. `getRoleHome(role)` 内部改为读 `globalData.permissions`,但 `/api/xcx/login` 不返回 permissions(只有 `/api/xcx/me` 返回),导致 permissions 为空数组,所有角色都跳到 my-profile
|
||||
|
||||
## 修复方案
|
||||
|
||||
- approved 用户登录成功后,先请求 `/api/xcx/me` 获取 permissions
|
||||
- 用 `syncPermissions(permissions)` 设置 tab 可见性
|
||||
- 用 `getPermissionHome(permissions)` 计算正确的落地页
|
||||
- `/me` 请求失败时降级到 my-profile,后续 app.ts 的 checkAuthStatus 会补偿
|
||||
|
||||
## 风险评估
|
||||
|
||||
- 新增一次 `/api/xcx/me` 请求,登录流程多一个网络往返(约 100-200ms)
|
||||
- `/me` 失败时降级到 my-profile 而非卡住,可接受
|
||||
|
||||
## 验证矩阵
|
||||
|
||||
| 角色 | 预期落地页 | 权限码依据 |
|
||||
|------|-----------|-----------|
|
||||
| coach | task-list | view_tasks |
|
||||
| staff | board-finance 或 board-customer | 看板权限 |
|
||||
| manager | board-finance | 全部权限,finance 优先级最高 |
|
||||
| 无角色 approved | my-profile | 无权限码 |
|
||||
|
||||
## 本次对话文件变更
|
||||
|
||||
### 新增文件
|
||||
- `docs/audit/prompt_logs/prompt_log_20260328_015747.md`
|
||||
- `docs/audit/session_logs/2026-03/28/06_a6c60b56_011950/main_01_6ff7eb14.md`
|
||||
- `docs/audit/session_logs/2026-03/28/07_ac77697e_015550/main_01_77f49184.md`
|
||||
|
||||
### 删除文件
|
||||
- `docs/audit/session_logs/2026-03/28/06_a6c60b56_011950/main_01_aeb580f4.md`
|
||||
|
||||
## 改动注解
|
||||
|
||||
### `apps/miniprogram/miniprogram/pages/login/login.ts`
|
||||
- 变更类型:修改(bug 修复)
|
||||
- 原始原因:2026-03-27 权限改造将 auth-guard.ts 从角色硬编码改为权限码驱动,但 login.ts 的登录成功跳转逻辑未同步更新,导致所有角色登录后都跳到 my-profile
|
||||
- 思路分析:登录接口 `/api/xcx/login` 不返回 permissions 字段(只有 `/api/xcx/me` 返回),因此在 approved 分支中新增一次 `/me` 请求获取权限码。选择 try-catch 包裹并降级到 my-profile,而非阻塞登录流程,因为 app.ts 的 `checkAuthStatus` 会在后续页面 onShow 时补偿。import 从 `getRoleHome, syncVisibleTabs` 改为 `syncPermissions, getPermissionHome`,与 auth-guard.ts 的新 API 对齐
|
||||
- 修改结果:登录后正确按权限码跳转到对应落地页(coach→task-list, staff→board, manager→board-finance)。新增约 100-200ms 网络延迟(一次额外 /me 请求)。AI_CHANGELOG 已同步更新
|
||||
|
||||
## DDL/迁移检查
|
||||
|
||||
- 无新增迁移 SQL
|
||||
|
||||
## 文档同步状态
|
||||
|
||||
- ⚠️ `apps/miniprogram/README.md` 需补充权限码驱动登录跳转说明(本次审计中已更新)
|
||||
Reference in New Issue
Block a user