fix(observability): compact usage 缺省静默按 0 token 记账(两处)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 74/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- rust
调研方向
从 src/compact/mod.rs 的第315行和第707行开始,这两处会在缺少用量数据时采用默认值;阅读周边的结构化响应和自由文本响应处理路径。检查现有的 tracing 上下文和相关回归测试。完成标准是:两条路径在缺少用量数据时都会发出包含会话和轮次字段的警告,并且有一个回归测试覆盖零 token 的计量行为。
由索引模型根据 Issue 内容生成。
描述
fix(observability): compact usage 缺省静默按 0 token 记账(两处)
优先级 P3 · 依赖:无
基线 HEAD = 880cff08(wt-b2,Goal 428 S4 扫描批)。来源:Goal 428 S4 全仓静默降级扫描,登记页 docs/architecture/degradation-registry.md。owner ruling:「任何降级必须可观测」。#42/#193 族(usage 数值面)邻接。
Summary
src/compact/mod.rs:315(structured 路径)与:707(free-text 路径):usage.unwrap_or_default()——provider 响应缺 usage 时静默按全零 token 记账;:311 的 info! 只覆盖 structured→free-text 回退,不覆盖 usage 缺失。- 后果:压缩消耗的 token 从预算/成本账面上消失——BudgetExceeded 判定与成本统计双少计,无任何痕迹。
建议
usage 缺失 tracing::warn!(session/turn 字段,「compaction usage missing; accounting records zero (degradation)」);回归钉一条。
- 主要语言
- Rust
- 星标
- 4
- 派生
- 0
- 平均合并
- 3 小时 55 分钟
- 30 天内合并 PR
- 11
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
jeffkit/recursive 的其他 Issue
查看 jeffkit/recursive 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 75/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
manuscript-lang/manuscript#1364 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
equinor/septic-config-generator#504 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 72/100
GiganticMinecraft/seichi-portal-backend#1633 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
fable-compiler/Fable#5157 ·
维护者通常 1 天内回复