开发周报:2026-11-02 ~ 2026-11-08

Posted by songjian on November 09, 2026 · 1 min read

本周概览

本周精力几乎全压在 telefast 上,26 个提交、361 个文件,主线有两条:一是把榜单发布从人工操作变成 growth worker 的定时任务,二是给账号池补上可追溯的操作历史。零散时间顺手做了门户性能和工程规范方面的收尾。

榜单自动发布与 growth worker

这周最大的一块是新增了运营 worker,把每日榜单的发布接进调度器里。围绕它做了几件事:

  • 榜单维度按星期几自动轮换,避免每天推一样的内容;
  • 空榜单和重复日期不再重复发送,发之前先判空、判重;
  • 榜单消息的生成逻辑从 worker 下沉到 core 服务(refactor(core)),worker 只负责调度和发送;
  • 调度侧补了 test_schedule.py、test_publish.py、test_scheduler_growth.py 等测试;
  • Dockerfile 构建镜像时补上 growth 包的 pyproject,否则打包会缺依赖。

文档上先写了推广运营计划与 Phase 1 实施计划,落地后又补了一篇「榜单发布迁移到 growth worker」的记录,最后把旧的推广运营计划文档删掉,避免两份文档各说一套。

账号操作历史与账号池

账号这块之前是黑盒,谁改了什么查不到,这周从表结构开始补齐:新增账号操作历史事件表,并挂上 ORM 监听,让写入自动落历史。在此之上:

  • 后台加了账号操作历史的查询入口;
  • 账号运维脚本从裸 SQL 改成走 ORM 写入,顺带把历史记上;
  • 账号池的写入会标记来源为 worker,便于区分人工和自动;
  • 修了校验脚本重复记录状态变更的问题;
  • 新增账号 2FA 密码修改脚本,账号画像新增字段,同时修了批量导入时 2FA 解析的 bug。

设计文档和实施计划先行,代码跟上,这个顺序在这次改动里比较好用。

门户与部署

门户首页和目录列表换成了公开集合的部分索引(迁移 0026_portal_public_indexes),并补了并发建索引和 schema 索引的测试;频道详情页加了分享与复制链接,SEO 相关说明也整理进了文档。部署上,生产发布改为手动触发,Umami 迁到独立栈运行。

工程规范

集中做了一次工具链整理:配置 ruff 的格式化与 lint 规则,然后全仓跑了一遍 ruff format,清理未使用的导入和变量,新增 basedpyright 类型检查配置。OpenCode 的插件配置上移到全局,评审 agent 改成自包含,减少每个项目重复配置。

小结

本周真正成型的是 growth 这条自动化链路和账号操作的可追溯性,两者都从设计文档走到了可运行状态。另外花了不少时间在会话里讨论任务调度的设计优化,以及这个项目是否算中台、壁垒在哪、要不要往开源方向走——这些还停在讨论阶段,没有落到代码。工具链统一之后,后面写新模块的摩擦会小一些。


devlog