mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-07 12:31:56 +00:00
52f0b52b45
* ui_kit: search_picker, a filtered dropdown with a custom entry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Agent chat: endpoints list their models with names, say when listing fails, and OpenClaw and OpenRouter presets (#2582) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Agent chat: a typed model goes to endpoints and to agents that offer a model option Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Agent chat: the header's model pickers search and take a custom model The popup can't grow once it is open, so search_picker now fixes the height of what changes below its box when it opens: the custom row or a late list could otherwise end up out of reach. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * AI preferences: pick an endpoint's model when adding it and on its card (#2582) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Agent chat: model picker rows read from the left, and a refused typed model says which From running it: list_picker centres its text, which reads badly for a long list of ids, and an agent's own refusal can say no more than "Internal error". The search box also asks for a repaint while it waits for the focus, so an idle window does not stop short of it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Agent chat: docs for the model picker Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Agent chat: an endpoint's answer that is no model list says so, an empty list too, and editing lists with the kept key A 200 without a `data` array (a web page where the endpoint should be, as OpenClaw's gateway serves until its chat endpoint is enabled) was cached as a successful, empty listing, so the picker stayed blank with nothing to say and never asked again. Now it is an error with its own note, an empty list says so, and both are asked for again the next time. The Edit dialog lists its endpoint's models when it opens, with the kept key read from the keychain on the listing's thread, as the card does; the key stays out of the field. The method-not-found test expects the refusal notice that names the model, as every refused model gets since this branch. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Agent chat: models from several providers fold under their providers inside the picker As Chemiseblanc does in #10187: with two or more groups, `search_picker` draws each group as a header with a chevron, the name and how many of its choices are listed, and a click folds or opens it. Before anything is typed only the current value's group (and the one the caller asks for) is open; a group with a match opens once something is typed; a fold made by hand stays until the popup closes. Enter takes the first row shown, so never one folded away. A lone group keeps its plain heading. The header's model picker feeds its providers in as groups, so the separate provider drop-down goes; the control channel's `provider` now says which group opens first. A header click gives the focus back to the search box, so typing goes on filtering. The dialog's listing test checks what kind of listing it got rather than translated words, which the listing thread may render in another language than the test's. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Agent chat: rustfmt the provider groups Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Agent chat: an endpoint's models named `Vendor: Model` fold under their vendors OpenRouter lists `openai/gpt-6.1-terra` as "OpenAI: GPT-6.1 Terra". A listing whose ids read `vendor/model` and whose names read `Vendor: Model` now names its providers, so the picker folds it under its vendors like a multi-provider agent; the rows read the model's name, and the id stays in the tooltip and in the search. An agent's own `Provider: …` word still comes first. One vendor is one flat list, as before. The Add dialog's picker has no current model to prefer, so with nothing to prefer every group starts open; folding is a click away. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>