fix(app): name cache_cycle_mb in the metrics view (#168)

The guard added in #167 writes cache_cycle_mb into the metrics preamble, but the
app never learned the key. MetricsScreen falls back to showing unknown keys under
their raw name, sorted, at the end of the list -- so the one number this release is
about arrived as "cache_cycle_mb" detached from the cache group it belongs to,
while every sibling (cache_mb, cache_floor_mb, cache_ceil_mb) reads as prose with
an explanation behind it.

Two rows, in the two places every other config field is declared: the label in
MetricsScreen's CONFIG_ORDER, right after cache_ceil_mb so it lands with the rest
of the cache block, and the description in MetricFields.

Also makes the CHANGELOG line true: it claimed the number was recorded, and now it
is also readable where people actually look at it.
This commit is contained in:
Helldez 2026-08-25 13:21:32 +02:00 • committed by GitHub
parent 0f193d3c05
commit 7ad04fa343
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 4 additions and 1 deletions

View file

@ -87,6 +87,7 @@ object ConfigFields {
ConfigField("cache_auto", "the budget was sized from free RAM once at load, then held for the run"),
ConfigField("cache_floor_mb", "RAM auto-sizing leaves free for the rest of the system. Applies only with cache_auto"),
ConfigField("cache_ceil_mb", "upper bound on the auto budget; 0 caps only at the full expert-set size"),
ConfigField("cache_cycle_mb", "one token's worst-case routed bytes for this model at the applied top-k, priced at load. A cache_mb under it cannot hold a token cycle, so the hit rate is near zero however legal the budget looks against the engine's floor"),
ConfigField("force_cache", "a budget below the engine's floor was permitted. Such a cache thrashes by design and is slower than no cache — reserved for probing where the floor lies"),
ConfigField("io_threads", "parallel flash read lanes, including the calling thread. 1 is the serial baseline"),
ConfigField("o_direct", "expert reads bypassed the page cache"),

View file

@ -403,6 +403,7 @@ private val CONFIG_ORDER = listOf(
"cache_auto" to "Cache auto-size",
"cache_floor_mb" to "Cache floor (MiB)",
"cache_ceil_mb" to "Cache ceiling (MiB)",
"cache_cycle_mb" to "Token cycle (MiB)",
"force_cache" to "Force cache",
"io_threads" to "I/O lanes",
"o_direct" to "Direct I/O",