走查发现 pages/coach-detail 在某种入口下 data.coachId 为 undefined /
空字符串,导致后端 /api/xcx/coaches/undefined 请求 422,体现为助教
详情页加载失败。后端日志多次出现该 422 记录。
变更:
- apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.ts:247
onLoad 加 guard(参考 coach-service-records.ts 同款模式):
- 检查 options.id 非空 + 非字面 'undefined'
- 数字格式校验 (^\d+$)
- 失败时 wx.showToast("缺少助教标识") + 1s 后 navigateBack
(失败时 fallback switchTab board-finance)
双口径验证(weixin-devtools-mcp):
- 缺参入口 /pages/coach-detail/coach-detail(无 query) → guard 触发,
toast 显示 + 退回 board-finance,不再发出 422 请求
- 正常入口 ?id=3148987180059141 → 通过 guard,pageState=normal 加载成功
§3.3 标"sandbox 无关",4b 跳过(权限/参数路径与 sandbox 无关联)。
审计:docs/audit/changes/2026-05-05__wave1_f1_5b_mp4_coach_detail_id_guard.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
apps/
作用说明
应用项目顶层目录,存放所有可独立部署/运行的子项目。当前包含 ETL Connector、FastAPI 后端、微信小程序前端,以及预留的管理后台。
内部结构
etl/pipelines/feiqiu/— 飞球 Connector(数据源连接器,抽取→清洗→汇总全流程)backend/— FastAPI 后端(小程序 API、权限、审批)miniprogram/— 微信小程序前端(Donut + TDesign)admin-web/— 管理后台(预留,暂未实施)mcp-server/— MCP Server(为百炼 AI 应用提供 PostgreSQL 只读查询)
Roadmap
- 新增更多 Connector 时,在
etl/pipelines/下按平台名创建子目录 admin-web/待产品需求确认后启动