feat(app): create agent profiles from the model chooser (#3533)

* feat(app): create agent profiles from the model chooser

Restore quick model pinning by creating an agent profile directly from a
model row. A trailing plus on unprofiled model rows opens the pre-filled
profile form; rows that already name the provider+model show the profile
glyph and open it for edit.

- seed the profile form model with provider, model, and suggested name
- expose useAgentProfileEditor from @/agent-profiles for the write path
- hover-refactor model rows per docs/hover.md and add the trailing action
- wire the composer desktop selector and compact model sheet (close-then-open)

Closes #3529

* fix(app): match favourites star position for model row profile action

The star sat after the selection checkmark at the far-right edge. Put the
profile create/edit action in the same slot instead of before the checkmark.

* fix(app): disambiguate per-model create profile action

The per-model + buttons shared the accessible name "Create profile" with
the empty-state row, which broke the empty-host picker test (strict mode
matched five buttons). Name the action "Create profile from <model>" so it
is specific and screen readers get the model context.

* fix(app): keep per-model create label out of model row names

Naming the action "Create profile from <model>" put the model label into a
second button on the row, so regex selectors targeting a model row by name
matched both. Use a generic "Create profile from this model" label that
neither collides with the empty-state "Create profile" row nor with model
row names.
This commit is contained in:
Mohamed Boudra
2026-08-19 07:46:47 +02:00
committed by GitHub
parent 9c9a85a0cf
commit e9373c026b
23 changed files with 674 additions and 54 deletions
+3
View File
@@ -1478,6 +1478,9 @@ export const ja: TranslationResources = {
editProfiles: "編集",
editProfilesLabel: "エージェントプロファイルを編集",
createProfile: "プロファイルを作成",
createProfileFromModel: "このモデルからプロファイルを作成",
editProfileLabel: "{{name}}を編集",
editProfilesCount: "プロファイルを編集({{count}})",
modelCount: "{{count}}つのモデル",
modelCountPlural: "{{count}}つのモデル",
retry: "再試行",