跳转到内容

desktop/src-tauri/crates/core/src/ingest.rs

第 1 条注释,第 1 行

desktop/src-tauri/crates/core/src/ingest.rs:1

//! ingest 批次:事件 upsert + 游标 + 解析上下文 + 受影响日汇总在同一事务提交。

第 2 条注释,第 2 行

desktop/src-tauri/crates/core/src/ingest.rs:2

//! 中断前未提交的批次可重放;重放幂等(事件按键 upsert、日汇总按日分区重算)。

第 3 条注释,第 17 行

desktop/src-tauri/crates/core/src/ingest.rs:17

/// usage_events 中已存在记录的去重判定视图。

第 4 条注释,第 28 行

desktop/src-tauri/crates/core/src/ingest.rs:28

/// 游标与版本化解析上下文更新(模型状态、累计基线、未完成请求)。

第 5 条注释,第 37 行

desktop/src-tauri/crates/core/src/ingest.rs:37

/// 批次内诊断(脱敏:字段名/错误码/位置,不复制原始行内容)。

第 6 条注释,第 47 行

desktop/src-tauri/crates/core/src/ingest.rs:47

/// 单个 ingest 批次,其事件均属于同一来源实例。

第 7 条注释,第 51 行

desktop/src-tauri/crates/core/src/ingest.rs:51

/// 本批次来源实例。

第 8 条注释,第 53 行

desktop/src-tauri/crates/core/src/ingest.rs:53

/// 分桶用固定 IANA 时区(保存后不随系统变化)。

第 9 条注释,第 59 行

desktop/src-tauri/crates/core/src/ingest.rs:59

/// 关联的运行中作业:批次统计与其同事务提交。

第 10 条注释,第 61 行

desktop/src-tauri/crates/core/src/ingest.rs:61

/// 保留截止(UTC 毫秒):更早的事件被跳过并记诊断,不允许复活已清理明细。

第 11 条注释,第 65 行

desktop/src-tauri/crates/core/src/ingest.rs:65

/// 故障注入点(V09)。在任何定义点失败都必须整体回滚,重放结果相同。

第 12 条注释,第 98 行

desktop/src-tauri/crates/core/src/ingest.rs:98

/// 本次重算影响的本地日(YYYY-MM-DD)。

第 13 条注释,第 109 行

desktop/src-tauri/crates/core/src/ingest.rs:109

/// 提交批次:单一事务。fault 为测试钩子,注入后整体回滚。

第 14 条注释,第 129 行

desktop/src-tauri/crates/core/src/ingest.rs:129

// schema < 3(测试钩子冻结的旧库)没有 parse_basis 列:按旧 schema 降级写入,

第 15 条注释,第 130 行

desktop/src-tauri/crates/core/src/ingest.rs:130

// 新字段不持久化(等价历史行为)。正常运行总是先迁移到 SCHEMA_VERSION。

第 16 条注释,第 184 行

desktop/src-tauri/crates/core/src/ingest.rs:184

// 1. 事件 upsert。

第 17 条注释,第 243 行

desktop/src-tauri/crates/core/src/ingest.rs:243

// v1 的内容摘要包含 observed_at;仅观察时间改变仍视为同一内容。

第 18 条注释,第 244 行

desktop/src-tauri/crates/core/src/ingest.rs:244

// 同键同内容的重复 final(仅发生/观察/源时间文本不同)是重报而非冲突,同样视为同一内容。

第 19 条注释,第 271 行

desktop/src-tauri/crates/core/src/ingest.rs:271

// 完整旧摘要只允许解析器依据变化;保留原时间、用量和源修订。

第 20 条注释,第 272 行

desktop/src-tauri/crates/core/src/ingest.rs:272

// 同批次已观测的实际冲突不能被后续的元数据更新清除。

第 21 条注释,第 318 行

desktop/src-tauri/crates/core/src/ingest.rs:318

// 明确的来源修正规则比较完整旧摘要,

第 22 条注释,第 319 行

desktop/src-tauri/crates/core/src/ingest.rs:319

// 修正已核对字段时保留首次观察、真实冲突标记

第 23 条注释,第 320 行

desktop/src-tauri/crates/core/src/ingest.rs:320

// 和全部变更历史。

第 24 条注释,第 386 行

desktop/src-tauri/crates/core/src/ingest.rs:386

// 不任意择大:保留现存,标 conflict 并记诊断;所在日重算以反映冲突计数。

第 25 条注释,第 408 行

desktop/src-tauri/crates/core/src/ingest.rs:408

// 数学矛盾进入受限诊断(不用 max(0,…) 隐藏)。

第 26 条注释,第 427 行

desktop/src-tauri/crates/core/src/ingest.rs:427

// 2. 游标与解析上下文(同事务;分两段以便故障点语义清晰)。

第 27 条注释,第 463 行

desktop/src-tauri/crates/core/src/ingest.rs:463

// 3. 有受影响日期时递增数据修订号;重算的日汇总携带该修订号。

第 28 条注释,第 472 行

desktop/src-tauri/crates/core/src/ingest.rs:472

// 4. 受影响日按(时区, 日)分区重算;封存日不追加。小时分桶同事务持久化

第 29 条注释,第 473 行

desktop/src-tauri/crates/core/src/ingest.rs:473

// (分级归档:明细删除后小时层仍有数据)。

第 30 条注释,第 482 行

desktop/src-tauri/crates/core/src/ingest.rs:482

// 5. 诊断(脱敏)。

第 31 条注释,第 492 行

desktop/src-tauri/crates/core/src/ingest.rs:492

// 6. 作业进度同事务提交。

第 32 条注释,第 512 行

desktop/src-tauri/crates/core/src/ingest.rs:512

/// 比较完整旧事件摘要,不把解析器更名当作源修订或允许其他字段变化。

第 33 条注释,第 520 行

desktop/src-tauri/crates/core/src/ingest.rs:520

// 同键重复 final 的时间兼容与普通冲突处理一致;元数据更新仍保留原时间。

第 34 条注释,第 537 行

desktop/src-tauri/crates/core/src/ingest.rs:537

/// 仅为已核对的原生写入器重建完整 doc1 事件。

第 35 条注释,第 538 行

desktop/src-tauri/crates/core/src/ingest.rs:538

/// 所有正数计数、标识和归属仍须与旧摘要一致。

第 36 条注释,第 588 行

desktop/src-tauri/crates/core/src/ingest.rs:588

/// 仅已核对的 gajae v5/OpenAI-completions 规则允许这些 v2

第 37 条注释,第 589 行

desktop/src-tauri/crates/core/src/ingest.rs:589

/// 未知字段和开始时间依据;重建每个旧字段后再比较

第 38 条注释,第 590 行

desktop/src-tauri/crates/core/src/ingest.rs:590

/// 完整规范化或历史哈希,其他内容变化仍按常规规则处理。

第 39 条注释,第 678 行

desktop/src-tauri/crates/core/src/ingest.rs:678

/// Junie 原生非缓存输入及默认零修正最多比较 128 个候选。

第 40 条注释,第 679 行

desktop/src-tauri/crates/core/src/ingest.rs:679

/// 候选仅恢复旧解析器中缺失或默认零的字段;

第 41 条注释,第 680 行

desktop/src-tauri/crates/core/src/ingest.rs:680

/// 其他字段须与完整规范化或历史摘要一致。

第 42 条注释,第 761 行

desktop/src-tauri/crates/core/src/ingest.rs:761

/// MiMo 必填原始计数和客户端价格默认为零,仅恢复这些

第 43 条注释,第 762 行

desktop/src-tauri/crates/core/src/ingest.rs:762

/// 缺失或默认字段及旧派生值;完整旧摘要仍须保留

第 44 条注释,第 763 行

desktop/src-tauri/crates/core/src/ingest.rs:763

/// 标识、所有正数、质量和归属。

第 45 条注释,第 797 行

desktop/src-tauri/crates/core/src/ingest.rs:797

// 旧解析器要求五个原始计数;重建其完整

第 46 条注释,第 798 行

desktop/src-tauri/crates/core/src/ingest.rs:798

// 摘要,不能仅凭未变化的 part ID 允许修正。

第 47 条注释,第 1103 行

desktop/src-tauri/crates/core/src/ingest.rs:1103

/// 与 INSERT/UPDATE 共用的参数顺序;?41 为 conflict(仅 INSERT 使用字面 0,占位一致),

第 48 条注释,第 1104 行

desktop/src-tauri/crates/core/src/ingest.rs:1104

/// ?48 created_at_ms 仅 INSERT 有意义(UPDATE 不引用)。

第 49 条注释,第 1126 行

desktop/src-tauri/crates/core/src/ingest.rs:1126

// 参数 1:event_id

第 50 条注释,第 1127 行

desktop/src-tauri/crates/core/src/ingest.rs:1127

// 参数 2:source_instance_id

第 51 条注释,第 1128 行

desktop/src-tauri/crates/core/src/ingest.rs:1128

// 参数 3:source_record_key

第 52 条注释,第 1129 行

desktop/src-tauri/crates/core/src/ingest.rs:1129

// 参数 4:record_kind

第 53 条注释,第 1130 行

desktop/src-tauri/crates/core/src/ingest.rs:1130

// 参数 5:schema_version

第 54 条注释,第 1131 行

desktop/src-tauri/crates/core/src/ingest.rs:1131

// 参数 6:parser_version

第 55 条注释,第 1132 行

desktop/src-tauri/crates/core/src/ingest.rs:1132

// 参数 7:origin_call_id

第 56 条注释,第 1133 行

desktop/src-tauri/crates/core/src/ingest.rs:1133

// 参数 8:attempt_id

第 57 条注释,第 1134 行

desktop/src-tauri/crates/core/src/ingest.rs:1134

// 参数 9:session_id

第 58 条注释,第 1135 行

desktop/src-tauri/crates/core/src/ingest.rs:1135

// 参数 10:parent_session_id

第 59 条注释,第 1136 行

desktop/src-tauri/crates/core/src/ingest.rs:1136

// 参数 11:host_application

第 60 条注释,第 1137 行

desktop/src-tauri/crates/core/src/ingest.rs:1137

// 参数 12:agent

第 61 条注释,第 1138 行

desktop/src-tauri/crates/core/src/ingest.rs:1138

// 参数 13:call_category

第 62 条注释,第 1139 行

desktop/src-tauri/crates/core/src/ingest.rs:1139

// 参数 14:occurred_at_ms

第 63 条注释,第 1140 行

desktop/src-tauri/crates/core/src/ingest.rs:1140

// 参数 15:observed_at_ms

第 64 条注释,第 1141 行

desktop/src-tauri/crates/core/src/ingest.rs:1141

// 参数 16:source_time

第 65 条注释,第 1142 行

desktop/src-tauri/crates/core/src/ingest.rs:1142

// 参数 17:time_basis

第 66 条注释,第 1143 行

desktop/src-tauri/crates/core/src/ingest.rs:1143

// 参数 18:interval_start_ms

第 67 条注释,第 1144 行

desktop/src-tauri/crates/core/src/ingest.rs:1144

// 参数 19:interval_end_ms

第 68 条注释,第 1145 行

desktop/src-tauri/crates/core/src/ingest.rs:1145

// 参数 20:provider_id

第 69 条注释,第 1146 行

desktop/src-tauri/crates/core/src/ingest.rs:1146

// 参数 21:model_raw

第 70 条注释,第 1147 行

desktop/src-tauri/crates/core/src/ingest.rs:1147

// 参数 22:model_canonical

第 71 条注释,第 1148 行

desktop/src-tauri/crates/core/src/ingest.rs:1148

// 参数 23:model_attribution

第 72 条注释,第 1149 行

desktop/src-tauri/crates/core/src/ingest.rs:1149

// 参数 24:input_uncached

第 73 条注释,第 1150 行

desktop/src-tauri/crates/core/src/ingest.rs:1150

// 参数 25:input_cache_read

第 74 条注释,第 1151 行

desktop/src-tauri/crates/core/src/ingest.rs:1151

// 参数 26:input_cache_write

第 75 条注释,第 1152 行

desktop/src-tauri/crates/core/src/ingest.rs:1152

// 参数 27:input_total

第 76 条注释,第 1153 行

desktop/src-tauri/crates/core/src/ingest.rs:1153

// 参数 28:output_total

第 77 条注释,第 1154 行

desktop/src-tauri/crates/core/src/ingest.rs:1154

// 参数 29:output_reasoning

第 78 条注释,第 1155 行

desktop/src-tauri/crates/core/src/ingest.rs:1155

// 参数 30:total_tokens

第 79 条注释,第 1156 行

desktop/src-tauri/crates/core/src/ingest.rs:1156

// 参数 31:source_total

第 80 条注释,第 1157 行

desktop/src-tauri/crates/core/src/ingest.rs:1157

// 参数 32:quality_json

第 81 条注释,第 1158 行

desktop/src-tauri/crates/core/src/ingest.rs:1158

// 参数 33:quality_bucket

第 82 条注释,第 1159 行

desktop/src-tauri/crates/core/src/ingest.rs:1159

// 参数 34:lifecycle

第 83 条注释,第 1160 行

desktop/src-tauri/crates/core/src/ingest.rs:1160

// 参数 35:source_revision

第 84 条注释,第 1161 行

desktop/src-tauri/crates/core/src/ingest.rs:1161

// 参数 36:error_status

第 85 条注释,第 1162 行

desktop/src-tauri/crates/core/src/ingest.rs:1162

// 参数 37:duration_ms

第 86 条注释,第 1163 行

desktop/src-tauri/crates/core/src/ingest.rs:1163

// 参数 38:ttft_ms

第 87 条注释,第 1164 行

desktop/src-tauri/crates/core/src/ingest.rs:1164

// 参数 39:attribution_status

第 88 条注释,第 1165 行

desktop/src-tauri/crates/core/src/ingest.rs:1165

// 参数 40:exclusion_reason

第 89 条注释,第 1166 行

desktop/src-tauri/crates/core/src/ingest.rs:1166

// 参数 41:conflict 占位值。

第 90 条注释,第 1167 行

desktop/src-tauri/crates/core/src/ingest.rs:1167

// 参数 42:content_hash

第 91 条注释,第 1168 行

desktop/src-tauri/crates/core/src/ingest.rs:1168

// 参数 43:cost_minor

第 92 条注释,第 1169 行

desktop/src-tauri/crates/core/src/ingest.rs:1169

// 参数 44:cost_currency

第 93 条注释,第 1170 行

desktop/src-tauri/crates/core/src/ingest.rs:1170

// 参数 45:cost_kind

第 94 条注释,第 1171 行

desktop/src-tauri/crates/core/src/ingest.rs:1171

// 参数 46:price_version

第 95 条注释,第 1172 行

desktop/src-tauri/crates/core/src/ingest.rs:1172

// 参数 47:billing_scope

第 96 条注释,第 1173 行

desktop/src-tauri/crates/core/src/ingest.rs:1173

// 参数 48:created_at_ms,仅 INSERT 使用。

第 97 条注释,第 1174 行

desktop/src-tauri/crates/core/src/ingest.rs:1174

// 参数 49:updated_at_ms

第 98 条注释,第 1175 行

desktop/src-tauri/crates/core/src/ingest.rs:1175

// 参数 50:parse_basis

第 99 条注释,第 1193 行

desktop/src-tauri/crates/core/src/ingest.rs:1193

/// 重算单个本地日:删除未封存行后从 usage_events 重建。

第 100 条注释,第 1194 行

desktop/src-tauri/crates/core/src/ingest.rs:1194

/// 只有归属已核验的事件进入总计;transport_attempt 只计入 attempt_count。

第 101 条注释,第 1207 行

desktop/src-tauri/crates/core/src/ingest.rs:1207

// v4 起 daily_usage 按来源实例分区(M1a:查询跨来源求和,落盘保留每来源贡献)。

第 102 条注释,第 1208 行

desktop/src-tauri/crates/core/src/ingest.rs:1208

// v2 迁移的旧库重算发生在 v4 分区之前,按旧形状(无 instance_id 列)写入。

第 103 条注释,第 1256 行

desktop/src-tauri/crates/core/src/ingest.rs:1256

// 未知字段计数(input/output/total_unknown_count)排除 quality_bucket='unknown'

第 104 条注释,第 1257 行

desktop/src-tauri/crates/core/src/ingest.rs:1257

// 的记录:没有任何已知 token 字段的记录是“无用量调用/观测”(失败调用、

第 105 条注释,第 1258 行

desktop/src-tauri/crates/core/src/ingest.rs:1258

// Copilot 工具循环 round 等计调用但用量由 turn observation 承载),计入

第 106 条注释,第 1259 行

desktop/src-tauri/crates/core/src/ingest.rs:1259

// call/event,但不算作观测缺字段的未知字段(数据规范「请求、消息与累计值」)。

第 107 条注释,第 1311 行

desktop/src-tauri/crates/core/src/ingest.rs:1311

/// 仅修正已核对的 v1/v2 总量遗漏,其他来源字段必须完全一致。

第 108 条注释,第 1342 行

desktop/src-tauri/crates/core/src/ingest.rs:1342

/// 按目标时区重算 [from_ms, to_ms] 覆盖的本地日(维护/修复路径:时区分区修复)。

第 109 条注释,第 1343 行

desktop/src-tauri/crates/core/src/ingest.rs:1343

/// 事件仍在 ⇒ 重算是推导不是猜测;该时区下已封存的日跳过;单事务 + 修订号。

第 110 条注释,第 1344 行

desktop/src-tauri/crates/core/src/ingest.rs:1344

/// 返回本次事务提交的新数据修订号。

第 111 条注释,第 1355 行

desktop/src-tauri/crates/core/src/ingest.rs:1355

// 有界防护:最多重算 750 天(超出报错,由调用方分批)。

第 112 条注释,第 1377 行

desktop/src-tauri/crates/core/src/ingest.rs:1377

/// 按本地日重建各小时汇总,供小时数据保留层使用。

第 113 条注释,第 1378 行

desktop/src-tauri/crates/core/src/ingest.rs:1378

/// 分组字段与日汇总一致:实例、Agent、provider、模型、类别与质量。

第 114 条注释,第 1379 行

desktop/src-tauri/crates/core/src/ingest.rs:1379

/// 与 recompute_day 同事务调用;封存日的小时层同样冻结(不重算)。

第 115 条注释,第 1380 行

desktop/src-tauri/crates/core/src/ingest.rs:1380

/// 小时换算按事件时刻的本地偏移(DST 日 23/25 小时自然正确)。

第 116 条注释,第 1387 行

desktop/src-tauri/crates/core/src/ingest.rs:1387

// schema < 5(测试钩子冻结的旧库)没有 hourly_usage 表:跳过

第 117 条注释,第 1388 行

desktop/src-tauri/crates/core/src/ingest.rs:1388

//(迁移到当前版本后自然生效;不影响日/明细层语义)。