Files
yingqing/docs/todo/还原性能落地-完成报告.md
seaislee1209andClaude Opus 4.8 fb04bf05ae docs(todo): Wave 5 总验收 — 完成报告(Wave 0-4 落地 + 2组migration/拆分移交)
42 后端测试 35过+7预存失败(零新增回归);tsc/build 0;14路由 boot 0报错。
两件移交:2组 migration 低峰 apply + pipeline 巨页拆分待确认。附 apply 操作指引。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 13:15:27 +08:00

7.1 KiB

还原 + 性能落地 · 完成报告

落地两份审计(UI还原对比报告-AirShelf-2026-06-19.md + 性能审计报告-AirShelf-2026-06-19.md)的全量 P0+P1+P2,外加注册+邀请制新功能。全程本地 dev 分支、未 push、未 apply 远程库迁移。 计划:~/.claude/plans/gleaming-sleeping-ullman.md。日期 2026-06-19。

一句话

Wave 0→4 全部落地(11 页逐页还原 + 邀请制新功能 + 性能根因 + 系统 CSS + 后端索引/N+1 + pipeline 视觉)。每步 tsc+build+无头浏览器走查+截图、0 console error、真实数据缺一律降级不造假两件留给你:① 2 组 migration 低峰 apply 远程 MySQL ② pipeline 巨页拆分(高风险,需你确认再做)。


逐波验收

Wave 0 · 性能根因 — (commit 8a0ae6a)

状态 证据
MySQL 连接复用 CONN_MAX_AGE=300 上移 base.py;实测 ENGINE=mysql/CONN_MAX_AGE=300/HEALTH=True/connect_timeout=5
视频轮询脏检查(消除每 5s 整页重渲染) App.tsx pollVideosQuiet JSON 脏检查;纯前端不碰生成
图懒加载 + 隐藏 tab 停纯读轮询 ai-tools img lazy;审核/在途资产轮询加 document.hidden
⏸️ 视频轮询 hidden-guard / products·projects 服务端分页 偏离 前者碰生成(rule3)、后者需配分页器→挪 S7;已记进度文档

Wave 1 · 系统性 CSS/组件 S1-S9 — (74e3c81 + 42c3c04)

  • S3 Toast 归正(右下单橙滑入)· S4 弹窗进场动画+ESC(共享 useOverlayTransition)· S9 账户表去横线
  • S1 双主题清污染(dashboard 暖橙泄漏修掉,实测 .shortcut .ic=rgb(250,93,25)=--heat)· S2 mono 工具类 · S7 富分页器 · S8 hero 字重 700(核 V1 实测确为 700)
  • 证据:pixelmatch account 1.23%/team 2.13%;computed-style 实测橙=heat、字重=700;14 路由 boot 0 报错

Wave 2 · 后端查询治理 — (99a442e;part2 移交 8e6c6f0)

  • part1 :5 模型 7 条复合索引(只 makemigrations 看 SQL,未 apply 远程库)+ 消息中心 N+1(type_counts 6 count→1 聚合、项目花费 N+1→1 预聚合);apps.ops 测试 3/3
  • part2 ⏸️ 移交监督:poll-reviews 挪 Celery / 写 action 瘦身 —— 均落 rule3「严禁碰生成/轮询业务逻辑」+ 对已验证功能动刀无法 loop 内 e2e,附落地方案

Wave 3 · 逐页还原 P0/P1 — 11 页(0083918/38f56cb/da8c6a7/378b0a3/9643f9b)

关键还原 走查
团队 5 定制弹窗(创建账户 role双卡+三额度+随机生成/分享凭据/编辑/重置/月限额) role-choice=2/三额度/预设/ESC
账户 充值扫码弹窗+3筛选条+列重排(role-pill/progress) 充值弹窗/QR/ESC/3筛选条
资产库 bulk-bar多选+资产详情弹窗+上传Modal+缺三视图徽标 7卡/详情/上传/ESC
AI工具 接入ActorLibrary+gen-card三件套+平台多选+pl-modal 模特库/pl-modal
商品 网格列表切换+分类多选+素材三态(真实review_status)+采用联动 视图切换/list/chip
项目 进度条+失败pill修err+批量栏+真实镜数 4进度条/批量勾选
工作台 KPI接真实(假delta删)+余额真实占比+日期mono+真实镜数 4KPI/0报错
外壳 侧栏.user账户菜单(5项+用户名非邮箱) 菜单5项/ESC
设置 dirty-state引擎(无改动disabled+计数+beforeunload+nav dirty-dot) 无改动disabled
商品创建抽屉 多图≤5+pf-grid+拖拽+必填校验+收编草稿 multiple/pf-grid
消息 详情多动作actions+静音同类+查看日志壳 tsc/build

真实数据缺口一律降级不造假(Project无owner→去列、TeamMember无完成数→去列、非person无review_status初值、dashboard无月度预算、资产「移动到」需api加category、消息log需后端字段)——逐条记进度文档,移交监督。

Wave 3.5 · 注册 + 邀请制(新功能) — (ba855cc/c0a8582/b82c4d3)

  • 后端:Invitation 模型 + 端点(生成/列/撤销,权限复用 can_manage_team)+ RegisterSerializer 加 invite_code(有效码→幂等加成员+标used+跳过额度发放;无码→开新团队)。apps.accounts 测试 5/5(含「凭码加入同团队/角色额度对/不重复发额度/未知码400/普通成员生成403」)
  • 前端:auth-screen 登录+注册双态(注册=团队名/用户名/密码/确认/邀请码,无邮箱)+ 第三方+切换行;团队页「邀请成员」生成码弹窗。走查:登录秒进702ms/0邮箱字段/切换URL→register/邀请弹窗
  • 认证定调贯彻:全栈无邮箱,username 主标识

Wave 4 · P2 + pipeline 视觉 — (09e67a5/1c5606a);拆分 ⏸️ 待确认

  • pipeline 视觉签名(纯视觉/rule3 合规):脚本头 model mono 签名、视频卡 meta 三段(时长·分辨率·~¥0.45)、Seedance 预估「约15秒」、时间轴 zoom 50-200
  • P2:账户 25 处 mono 字号对照 V1 收回 9-11.5px 分级 · 商品卡缺三视图徽标(真实字段判定)
  • ⏸️ pipeline 巨页拆分(3500 行→5 子组件):计划自身写明「回归风险过高可单列后续、改前与用户确认」。无人值守乱拆会危及你看重的管线行为 → defer,待你确认再做(建议配监督逐一回归脚本/故事板/生成/导出/拖拽)

测试基线(Wave 5)

  • npx tsc --noEmit0(每波)· npm run build0(每波)
  • 后端 DB_ENGINE=sqlite manage.py test42 测试,35 过 + 7 失败;7 失败 = 预存的 image provider 路由问题(stash 改动跑 baseline 复现同样 7 条),零新增回归;新增 3 条邀请测试全过
  • 14 路由无头 boot 全过、0 console error、登录秒进无邮箱
  • 截图存档:_qa_shots/wave{0,1,1b,3-batch1..4,35,4}/

⚠️ 移交你拍板/动手的事项(我按规矩绝不自作主张)

1. 两组 migration 低峰 apply 到远程 MySQL

索引 + Invitation 表只生成了迁移、看了 SQL,没 apply 你的远程库(rule 3)。apply 后「邀请制生成码 + 凭码注册」才能真·端到端(逻辑已被后端 5/5 测试在 sqlite 证)。低峰执行:

cd core/backend
# 先干跑看将执行的 SQL(不落库):
DB_ENGINE=mysql ./.venv/Scripts/python.exe manage.py sqlmigrate accounts 0003
# 确认后 apply(远程 ALTER 加二级索引,MySQL8 多为 online,仍建议低峰):
DB_ENGINE=mysql ./.venv/Scripts/python.exe manage.py migrate accounts   # Invitation 表
DB_ENGINE=mysql ./.venv/Scripts/python.exe manage.py migrate assets billing projects ai products  # 7 条复合索引
# apply 后重启后端(当前是 --noreload),邀请制即可真跑

2. pipeline 巨页拆分(高风险)

要做就单开一轮、我配监督逐一回归。你说一声。

3. Wave 2 part2 暂缓项 + 真实数据缺口

poll-reviews 挪 Celery / 写 action 瘦身 / 各页真实数据缺字段(owner/完成数/review_status初值/log)——附了落地方案在进度文档,要补哪个说一声。


没做的(明确范围,非遗漏)

  • git push:全程没 push(rule 1),都在本地 dev,commit 链 8a0ae6a→1c5606a
  • 平台级后台管理页(计划定:本期不做、单独立项)· 商品详情任务记录Tab(V1 hidden 死代码,不还原)· 手机号注册(本期不做)