feat: 用量改读 statusline 生产的本地快照(生产者/消费者),实时准确
原先读 statusline 的 /tmp API 兜底缓存;新版 Claude Code 走 stdin、该缓存不再刷新 → 数字过期(14% vs 实际 60%+)。改为消费「打过补丁的 claude-statusline 从 stdin 落盘的权威实时快照」: - USAGE_LOCAL_PATH 默认改指 ~/.claude/usage-snapshot.json - 修复 resets_at 解析:Claude Code stdin 给的是 epoch 数字(非 ISO),_parse_reset_ts 现兼容 epoch/ISO,否则算不出 time_pct、pace 会消失 - 仍不发任何网络请求;快照缺失/损坏 → "--" - 同步更新 CLAUDE.md / README.md 的数据源说明(生产者/消费者) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -72,8 +72,9 @@ WEATHER_CACHE_PATH = os.path.join(BASE_DIR, ".weather_cache.json")
|
||||
TREND_CACHE_PATH = os.path.join(BASE_DIR, ".trend_cache.json")
|
||||
|
||||
# ---- Claude Code 用量(Claude Usage 模块)数据源 ----
|
||||
# 只读本地:读取 claude-statusline 落盘的用量缓存文件,**不发任何网络请求**(详见 usage_local.py)。
|
||||
# 注意:新版 Claude Code 经 stdin 喂 statusline,该磁盘缓存刷新不频繁、utilization 可能滞后;
|
||||
# resets_at 为绝对时间,故 pace(时间维度对比)始终准确。文件缺失时用量区显示 "--"。
|
||||
USAGE_LOCAL_PATH = os.environ.get("USAGE_LOCAL_PATH", "/tmp/claude/statusline-usage-cache.json")
|
||||
# 只读本地、**不发任何网络请求**(详见 usage_local.py)——生产者/消费者模式:
|
||||
# 生产者 = 打过补丁的 claude-statusline,把每次从 Claude Code stdin 拿到的**权威实时**额度
|
||||
# (five_hour/seven_day 的 utilization + resets_at)落盘到 ~/.claude/usage-snapshot.json;本项目读它。
|
||||
# 活跃使用时该快照几乎持续刷新、准确;空闲时停在最后一次。文件缺失时用量区显示 "--"。
|
||||
USAGE_LOCAL_PATH = os.environ.get("USAGE_LOCAL_PATH", os.path.expanduser("~/.claude/usage-snapshot.json"))
|
||||
USAGE_WARN = int(os.environ.get("USAGE_WARN", "80")) # 用量 ≥ 此百分比 → 进度条与百分比转红预警
|
||||
|
||||
Reference in New Issue
Block a user