本周精力几乎全压在 telefast 上,26 个提交、361 个文件,主线有两条:一是把榜单发布从人工操作变成 growth worker 的定时任务,二是给账号池补上可追溯的操作历史。零散时间顺手做了门户性能和工程规范方面的收尾。
这周最大的一块是新增了运营 worker,把每日榜单的发布接进调度器里。围绕它做了几件事:
refactor(core)),worker 只负责调度和发送;test_schedule.py、test_publish.py、test_scheduler_growth.py 等测试;pyproject,否则打包会缺依赖。文档上先写了推广运营计划与 Phase 1 实施计划,落地后又补了一篇「榜单发布迁移到 growth worker」的记录,最后把旧的推广运营计划文档删掉,避免两份文档各说一套。
账号这块之前是黑盒,谁改了什么查不到,这周从表结构开始补齐:新增账号操作历史事件表,并挂上 ORM 监听,让写入自动落历史。在此之上:
设计文档和实施计划先行,代码跟上,这个顺序在这次改动里比较好用。
门户首页和目录列表换成了公开集合的部分索引(迁移 0026_portal_public_indexes),并补了并发建索引和 schema 索引的测试;频道详情页加了分享与复制链接,SEO 相关说明也整理进了文档。部署上,生产发布改为手动触发,Umami 迁到独立栈运行。
集中做了一次工具链整理:配置 ruff 的格式化与 lint 规则,然后全仓跑了一遍 ruff format,清理未使用的导入和变量,新增 basedpyright 类型检查配置。OpenCode 的插件配置上移到全局,评审 agent 改成自包含,减少每个项目重复配置。
本周真正成型的是 growth 这条自动化链路和账号操作的可追溯性,两者都从设计文档走到了可运行状态。另外花了不少时间在会话里讨论任务调度的设计优化,以及这个项目是否算中台、壁垒在哪、要不要往开源方向走——这些还停在讨论阶段,没有落到代码。工具链统一之后,后面写新模块的摩擦会小一些。