BigMoeOnEdge/examples
Helldez 33b2a6459d
fix(app): show the whole run configuration a metrics CSV carries (#137)
* fix(app): show the whole run configuration a metrics CSV carries (#136)

The engine has written every resolved knob into the `# bmoe_metrics v2` preamble for
several releases; the app displayed hand-picked subsets of it. The header card of an
opened file listed eight fields, and the compare view rendered a 17-key whitelist that
had drifted behind the metrics sink. Expert dropping, predictive prefetch and its
speculation width, the sampling parameters and the engine build were all in the file and
none of them reachable — a saved run could not say whether it dropped experts, let alone
at what fraction, and an A/B differing only by one of those levers rendered two
configuration cards that looked identical.

Both views now go through one renderer over the whole preamble: the curated keys in
order, then every remaining key under its own name. The order list stops being a filter,
so a knob added to the sink becomes visible without an app change — which is the actual
fix, the missing keys were only the symptom. The single-file card keeps its glance line
and gains the full table behind a tap; `drop` and `predict` also join the short run label
the compare legends show.

Version bumped to 0.18.1 (versionCode 33).

* fix(app): state the whole run configuration on the main screen too (#136)

The reminder line under the prompt was the same hand-picked subset as the metrics
views: cache, lanes, overlap, threads, top-k. It left out the dense-weight policy,
both prefetches and cache-aware expert dropping - which defaults to 75%, so the
out-of-the-box configuration changed the answers and the screen said nothing.

The short line now carries what makes a run a different KIND of run, gated exactly
as sessionArgv gates the flags themselves so it cannot name a lever the CLI is
never told about. The whole configuration sits one tap below it, read back from
that same argv rather than from a second list kept by hand: a knob added to
sessionArgv shows up on its own, which is the property this display kept losing.

* fix(app): explain the configuration the metrics views now show (#136)

Surfacing the whole preamble is half an answer while the keys it names go
unexplained: several are unguessable from the key alone. The glossary behind ?
gains a second section describing every configuration key, worded from where each
knob is defined, and is now reachable from Compare too. It also finally describes
loop_overhead_ms, a column the engine has written since 0.17.0.

predict_spec_max renders as inert when predictive prefetch was off. The engine
records its own default (2) there - the one field of that block session.cpp does
not neutralise - so a file claimed two speculated misses per layer for a run that
speculated nothing. Only the record was wrong: with the feature off the value is
never read, so no run behaved differently than reported.
2026-07-31 12:09:59 +02:00
..
android fix(app): show the whole run configuration a metrics CSV carries (#137) 2026-07-31 12:09:59 +02:00