fix(summarize): 持久化增量蒸馏游标(#229) - #274
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: slow-stack/dsh-mneme/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (8)
Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthrough本次变更为蒸馏流程新增按会话持久化的游标。存储层提供游标读写和单调更新。服务层透传 API。摘要流程恢复并提交游标,同时补充失败审计和回滚测试。 Changes蒸馏游标持久化
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~30 minutes Change: Bug fix · Severity of issue fixed: Medium Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant 摘要流程
participant 服务层
participant 存储层
摘要流程->>服务层: 读取会话持久游标
服务层->>存储层: getDistillCursor(sessionId)
存储层-->>服务层: 返回 last_seq
服务层-->>摘要流程: 返回 previousSeq
摘要流程->>服务层: 提交窗口末尾 nextSeq
服务层->>存储层: setDistillCursor(sessionId, nextSeq)
存储层-->>服务层: 返回更新后的游标
Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk remains. The cursor persistence change can proceed with normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Anans-Ivresse
left a comment
There was a problem hiding this comment.
审阅通过,实现很稳 👍 游标与记忆写入同事务原子提交(恰一次语义)、旧库迁移幂等、与 summarizeMinWindowChars / summarizePeakHours 的游标消费语义完全兼容、并发下单调不倒退,lib 同步 ✓,全量 1251 测试通过。
非阻塞小建议(可后续优化):
- src/summarize.js:410
persistCursor在setDistillCursor缺失时硬抛错,建议降级为 warn + 内存态回退(理论场景:第三方宿主用旧版 service 构造时) - 每轮 turn/end 都先读库取游标,绕过了内存 map 缓存,可改内存优先(每事件少一次 PK 查询)
- 可补「峰值时段 / 最小窗口」与持久化游标的交叉用例
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Anans 复审留下的非阻塞建议第 1 条:第三方宿主用旧版 service 构造时, persistCursor 在方法缺失分支硬抛错,会把 slow-stack#274 之前能正常工作的宿主 变成每轮蒸馏即崩。降级为 warn + 内存游标(slow-stack#274 前语义,本进程不重蒸, 跨重启重放由 saveWithDedupe 三元组兜底);方法存在但抛错仍向上传播, 恰一次回滚语义不动(对应回滚测试用例保持原样)。 补回归测试:缺方法时蒸馏照跑、记忆落库、不持久化、进程内不重蒸。 Anans 建议第 2 条(内存优先读)经评估不改:memoryDir 允许双宿主共用, DB 优先是跨进程游标一致的依据,内存优先会复活跨进程重复蒸馏。
* chore: v0.8.6 发布准备(版本号 + 测试徽章 + CHANGELOG/路线图占位行) 请在 CHANGELOG 与两个 README 的占位行补描述后再合并。 * chore(release): v0.8.6 发布说明与路线图补齐 CHANGELOG 的 [Unreleased] 转为 v0.8.6 小节,并补上三份未登账的改动: 工具暴露开关与描述纪律(#276)、蒸馏游标持久化(#229/#274)与旧宿主降级路径 (#279)、能力说明第 5 条文案精确性(#277)、CI 与徽章口径收敛(#281/#273/#272)。 两个 README 的 v0.8.6 占位行补描述(版本历史 + 路线图),测试徽章与注释数按 badge:sync 对齐到 1275。 --------- Co-authored-by: modusensus <modusensus@users.noreply.github.com>
变更
distill_cursorsSQLite 表,按session.id持久化最近成功消费的事件序。src/与lib/。验证
npm test:1247 passednode scripts/check-sync.jsnode --checkgit diff --checkFixes #229
Summary by CodeRabbit