Fix model search spinner alignment

Target x-icon children in the model search button so the magnifier and loading spinner share the same grid cell. The stale span selector placed the spinner in a second row after the icon migration. Document the alignment contract.

Validation: 9 focused tests passed; verified centered icons during loading in the live WebUI at localhost:32081.
This commit is contained in:
Alessandro 2026-09-23 21:28:27 +02:00
parent e3051fb584
commit 12b3cb83fb
2 changed files with 2 additions and 1 deletions

View file

@ -58,6 +58,7 @@
- Venice migration applies chat-only kwargs to chat slots and removes them from embedding slots without discarding embedding-specific kwargs.
- On every startup after migration, short-circuit when `usr/plugins/_model_config/presets.yaml` exists. Only a missing collection may fetch `agent0ai/a0-presets`; parse remote and plugin-local fallback YAML through the same validator, strip secrets before persistence, and persist `mode_presets_fallback.yaml` when download or validation fails.
- Model-name catalogs open below the input from either a field click or the embedded magnifier. Discard asynchronous results if their provider, API base, model draft, or query changed while the request was pending.
- Keep the model-search magnifier and loading spinner in the same grid cell by targeting the button's `x-icon` children.
- Additional parameter drafts retain plain-string compatibility but reject malformed JSON-shaped values and invalid KEY=VALUE lines with a standard notification. Reparse every preset slot before saving presets or API keys; invalid drafts stay editable and never silently save stale kwargs. Save errors identify the preset and model slot even when that draft is no longer selected.
## Work Guidance

View file

@ -376,7 +376,7 @@
.model-search-btn:disabled {
cursor: default;
}
.model-search-btn > span {
.model-search-btn > x-icon {
grid-area: 1 / 1;
font-size: 18px;
transition: opacity 0.15s;