sessions: 添加多后端回放一致性测试框架#240
Conversation
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #240 +/- ##
==========================================
Coverage ? 87.86678%
==========================================
Files ? 482
Lines ? 45157
Branches ? 0
==========================================
Hits ? 39678
Misses ? 5479
Partials ? 0 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
AI Code Review我已完成审查。该 PR 是一个综合性、自验证的测试工具,对生产环境 API 的使用准确。让我来整理一下审查结论。 发现的问题🚨 Critical未发现 Critical 级别问题。
|
|
I have read the CLA Document and I hereby sign the CLA |
感谢 Review,已在 9aa9d1f 修复:
|
AI Code Review好的 —— 只涉及 现在让我仔细重新审查 等等 —— 这里有个细微的 bug。在 让我再检查一个真正的问题: 现在让我看看一个真正的正确性问题:在 让我检查 现在看看一个真正值得关注的问题 —— 让我验证最后一项 —— 但这里有一个微妙的问题:在 现在,关于 让我检查 现在让我检查最重要的真正 bug 候选: 让我验证 现在 —— 等等,关于 我现在已经有足够的信息了。让我写下审查报告。让我重新考虑模块级异步 fixture 问题的确定性,并确认 在 让我同时也检查一下 再检查一个真正的正确性项目: 让我验证 Redis 清理调用 现在让我最终确认 对于真实代理,工具响应包含 我很有把握了。让我写出审查报告。让我重新确认生成报告 JSON(提交的 现在,最后一个真正的问题:提交的 JSON 让我重新考虑是否存在 JSON 内容/结构漂移的风险,导致提交的报告与生成的报告不匹配。 我现在来写审查报告。考虑到这些全都是新文件,让我重新考虑 在 我确信没有严重(Critical)的缺陷了。让我定稿。让我重新考虑模块级 fixture 的问题是否应该提升为严重(Critical)。鉴于不确定性(取决于安装的 实际上,提交的报告显示运行成功( 让我写出最终审查报告。## 发现的问题 🚨 Critical(无)
|
AI Code Review我已经完成了静态审查。以下是我的审查结论。 发现的问题
|
AI Code Review确认 — SDK 会剥离临时状态。很好。测试有效。 我已经完成了全面审查。该 diff 质量很高,自洽性好,SDK API 调用也是正确的。我来整理最终结论,附上少量真正值得注意的问题。 发现的问题🚨 Critical未发现 Critical 级别问题。
|
AI Code Review现在让我检查一下在 但确实存在一个问题:当启用 redis 时, 现在让我验证一下是否存在实际的 Bug: 等等,确实存在一个细微的问题: 我已经进行了彻底的审查。这个测试工具结构良好。让我总结一下真正值得注意的问题。老实说,我没有发现任何 Critical(严重)问题。让我重新考虑一下是否真的存在 Warning(警告)级别的问题。 有一个确实值得注意的问题: 让我重新考虑一下真正的测试有效性问题:完整的重放一致性矩阵( 让我重新考虑一下 让我最后检查一下真正的边界情况问题 —— 在未设置 env 的情况下 我现在很有把握了。这个 PR 很稳健。让我写下总结。老实说,没有 Critical 问题,也许有 1-2 个小的 Suggestion(建议)或 Warning(警告)。让我重新考虑一下是否真的有任何实质性问题。 让我重新考虑一个真正的问题: 好了,我认为这个 PR 没有发现阻塞性问题。让我进行总结。老实说,这个测试工具非常全面,我没有发现明确的缺陷。根据说明,如果没有明确的问题,我应该直接说明没有发现阻塞性问题,而不是为了凑数而提出低价值的建议。 让我做一个最终的检查 —— 让我再核实一下真正潜在的问题: 我很有把握。让我写下最终的审查意见。我没有发现 Critical 或 Warning 级别的问题。根据说明,如果没有明确的问题,我应该直接说明,而不是提出低价值的建议。不过,让我重新考虑一下,是否确实存在值得提出的维护性建议。 实际上,确实有一个真正的小观察值得提出: 老实说,我会报告没有发现阻塞性问题,并带有一两个真正可维护性的建议。让我重新考虑一下什么才是真正有价值的。 一个真正合理的问题: 我就如实报告吧。没有 Critical 问题。我会包含一个关于已提交报告制品的真正可维护性建议。我已对 发现的问题未发现 Critical 或 Warning 级别的明确问题。新增的 replay harness( 💡 Suggestion
总结整体风险低,未发现必须修复或建议修复的明确缺陷;新增 replay 一致性测试框架逻辑自洽、与 SDK 上下文一致,CI 与依赖变更( 测试建议暂无额外测试建议。现有用例已覆盖核心风险路径:跨后端一致性、写恢复/重试幂等( |
AI Code Review发现的问题审查了 未发现明显阻塞问题。harness 的字段访问、归一化/比对逻辑、注入失败重放路径( 💡 Suggestion
总结整体风险低,不存在必须修复的安全或正确性问题;新增 replay 测试与 SDK 真实接口完全对齐,CI 轻量模式与全量矩阵职责清晰。 测试建议暂无额外测试建议。现有用例已覆盖一致性、持久化重开、注入异常检测、并发隔离与 Redis 可选集成等关键路径;若后续扩展 |
新增 Session、Memory 和 Summary 多后端回放一致性测试框架,使用十条标准
轨迹对比 InMemory 与 SQLite,并支持通过环境变量启用 Redis。框架覆盖对话、
工具调用、state、memory、summary、事件截断、重复写入和异常恢复。设置
TRPC_REPLAY_BACKENDS=in_memory 可仅运行完整十条 InMemory 轻量轨迹。
比较器仅归一化自动 ID、相对时间和序列化顺序。业务字段及 Summary 归属、
版本和覆盖关系严格比较;后端差异必须匹配精确 allowed_diff。报告可定位到
session、event 或 summary 及具体字段路径。
十一类注入异常全部检出,正常场景误报率为 0%,三类 Summary 问题检出率
均为 100%。默认测试结果为 55 passed、12 optional skipped,分支覆盖率
为 92.35%,YAPF 和 flake8 检查通过。补充同一 runner 重载状态隔离测试,
并断言 unknown-outcome 重试不会触发第二次 append_event。
使用 deepseek-v4-flash 完成真实 Tool Call 验证。正常 InMemory/SQLite
比较为零差异;Chinese 到 ChinesX 的工具结果漂移及 email 到 emaiX 的
记忆漂移均被精确检出。证据见
tests/sessions/real_agent_replay_validation_report.json。
Fixes #89
RELEASE NOTES: NONE