KimiSwitch Dev
ded166c4c8
perf(dashboard): 用量统计从秒级降到感知不到 — SQLite 连接单例、配置读取缓存、聚合结果缓存、快照持久化 + 后台校验
功能与数据口径零变化(用量数字、字段、IPC 签名、导出格式均与 v0.8.1 一致)。
- db.rs:新增进程级连接单例(含迁移只跑一次),卡片墙场景由 200+ 次「开连接 + 7 条 DDL」降为 1 次;
新增写路径代际计数器供各处读缓存判失效
- commands.rs:load_agent_config_command 结果缓存(db 代际 + config.toml 文件戳双重校验),
N 张供应商卡片由 N 次全量加载(config.toml 解析 + SQLite 全量读 + 逐供应商 settings 读)降为 1 次
- dashboard.rs:
* build_all_models 单遍轻量聚合,替换原先为取一张模型表而白算日/明细/供应商三份数据的整表遍历
* SUMMARY_CACHE 按记录集 Arc 身份 + 日期 + 分钟桶缓存热力图/模型总览/各范围汇总,切范围来回近乎零成本
* 归档会话列表与合成记录按代际 + Arc 身份缓存(合并后的 Arc 保持稳定,否则上层缓存永不命中)
* 解析结果持久化到 ~/.kimi-switch/scan-cache-<hash>.json:重启后首次 get_summary 直读快照
(实测 6.4 万条记录 / 1.03 GB:22~27s → 0.85s),随后后台线程全量校验,
有变化时经 dashboard://records-updated 事件推送,前端无感刷新(先快后准);
快照损坏/指纹不符静默降级为全量扫描,refresh=true 语义不变
- useDashboard.ts:stale-while-revalidate,切范围/重进页面先呈现旧数据再静默刷新,不再闪加载态;
订阅上述事件做无感更新,保留原世代号防竞态
测试:Rust 193 项(+16)、前端 130 项全绿
2026-10-09 16:44:03 +08:00
..
2026-10-07 23:35:30 +08:00
2026-09-13 14:51:09 +08:00
2026-10-09 16:44:03 +08:00
2026-10-07 23:35:30 +08:00
2026-08-01 13:44:13 +08:00
2026-10-04 00:59:59 +08:00
2026-10-04 00:26:05 +08:00
2026-08-22 14:00:20 +08:00
2026-07-28 16:01:11 +08:00
2026-07-08 08:53:26 +08:00
2026-07-28 16:01:11 +08:00