# 变更审计记录：微信小程序开发调试面板

- 日期：2026-03-03 03:20:58
- Prompt-ID：P20260303-031720
- 风险标签：`dir:backend` `dir:miniprogram` `dir:admin-web` `dir:etl` `dir:shared` `dir:db` `db-schema-change` `root-file`
- 审计范围：本次对话期间的精确变更（session_diff）

## 变更概要

为微信小程序前后端联调新增「开发调试面板」功能，解决小程序无地址栏无法自由跳转、角色切换需改数据库等联调痛点。

后端新增 4 个 dev 端点（仅 `WX_DEV_MODE=true` 时注册），前端新增 dev-fab 浮动按钮组件和 dev-tools 调试面板页面（仅 develop 环境渲染）。

## 本次对话文件变更

### 新增文件
- `apps/miniprogram/miniprogram/pages/dev-tools/dev-tools.ts` — 调试面板页面逻辑（展示用户上下文、切换角色/状态、页面跳转）
- `docs/audit/prompt_logs/prompt_log_20260303_031720.md` — Prompt 审计日志

### 修改文件
- `apps/miniprogram/miniprogram/pages/dev-tools/dev-tools.wxss` — 调试面板样式（卡片布局、标签颜色、按钮组）
- `docs/audit/session_logs/_session_index.json` — 会话索引更新
- `docs/audit/session_logs/_session_index_full.json` — 完整会话索引更新

## 改动注解

### `apps/miniprogram/miniprogram/pages/dev-tools/dev-tools.ts`
- 变更类型：新增
- 原始原因：前后端联调阶段需要快速切换角色、状态、页面跳转，微信小程序无地址栏无法自由导航，角色切换需直接改数据库操作繁琐
- 思路分析：采用独立页面而非内嵌面板，通过 `request` 工具函数调用后端 dev 端点实现真实的角色/状态切换（后端修改数据库 + 重签 token），而非前端 mock。页面列表硬编码与 `app.json` 同步，避免运行时反射。token 更新后同步写入 globalData 和 Storage，确保后续请求使用新身份
- 修改结果：提供完整的调试面板，包含用户上下文展示、角色切换（coach/staff/site_admin/tenant_admin）、状态切换（new/pending/approved/rejected/disabled）、页面跳转列表。仅在 develop 环境通过 dev-fab 浮动按钮入口可达

### `apps/miniprogram/miniprogram/pages/dev-tools/dev-tools.wxss`
- 变更类型：修改
- 原始原因：为调试面板提供视觉样式
- 思路分析：采用卡片式布局（info-card）+ 分区标题（section-title 左侧蓝色边框）+ 状态标签颜色映射（approved 绿/pending 黄/new 蓝/rejected 红/disabled 灰），与 TDesign 设计语言保持一致
- 修改结果：完整的调试面板样式，包含信息卡片、按钮组、页面列表、消息提示等组件样式

## 合规检查

| 检查项 | 状态 | 说明 |
|--------|------|------|
| 文档同步 | ✅ 已补齐 | `apps/miniprogram/README.md` 已更新 dev-tools 页面说明 |
| 新增迁移 SQL | ⚪ 不涉及 | 本次无新增迁移脚本 |
| DDL 基线 | ⚪ 不涉及 | 本次无 DDL 变更 |
| OpenAPI Spec | ⚪ 不涉及 | `api_changed: false` |
| 安全评估 | ✅ 低风险 | dev 端点仅 `WX_DEV_MODE=true` 注册，dev-fab 仅 develop 环境渲染 |

## 回滚方案

- 后端：删除 4 个 dev 端点和对应 Schema 即可
- 前端：删除 dev-fab 组件和 dev-tools 页面，从 app.json 移除注册，从各页面移除 `<dev-fab />`
