自动汇总 2026-10-03 当天
hummingg在 GitHub 上的提交。
hummingg/ai-coding
- chore(snooker): 完赛快速归档 quick_sync.py——launchd 每 10 分钟一班,只爬完赛球员的赛季页并走 snkImport?file=archive 增量 UPSERT,把「实时流完赛→正式归档」空窗从小时级压到 ~30 分钟;补跑同步对战数据;README 补完赛快速归档章节
- 方案:从 Edge snkLiveRecent 拿最近 36h 完赛场次,球员名对上 players.json 后只爬这些球员的 cuetracker 赛季页(复用 update_from_players.py 抓取/解析/合并,同源同 id 体系),新场次并进 data/*.json 后打包 POST 增量 UPSERT(按 id,不 TRUNCATE)。合并走自然键去重,与 refresh.sh 全量 TRUNCATE 重灌完全幂等。状态文件 .quicksync_state.json(slug 重试节流)加入 .gitignore。
- fix(billiards): 修复创建赛事漏写 group_config 致小组赛抽签报配置缺失
- createTournament 补回 group_config 字段写入 tournaments 表(此前发赛页传的小组数/出线人数被静默丢弃)。
- drawGroupBracket 将分组对阵与 group_standings 写入包进事务,修复此前裸 INSERT 序列中途失败会留下「有对阵无积分榜」脏数据(E2E 实测复现);并修正 group_standings 13 列对应 13 值的笔误。
- feat(snk): 订阅消息推送——关注云同步/授权采集/发送通道(含前端+文档)
- 新增 snkFollowSync/snkPushAccept/snkPushSend 与 SNK_PUSH_KEYS 四类事件(start/result/break/decider),snkPushSend 入 PUBLIC_ACTIONS(key 鉴权同 snkImport 模式),handlers 注册三 action。
- 关注云同步(snkFollowSync)将本地关注列表全量替换为服务端副本,供推送匹配;snkPushAccept 上报授权配额,snkPushSend 经微信订阅消息接口下发(每日频控 + 配额原子扣减 + dedup 幂等)。
- 前端配套一并纳入:utils/push.js(新增订阅授权/发送封装)、pages/snooker/follow.{js,wxml,wxss}(关注页订阅 UI/交互)、utils/follow-store.js(syncRemote 关注云同步)、docs/plans/subscribe-push.md(方案文档)。前后端同一逻辑单元。
- chore: 停止跟踪 snooker 抓取状态缓存并加入忽略
- snooker/.orgfetch_state.json 为后台抓取任务的运行时游标缓存,每次跑完都会变、无源码价值,此前误纳入跟踪导致 git status 长期脏。\n\ngit rm –cached 仅移出索引、保留磁盘文件;并加入 .gitignore(含 *_state.json 通配),此后不再污染状态。
- chore: 忽略 .zcode/ 工作区元数据
- zcode 等 IDE 插件产生的工作区元数据不入库,避免污染提交。
- feat(billiards): WST 实时比分端到端接入——snk_live 快照表+snkLiveWst/snkLiveWstFrames/snkLiveRecent 接口;比分tab双源合并(按库内pid去重、WST优先);snkRecent 终局兜底行(frames?wst= 直连);snkImport 增量 archive 模式;tools/wst-live 抓取器(60s UPSERT/终局补抓/照片同步256/304);补架构方案与 wst-live 文档
- snooker.org 实时流逐局常为空(?t=6 对部分赛事不返回 FrameScores),改接 WST 官方公开接口补足逐局比分:fetch.py 每 60s UPSERT 进 snk_live(一比赛一行;Suspended 视为进行中防误杀;完赛走 status:eq:Completed 补真实终局,签名去重只在有变化时补写)。
- 完赛可点两级保障:归档前由 snkRecent 把已完赛未归档场次兜底进最近比赛(带 wst_id),归档后兜底行自动隐藏、导航切回真实 match_id,约 30 分钟内由正式归档接管;snkImport 新增 file=archive 增量 UPSERT(按 id 不 TRUNCATE),与全量导入幂等共存。
- 前端双源按库内 pid1/pid2 去重(名字对不上:snooker.org 中文/WST 英文),WST 优先、snooker.org 只补未覆盖场次。另含 docs/snooker-data-architecture.md、docs/wst-live.md、docs/plans/ 规划文档与 tests/_assert.js 公共断言;.gitignore 增加 supabase/functions/.env* 防密钥入库。
- feat(snk): 三源存储改造收尾——兼容视图/跨源对齐/巡检
- 将 snk_players 等旧表名割接为 snk_ct_* 底层兼容视图(snkEnsureViews),新增 snk_wst_*/snk_ct_*/snk_map_*/snk_so_* 三源命名空间表并由 ensureSchema 自动建表;snkImport 改为写 snk_ct_* 并保留 snk_147s 派生视图;snkRecent/snkLive/snkLiveWst/snkLiveRecent/snkLiveWstFrames 全部改用三源表。
- 补跨源对齐辅助(snkResolveWstPlayers/snkWstCnMap/snkTournamentCnFor)与对齐覆盖率巡检(snkAlignReport,已注册到 handlers/PUBLIC_ACTIONS)。
- 注:以上为三源改造中已上生产、本次补提交的部分,代码经生产验证。