desktop/src-tauri/crates/core/tests/m8_contract.rs
第 1 条注释,第 1 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:1
//! M8 第二批 18 个适配器的合成测试,检查探测、扫描与各步骤断言。第 2 条注释,第 2 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:2
//! 初始调研日期 2026-09-29;这些测试不构成真实客户端验收。第 3 条注释,第 3 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:3
//! 当前各适配器的真实检查单独记录。期望值在各用例中手工核算。第 4 条注释,第 4 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:4
//!(空行)第 5 条注释,第 5 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:5
//! 合成测试数据的手工核算:第 6 条注释,第 6 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:6
//! - zed:历史 hosted cumulative{in=120,out=34} 缺失 cr/cc 按旧格式读取为 0,第 7 条注释,第 7 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:7
//! 120/34/0/0;request 桶和 161 vs cumulative 154 ⇒ mismatch(覆盖语义);第 8 条注释,第 8 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:8
//! 跳过本用例未核验的 Anthropic provider 与 imported(version 1.0.0)线程。第 9 条注释,第 9 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:9
//! - aider:{prompt=10006,completion=81,total=10087,cost=0.0133175} 秒→毫秒第 10 条注释,第 10 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:10
//! 时间戳 1_755_100_406_000;估算费用 13_318 micro-USD。第 11 条注释,第 11 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:11
//! - junie:modelUsage[2](input/output + cache 别名组)⇒ 2 事件;第 12 条注释,第 12 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:12
//! time=1500 ⇒ interval_start = ts−1500;重复扫描键稳定。第 13 条注释,第 13 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:13
//! - xum:byModel 两模型 ⇒ 2 聚合;键 provider:model 拆分。第 14 条注释,第 14 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:14
//! - droid:tokenUsage{in=10,out=20,cr=30,cc=40,think=5} ⇒ 1 聚合。第 15 条注释,第 15 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:15
//! - amp:1 条有时间戳的 ledger 事件入库;无 ledger 且无时间戳的 assistant第 16 条注释,第 16 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:16
//! usage 跳过(不推造时间)⇒ 诊断 + Reconciliation mismatch。第 17 条注释,第 17 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:17
//! - grok:2 行显式 usage(别名组),1 行无 usage 跳过 ⇒ 2 事件。第 18 条注释,第 18 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:18
//! - roo:旧测试映射 tokensIn=100 含 cr=30+cw=10,uncached=60、total=120;第 19 条注释,第 19 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:19
//! api_req_deleted 不计;condense cost-only 辅助事件。第 20 条注释,第 20 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:20
//! - goose:usage_ledger 3 行(provider_reported cost 入账、estimated 不入、第 21 条注释,第 21 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:21
//! carried_forward token 入账 cost 不入)⇒ 3 事件 1 cost;旧库 accumulated第 22 条注释,第 22 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:22
//! ⇒ 1 聚合。第 23 条注释,第 23 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:23
//! - crush:根会话 cost=0.5 ⇒ 1 条 UsageObservation(500_000 micro-USD第 24 条注释,第 24 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:24
//! Estimated);子会话行排除。第 25 条注释,第 25 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:25
//! - jcode:OpenAI input=100、cr=30、cw=10,未缓存输入=60;Anthropic in=60、第 26 条注释,第 26 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:26
//! cr=30 cw=10 ⇒ input_total=100;崩溃窗口同 id 取 journal 版。第 27 条注释,第 27 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:27
//! - gajae:五字段 {1,2,3,4,10} 按 pi 规则计算,totalTokens=10 与分量和一致;第 28 条注释,第 28 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:28
//! 缺少必需字段的行跳过。第 29 条注释,第 29 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:29
//! - commandcode:链上 2 条 assistant usage;孤儿分支 1 条不计。第 30 条注释,第 30 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:30
//! - continue:CLI usage ⇒ 1 聚合(prompt/completion/cached);第 31 条注释,第 31 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:31
//! GUI 会话(无 usage)0 产出。第 32 条注释,第 32 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:32
//! - atomcode:两模型聚合加独立未归属轮数,调用合计 5,未缓存输入=prompt−cached。第 33 条注释,第 33 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:33
//! - kiro:CLI 1 个非零 turn 入账、1 个全零 turn(Auto)跳过;第 34 条注释,第 34 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:34
//! sqlite request_metadata 1 事件(毫秒时间戳)。第 35 条注释,第 35 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:35
//! - antigravity:protobuf 行 #1+#2 input、#9.#4 时间戳 ⇒ 事件;无时间戳行第 36 条注释,第 36 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:36
//! 跳过。第 37 条注释,第 37 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:37
//! - qoder:探针 fail closed(诊断 usage_fields_unverified,0 事件)。第 38 条注释,第 98 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:98
// Zed 测试。第 39 条注释,第 128 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:128
// 跳过本测试未核验的 Anthropic provider;另有真实样本的 Provider 使用独立规则。第 40 条注释,第 140 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:140
// 分享导入(version 1.0.0):跳过。第 41 条注释,第 182 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:182
// Aider 测试。第 42 条注释,第 212 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:212
// 追加一行再扫:增量。第 43 条注释,第 231 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:231
// Junie 测试。第 44 条注释,第 271 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:271
// Xum 测试。第 45 条注释,第 320 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:320
// Droid 测试。第 46 条注释,第 352 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:352
// Amp 测试。第 47 条注释,第 388 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:388
// ledger 1 行入账;messageId=2 已对账不计;messageId=3 无 ledger 且无时间戳跳过。第 48 条注释,第 403 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:403
// Grok 测试。第 49 条注释,第 458 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:458
// Roo 测试。第 50 条注释,第 483 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:483
// 1 请求 + 1 condense 辅助;deleted 备忘不计。第 51 条注释,第 502 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:502
// Goose 测试。第 52 条注释,第 508 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:508
// 新库:usage_ledger。第 53 条注释,第 552 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:552
// 旧库无 usage_ledger,读取 accumulated_* 字段。第 54 条注释,第 590 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:590
// Crush 测试。第 55 条注释,第 616 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:616
// 子会话(cost 回卷父行):排除。第 56 条注释,第 623 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:623
// 零 cost 根会话:跳过。第 57 条注释,第 647 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:647
// Jcode 测试。第 58 条注释,第 689 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:689
// m1 取 journal 版(meta 覆盖为 anthropic:in=60 cr=30 cw=10 ⇒ total=100);第 59 条注释,第 690 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:690
// m2 的 Anthropic in=50、无 cache,input_total=50。第 60 条注释,第 718 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:718
// gajae-code 测试。第 61 条注释,第 745 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:745
// 必需五字段完整的一行入库;缺字段行跳过,与所引用解析器规则一致。第 62 条注释,第 759 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:759
// CommandCode 测试。第 63 条注释,第 786 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:786
// head=cccc0001 → aaaa0002 → aaaa0001:bbbb0001 是 rewind 孤儿不计。第 64 条注释,第 803 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:803
// Continue 测试。第 65 条注释,第 834 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:834
// GUI 会话(无 usage 字段):0 产出、正常完成。第 66 条注释,第 845 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:845
// AtomCode 测试。第 67 条注释,第 888 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:888
// 两模型各一聚合 + 多模型 turn 的 round_count 单列 unattributed第 68 条注释,第 889 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:889
// (t1 的 3 轮调用无法确认所属模型,不能对 claude/gpt 各计一次虚增合计)。第 69 条注释,第 896 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:896
// 60+30=90 未缓存 + 40+10=50 缓存 ⇒ input_total=140;第 70 条注释,第 897 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:897
// 仅单模型 turn t2 的 2 轮归属 claude。第 71 条注释,第 916 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:916
// 调用数总计守恒:2 + 3 = 5 = 3(t1) + 2(t2)。第 72 条注释,第 925 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:925
// Kiro 测试。第 73 条注释,第 956 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:956
// 跳过全零 Auto-agent turn,导入一个合成非零 turn。第 74 条注释,第 968 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:968
// kiro-cli SQLite:request_metadata 逐请求。第 75 条注释,第 1010 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:1010
// Antigravity 测试。第 76 条注释,第 1024 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:1024
// protobuf 测试结构:chatModel{#19 model bytes, #9{#4 Timestamp{#1 seconds}}} 加第 77 条注释,第 1025 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:1025
// 用量结构:usage{#1 1132, #2 100, #5 40, #9 20, #10 5, #11 "resp-1"}。第 78 条注释,第 1043 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:1043
// 行 2:无 #9.#4 时间戳(1.1.18+ 布局)⇒ 跳过。第 79 条注释,第 1107 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:1107
// Qoder 测试。第 80 条注释,第 1124 行
desktop/src-tauri/crates/core/tests/m8_contract.rs:1124
// ---- 结构约定:V30 注册表形状(M8 全目录)----