元信息
| 项目 |
内容 |
| 日期 |
2026-09-24 |
| 执行环境 |
Windows 11 Pro 26200 x64;Rust 1.98.0;Node v24.21.0 |
| 代码 revision |
工作树未提交改动 |
| 设计依据 |
execution.md M2;adapters.md 交付要求与必需样本;architecture.md 增量策略;validation.md V07/V12/V17 |
命令与结果
| # |
命令(cwd) |
退出码 |
结果摘要 |
| 1 |
npm run verify(仓库根) |
0 |
lint / assets / svelte-check / fmt / clippy -D warnings / cargo test / vite build 全绿 |
| 2 |
cargo test --locked --workspace(desktop/src-tauri) |
0 |
135 passed / 0 failed(M1 的 72 + 本阶段新增) |
| 3 |
cargo run -p llm-usage-core --example real_verify_codex -- ~/.codex build/desktop-usage-validation/real-check |
0 |
本机真实只读核对,允许字段的汇总见下 |
实现清单
adapters/framework.rs:SourceAdapter trait(discover→detect→scan→capability)、
扫描运行管线(generation 重扫、文件未变化则跳过读取、fail closed、诊断输出字段限制)、
快照对账(per-call 合计 vs 最终快照 + compaction 携带)。
adapters/jsonl.rs:JSONL 读取器(V07 全部边界:半行不前移游标、跨块 UTF-8、
8 MiB 单行上限受限报错、BOM、坏行隔离无正文、同长替换/截断/改名 generation 重探测)。
adapters/codex.rs:Codex 0.155.0-alpha.16.3 适配器。token_usage_record 逐次(model_call,
resp:{response_id} 身份,缺 ID 回退 seq:{session}:行号)、token_count 累计快照分格式不混算、
compaction 携带记录去重与对账、turn_context 模型归属(无模型归属依据时为 unknown)、
codex_vscode→host_application=vscode、子 Agent 类别映射。能力声明落库 source_instances。
- 重复 final 语义修正(ingest.rs):同键同内容仅时间不同的重报按相同内容保留(Keep),
不误标 conflict;真正的同修订内容分歧仍保留 conflict 诊断。
测试(新增 63 个,全部真实临时文件/SQLite)
codex_contract.rs:M0 三份真实测试数据的完整采集流程的期望(单调用/49 调用/多模型 compaction),
能力声明结构、发现/实例/落库。
codex_gaps_synthetic.rs:合成样本(目录头标注 synthetic):重复 final、子 Agent、
cache write>0、无 usage 的 tool/user 消息、缺 response_id 回退身份;V17 未知版本/格式 fail closed。
codex_incremental_v12.rs:追加增量、半行等待、截断/同长替换/改名重扫、按读取上限分段、
重复扫描不增量、冲突重复 final 保留现存。
jsonl_v07.rs:V07 逐条边界;review_regressions.rs:回归守卫。
本机真实只读核对(~/.codex,265 个 rollout 文件)
| 指标 |
实测 |
| 完整扫描文件 |
53(另有 6 degraded:空文件/异常 meta) |
| fail closed |
212 个文件,均为其他版本(0.154.0-alpha.6.2×89、0.155.0-alpha.16×18、0.146/147/149/150/151/153 等 12+ 版本);符合设计规则,多版本支持需逐版本测试数据 |
| 行/记录/事件 |
23,059 行 → 2,620 个模型调用事件 |
| 快照对账 |
matched 48 / mismatch 5 / no_snapshot 0;mismatch 均为“最终快照 > 逐次合计”(差 2.9M–31.5M token),与源端保留截断或跨文件会话一致,差异已存 reconcile_mismatch 诊断,不静默吸收 |
| 重复扫描 |
rescan_added=0(未重复入库) |
| 汇总(UTC) |
calls=2620;input_total 268,545,932;cache_read 257,653,888(占比 ~95.9%);output 1,271,994;total 269,817,926;模型 3 种 |
诊断计数:unsupported_version 212、snapshot_out_of_order 76、unexpected_session_meta 6、
reconcile_mismatch 5、unknown_record_type 4、usage_shape_deviation 1。无正文/路径泄露
(限制输出字段的脚本 examples/real_verify_codex.rs,临时库在 gitignored 的 build/desktop-usage-validation/real-check/)。
中断后收尾(主会话完成)
M2-A 子代理因额度中断,以下由其代码基础上修复后验收:能力声明 cost 断言、
重复 final 保留已有记录(ingest 比较规则)、同长替换测试数据(原测试数据破坏 cli_version 与 fail-closed 冲突,
改为整行交换)、clippy 6 处、fmt、bundle-report tar 加 –force-local(Windows 路径冒号)。
未完成项
| 项 |
状态 |
后续 |
| Codex 其他版本(0.146–0.155 系) |
部分完成(m2d:0.153.0/0.154.0-alpha.6.1/6.2 已验证;0.139–0.151 无逐次记录格式待专用实现;未收录版本按 latest_fallback 尝试) |
0.139–0.151 核验 token_count/last_token_usage 身份语义后扩展 |
| OTel 遥测接入 |
未实现 |
M5 |
| 真实 GUI 数据源页 |
未实现 |
M6 |
验证产物
desktop/src-tauri/crates/core/src/adapters/(framework/jsonl/codex)、tests/(codex_*、jsonl_v07、review_regressions、fixtures/codex/)。
build/desktop-usage-validation/real-check/(gitignored):real-check.sqlite 临时核对库。