Commit Graph
5 Commits
Author SHA1 Message Date
yml2213 26066858b6 docs: 记一个部署坑 —— 重建镜像后 up -d 不一定换容器
2026-10-18 部署礼包修复时实际踩到:`docker compose build` 出了新镜像
(ID 变了),`docker compose up -d douyu-login` 只打了句 Started,
容器仍是上一版(ps 显示 Up 11 hours,容器里搜不到新函数),差点把
「没生效」报成「部署成功」。

- AGENTS 坑 #10:重建过镜像就 `up -d --force-recreate <服务名>`
  (必须带服务名,不带会把 mysql 一起重建),部署后核对镜像 ID 或 grep 容器内新代码。
- 部署清单同步改命令(顺带给 `docker compose run` 补上 -T 与 </dev/null,
  同 AGENTS 坑 #5)。
2026-10-18 11:02:09 +08:00
yml2213 c441b6c663 feat(huya): 批量查询拆成「查积分」与「查兑换记录」两个按钮
前端工具栏原来一个按钮同时查两件事,拆开后每次只查一半,所以重点在
「没查的那一半不能被当成没查到」:

- 接口加 scope(both / score / records),默认 both 保持原行为;
  只查积分时不产生判定(空串「未判定」,与 unknown「无法判定」分开),
  也**不会**自动改业务状态(连判定都没有,凭什么改)。
- 列表的积分与判定各取「最近一条查到过它的」快照:点「查积分」不再把
  整页判定徽标冲成未判定,点「查兑换记录」也不再清空积分;但新的
  unknown 仍会盖掉旧的 success(抖动结果不许藏)。
- 结果弹窗 / 积分列 Tooltip / 生命周期时间线都按 scope 显示,
  不再把「本次没查」显示成「积分 -」「兑换记录 0 条」。
- 新增 12 例测试(TestCollabActivityScopeSplit),并做了 4 次反向验证
  (去掉判定分支 / 判定跟随最新 / 积分跟随最新 / 删掉响应字段),全部确认变红。

顺带修掉文档漂移:AGENTS.md 的迁移 head 早就过期(main 实际
20261016_0059、dev 20261008_0053),并补上「两侧已分叉成两个 head、
合并 dev 前必须先 alembic merge」这条;设计文档补 §11.9。
2026-10-17 23:32:51 +08:00
yml2213 5405d4b1d1 fix(overview): 纠正高价值套装以商城 status==1 为最高准入裁判
- 根因:斗鱼官方商城接口 status==1 代表「已达兑换上限」,历史代码误以为商品列表全为全局字段而单纯依赖常被官方清空的 exchange_records,导致已兑换账号被误判为可兑换
- 修复:extract_high_value_goods 结合商城完整列表 status==1 现场判定已兑换,exchange_records 作为历史展示与兜底
- 前端:优化工作台与一键查询展示,明确展示「已达上限 N 个: ...」与「未达上限」,消除反向歧义
- 文档:沉淀坑 #9 到 AGENTS.md,并更正设计-账号一键查询.md
2026-10-07 14:51:51 +08:00
yml2213 05b2bf8579 docs(agents): 修正分支约定,补上这轮实践买的教训
- **删掉已作废的约定**「推完 main 再 `dev merge --ff-only main`」:
  dev 现在与 main 已分叉(上面有未上线的账号自动分配功能),ff-only 必然失败。
  改为:`main` = 已发布,新功能从 main 开 `feat/*`;要同步 dev 只能真合并且需显式确认。
- 新增一批实证教训:提交/推送的钩子要求(`pre-commit` 查的是 `ruff format`,
  只跑 `ruff check` 会被拦)、测试库 `create_all` 不会 ALTER 已有表(症状
  `Unknown column`)、`dev.sh` 会自动应用迁移导致切分支后应用起不来、
  生产部署的完整流程与三项前置检查。
- 坑速查 4 → 8 条:新增 `pgrep -f` 自匹配白等、`set -e` + 管道过滤半途静默中止
  (曾让镜像库变空)、`ruff check` ≠ 能提交;并补上 REPEATABLE READ 的具体应对。
- 据实补全本地库清单:先 grep 全仓库确认无引用,再查内容,确认
  `douyu_login_prodclone` / `douyu_login_rehearsal` 是 S1–S7 演练留下的快照。
- 原有教训一条未删,整体按「干活顺序」重排(60 → 116 行)。
2026-10-07 13:20:33 +08:00
yml2213 93d972d3fb chore(memory): 协作约定 AGENTS.md
把用户明确表达过的偏好固化下来,避免每次重新摸索:
- **不要改一点就提交推送**,攒够一批或到里程碑再提交
- 新功能是「增加」不是「替换」,旧路径完整保留
- 不要重复展示同一份数据(库里有的字段让已有界面显示,查询去刷新它)
- 单项外部调用失败不整体失败,但要如实暴露
- 如实报告(含自己的错误与局限);结论要有验证,关键用例做反向验证

以及这个仓库踩过的坑:
- 别拿不同时刻的快照对比(曾把时间差异当成账号差异,得出错误规则)
- Pydantic 静默丢字段的三种变体(含手写 @model_serializer)→ 断言要看 model_dump()
- 用例可能假绿(缺 session.commit,MySQL REPEATABLE READ)
- 区间删除容易连带删行;docker compose run 会吞 stdin

另附仓库事实:分支/生产/镜像库/测试库/迁移编号/前端 tsc 严格项。
2026-10-04 20:03:25 +08:00