Where Codex compacts a long conversation reached the gateway's /models
(provider.CodexListed sets catalog.Model.Compact) and Claude Code
(claude.go calls provider.CompactSet), but not the list magpie writes for
Codex on disk: magpieModels left Compact unset, so codexcat fell back to
the threshold for every model. A threshold the user set on a model or on
its provider did nothing while Codex read that list — the case where Codex
is not signed in to ChatGPT and model_catalog_json is what it reads.
magpieModels now carries it, as the gateway's list and Claude Code already
do. provider.CompactSetIn is compactSet for a caller holding the settings
and the group finder already, as EffectivePriceIn is for prices: this loop
runs for hundreds of models at magpie's start.
TestCodexCatalogCompactAtReachesDisk fails without the change (204800, want
100000) and passes with it: relay's "*" and then relay/glm-4.6's own
threshold reach the file, with the model's window kept as the maximum, and
the whole window comes back when they are cleared.
Co-authored-by: TryWorld2026 <tryworld@users.noreply.github.com>