_apply_featured() documented that only aggregator rows get a
featured_models shortlist, but decided "is this an aggregator?" with a
local heuristic: does any model id contain "/" and span >= 2 prefixes?
Every user-defined provider following the Org/Model id convention
therefore got a top-5-per-lab shortlist, and the desktop picker — whose
default-visible set IS featured_models — hid models its owner had
configured by hand (#120217: 3 of 13 models in the reproduction,
including a brand-new flagship ranked out by a missing release_date).
The same module already answers this canonically: is_routing_aggregator(),
used by _strip_aggregator_overlaps(). Reuse it — skip the shortlist for
is_user_defined rows and for any slug the predicate does not claim, before
the models.dev lookup loop.
tests/hermes_cli/test_inventory.py asserted
featured_models == models for a user-defined providers.lab row, which is
exactly the behaviour this issue says is wrong; it now asserts [] while
keeping the constant-config-read invariant the test exists for.
Fixes#120217