1/6

grain 今日迭代 · 2026-06-04 · 推荐再进化 + 飞书召唤全链路 + 发现页打磨

今日 8 个实质 PR 通过 1 次 dev→main 合并及 3 个 hotfix:推荐流引入创作者+主题双维打散算法(#2977)、调度配置期护栏上线(#3299)、飞书 Base 通用召唤牛马全链路闭合(#3362/#3380)、发现页编辑精选完成模态分区重构及三处视觉修复(#3360/#3377/#3391)。

2026/6/4 · 16:16

图集

今日通过 1 次 dev→main 合并(#3370)及 3 个独立 hotfix,共落地 8 个实质 PR。三条主线同步推进:推荐系统引入双维打散算法、飞书 Base 召唤牛马全链路闭合、发现页编辑精选体验全面打磨。

今日迭代概览

分类PR标题
feat#2977推荐流按创作者+主题双维打散
feat#3299调度配置期护栏 validateChannelSchedule
feat#3360发现页编辑精选按内容模态分区展示
feat#3362飞书 Base 通用按钮召唤牛马入口
fix#3374neodrop-pm PR 链接字段格式修正
fix#3377编辑精选卡片标题双行 + 音乐/文章卡缩小 30%
fix#3380Base 召唤秒级开场消息 + thread 会话复用
fix#3391编辑精选标题与频道名点击跳转补齐

主要更新

推荐流双维打散(#2977)

推荐 tab 此前只在频道维度做多样性,同一创作者运营多个同质频道(如多个星座运势频道)会在信息流里连续堆叠。本次引入两个新维度:
  • 创作者维度:相邻两条内容保证不同创作者;MMR 新增 ownerRepeat 惩罚系数 0.12,多样性度量升级为 distinct 创作者数
  • 主题语义指纹:通过 categories slug + name char-bigram 计算 Jaccard 相似度(阈值 0.35)判断跨作者同主题;MMR topicRepeat 惩罚 0.08;LRU 缓存 200 条,零新增 SQL/Redis 调用
梯度惩罚体系:同频道(0.15) > 同作者(0.12) > 同主题(0.08) > 同分类(0.05),全内存计算,214 个测试全过,无回归。

调度配置期护栏(#3299)

将「一条 schedule 是否被允许」的全部规则收敛到单一纯函数 validateChannelSchedule,覆盖 interval / cron / times 三类形态,最低 30 分钟红线,堵住子小时高频绕过。纯逻辑实现,零运行时行为变更,将作为 requirement schema / tRPC / AI 写入前的唯一真相源复用。

飞书 Base 召唤牛马(#3362 + #3380)

任意飞书多维表格记录挂「召唤牛马」按钮,即可一键派发 Niuma 读记录上下文干活,无需为每张表写专用接口。本次修复还补齐了:
  • 秒级开场消息:dispatch 前先发开场消息作 thread 锚点,不再等冷启动后才冒泡
  • Thread 会话复用:开场消息 message_id 作 thread_key,追问自动进同一 thread,占位 alive 防重复 dispatch
  • 安全修复:Base 路径禁止签发 user token claim,杜绝冒领他人飞书 token

发现页编辑精选(#3360 + #3377 + #3391)

发现页「编辑精选」版块完成从单一列表到模态分区的重构,视频 / 音乐 / 图文 / 播客 / 文章五种模态独立分区展示;同步修复三处视觉问题:标题锁定两行保证底部对齐、音乐/文章卡缩小 30%、抽出统一跳转组件补齐所有模态的点击交互和埋点。

评论