{"version":"2.1.197","anchor":"alias-to-canonical-id-resolution-for-persisted-model-prefere","canonical_anchor":"alias-to-canonical-id-resolution-for-persisted-model-prefere","heading":"Alias-to-Canonical-ID Resolution for Persisted Model Preferences","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.197\/e\/alias-to-canonical-id-resolution-for-persisted-model-prefere","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.197","markdown":"### Alias-to-Canonical-ID Resolution for Persisted Model Preferences\n\n**What**\n\nModel alias matching now uses a canonical wire model ID to let hosts correctly match a stored explicit model ID (e.g., a saved `claude-sonnet-4-6`) against the alias row that covers it, surviving model transitions without breaking saved settings.\n\n**Details**\n\n- New `resolvedModel` field (previously documented as `canonicalId`) in the model row schema: `\"Canonical wire model id this row's value resolves to (e.g. 'sonnet' \u2192 'claude-sonnet-5'). Lets hosts match a persisted explicit id against the alias row that covers it.\"` \u2014 populated by `Y4t()` via `Bo(value)`, which resolves an alias to its concrete wire model ID\n- New `cda(options, persistedId)` function: if `persistedId` already exists verbatim in the option list it is returned unchanged; otherwise a `z4t()` scan finds a covering alias by checking in order \u2014 exact `value` match, fable-family membership, same model family AND (same 1M-context flag OR model is natively 1M-capable)\n- When `cda()` finds a match it returns the alias option's `value` (e.g., `\"sonnet\"`), so the picker highlights the correct alias row for the persisted model; if no alias covers the persisted ID the call-site expression `cda(options, initial) ?? initial` keeps the original persisted value as the initial selection rather than discarding it\n\n**Evidence**\n\nSchema field `resolvedModel` and description (search for `\"Canonical wire model id this row's\"`); `cda(e, t)` function definition; `z4t()` matcher (search for `\"Lets hosts match a persisted explicit id\"`)"}