Cepvor
835dd2d804
fix: 为 sessionStorage existingSessionFiles Map 添加容量上限 (#1227)
* fix: 修复子代理 token 消耗在主 spinner 中始终显示为 0
Spinner.tsx 的 token 聚合循环仅统计 in_process_teammate 类型任务,
漏掉了 local_agent(后台代理/verification agent)类型。当后台代理
运行时,主界面 spinner 一直显示 "↓ 0 tokens",因为 background agent
的 token 消耗未被纳入 teammateTokens 聚合。
同时在 inProcessRunner.ts 中,进程内队友完成时计算并设置 result
(含 totalTokens/totalToolUseCount/content/usage),使详情弹窗可以
正确展示累计 token 消耗,不再仅依赖 progress.tokenCount 间歇更新。
Co-Authored-By: deepseek-v4-pro[1m] <deepseek-ai@claude-code-best.win>
* fix: 为 cacheWarningStateBySource Map 设置上限防止内存泄漏
Map 以 querySource 为 key 存储每个来源的缓存命中率历史状态,
但 querySource 类型为 `any`,长时间会话中可能产生大量唯一值,
Map 持续增长永不清理。
新增 MAX_SOURCE_ENTRIES = 50 上限,新增条目时若达到上限则
逐出最早插入的条目(Map 按插入顺序迭代)。
同时也新增 _resetCacheWarningStateForTest() 用于测试隔离。
Co-Authored-By: deepseek-v4-pro[1m] <deepseek-ai@claude-code-best.win>
* fix: 为 sessionStorage existingSessionFiles Map 添加容量上限
existingSessionFiles Map 缓存 sessionId → 文件路径映射以避免重复
stat 调用,但在 coordinator/swarm 模式下,每个子代理产生独立
sessionId,长时间运行的 daemon 会话可能累积数千条目。
新增 MAX_CACHED_SESSION_FILES = 200 上限,新增条目时若达到上限则
逐出最早插入的条目。同时在 _resetFlushState() 中清除此缓存以保证
测试隔离。
Co-Authored-By: deepseek-v4-pro[1m] <deepseek-ai@claude-code-best.win>
---------
Co-authored-by: deepseek-v4-pro[1m] <deepseek-ai@claude-code-best.win>
2026-05-16 08:09:40 +08:00
..
2026-05-10 22:57:30 +08:00
2026-04-25 08:54:18 +08:00
2026-04-26 19:49:54 +08:00
2026-05-09 16:45:56 +08:00
2026-05-05 20:15:51 +08:00
2026-04-26 19:49:54 +08:00
2026-05-05 16:07:30 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-09 16:21:07 +08:00
2026-05-01 21:39:30 +08:00
2026-05-09 16:45:56 +08:00
2026-05-01 21:39:30 +08:00
2026-04-22 22:38:10 +08:00
2026-05-01 21:39:30 +08:00
2026-04-25 08:54:18 +08:00
2026-05-01 21:39:30 +08:00
2026-05-10 09:39:34 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-14 15:40:28 +08:00
2026-05-01 21:39:30 +08:00
2026-05-04 23:51:36 +08:00
2026-05-09 23:04:31 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 16:07:30 +08:00
2026-04-22 22:38:09 +08:00
2026-05-09 23:04:12 +08:00
2026-05-09 16:45:56 +08:00
2026-04-26 19:49:54 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 17:50:15 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 16:07:30 +08:00
2026-05-09 16:45:56 +08:00
2026-05-07 11:12:40 +08:00
2026-05-07 12:06:40 +08:00
2026-05-01 21:39:30 +08:00
2026-05-07 11:10:01 +08:00
2026-05-01 21:39:30 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-29 15:17:50 +08:00
2026-04-22 22:38:09 +08:00
2026-04-29 13:23:41 +00:00
2026-04-29 13:23:41 +00:00
2026-04-29 14:04:27 +08:00
2026-04-29 13:23:41 +00:00
2026-05-05 20:05:50 +08:00
2026-05-01 21:39:30 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-14 17:44:47 +08:00
2026-05-10 19:26:57 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 23:04:35 +08:00
2026-05-09 23:04:35 +08:00
2026-05-14 16:05:16 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 20:05:50 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-04-16 20:59:29 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 16:45:56 +08:00
2026-04-11 10:24:00 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-04-07 16:17:48 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 23:04:35 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-04-11 10:24:00 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-07 16:17:48 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-04-07 16:17:48 +08:00
2026-05-08 20:35:34 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-03 09:39:25 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 17:11:09 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-04-22 22:38:10 +08:00
2026-04-22 22:38:10 +08:00
2026-05-10 22:57:30 +08:00
2026-05-05 21:09:02 +08:00
2026-03-31 19:22:47 +08:00
2026-05-10 22:57:30 +08:00
2026-05-10 22:57:30 +08:00
2026-04-05 01:43:18 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-04-10 12:17:52 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-04-26 19:49:54 +08:00
2026-04-06 17:10:16 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-04-29 15:49:54 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-07 16:17:48 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-05 14:53:57 -07:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 20:15:51 +08:00
2026-04-16 20:59:29 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 23:04:07 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 22:24:18 +08:00
2026-04-07 16:17:48 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 17:23:03 +08:00
2026-04-07 16:17:48 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 16:07:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-04-17 16:21:27 +08:00
2026-05-09 16:45:56 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-04-27 14:47:18 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-11 23:22:55 +08:00
2026-05-05 19:36:38 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-05-05 20:15:51 +08:00
2026-04-22 22:38:10 +08:00
2026-04-16 20:59:29 +08:00
2026-03-31 19:22:47 +08:00
2026-05-02 09:11:12 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-05-05 18:18:13 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 20:15:51 +08:00
2026-04-13 09:52:05 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 20:15:51 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-10 22:57:30 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-04-22 22:38:10 +08:00
2026-04-07 16:17:48 +08:00
2026-04-26 19:49:54 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 23:04:07 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-09 16:45:56 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 20:15:51 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-04-26 19:49:54 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-16 08:09:40 +08:00
2026-05-01 21:39:30 +08:00
2026-05-05 16:07:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-04 23:53:28 +08:00
2026-05-01 21:39:30 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-01 21:39:30 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-02 00:45:03 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-13 09:52:05 +08:00
2026-04-17 09:33:14 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-05-02 09:11:12 +08:00
2026-04-22 22:38:10 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-04-27 14:47:18 +08:00
2026-04-13 09:52:05 +08:00
2026-03-31 19:22:47 +08:00
2026-05-09 23:04:31 +08:00
2026-03-31 19:22:47 +08:00
2026-04-07 16:17:48 +08:00
2026-04-07 16:17:48 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 20:15:51 +08:00
2026-05-02 11:21:22 +08:00
2026-03-31 19:22:47 +08:00
2026-05-01 21:39:30 +08:00
2026-04-07 16:17:48 +08:00
2026-04-28 09:15:58 +08:00
2026-04-27 20:16:09 +08:00
2026-05-01 21:39:30 +08:00
2026-04-27 14:47:18 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-05-05 16:07:30 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-04-22 22:38:10 +08:00
2026-03-31 19:22:47 +08:00
2026-04-11 23:22:55 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00