Skip to content

fix: 缓存判过期不再看 usable,档位落盘(0.2.40) - #5

Merged
MYCF711 merged 1 commit into
mainfrom
fix/catalog-stale-tier
Nov 3, 2026
Merged

MYCF711 merged 1 commit into
mainfrom
fix/catalog-stale-tier

Conversation

@MYCF711

@MYCF711 MYCF711 commented Nov 3, 2026

Copy link
Copy Markdown
Owner

0.2.39 之后真机:模型列表收窄到 2 条,两分钟后缓存又变回 4 条(未收窄)。

根因

isStale() 里还留着「每个模型必须有 usable 布尔」那条判据 —— 那是探测时代的规则。探测已经默认关闭、新缓存根本不写 usable,于是每一次 usage 都判定过期、每次都在后台重拉一遍,把收窄结果覆盖回「四类混列」。

改法

  • isStale() 只看时间(TTL 6 小时)
  • 档位落盘:writeCatalog(…, { tier }) 写 tier,readCatalog 读回来,configModels 读缓存时按它再筛一遍(幂等),refreshCatalog 没传 tier 时沿用旧值 —— 三道保险

验证

monkeycodeintl tier=basic cache=2  storedTier=basic
monkeycode     tier=basic cache=13 storedTier=basic
node --test → 246 pass / 0 fail
node scripts/check.mjs → 49 通过 · 0 失败

0.2.39 之后真机:手工收窄到 2 条,两分钟后缓存又变回 4 条。

isStale() 里还留着「每个模型必须有 usable 布尔」那条探测时代的判据 —— 探测已
默认关闭、新缓存不写 usable,于是每次 usage 都判定过期、每次后台重拉,把收窄
结果覆盖回四类混列。现在只看时间(TTL 6h)。

顺带把档位落盘:writeCatalog 写 tier、readCatalog 读回、configModels 读缓存时
再筛一遍(幂等)、refreshCatalog 没传 tier 时沿用旧值。
@MYCF711
MYCF711 merged commit b9e6370 into main Nov 3, 2026
4 checks passed
@MYCF711
MYCF711 deleted the fix/catalog-stale-tier branch November 3, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant