Revamp new agent dialog#1201
Conversation
558fa41 to
9efe199
Compare
37d03e8 to
309889d
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9efe199544
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9587e6bb13
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
9587e6b to
9b228b4
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9b228b4542
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6fb341bc61
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5cfe774546
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
15e9e48 to
17b5b77
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 17b5b7749e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| model: trimmedRuntime ? model.trim() || undefined : undefined, | ||
| provider: trimmedRuntime ? provider.trim() || undefined : undefined, |
There was a problem hiding this comment.
Preserve model/provider when runtime is unset
When editing an existing persona that has a saved model or provider but no preferred runtime, saving any unrelated field now submits both values as undefined because they are gated on trimmedRuntime. The backend update path treats undefined/missing optional fields as clearing those persona fields, so an edit like renaming a legacy/imported persona with no runtime silently drops its model/provider configuration.
Useful? React with 👍 / 👎.
| const existingAvatar = normalizeOptionalText(persona.avatarUrl); | ||
| const importedAvatar = normalizeOptionalText(preview.avatarDataUrl); | ||
| const importedAvatar = normalizeOptionalText(importedAvatarUrl(preview)); | ||
| if (existingAvatar !== importedAvatar) { |
There was a problem hiding this comment.
Ignore unsafe avatar refs instead of selecting a clear
Fresh evidence in the current code is that an unsafe imported avatar ref is filtered to "", and the import-update dialog selects every detected field change by default. If an existing persona has an avatar and the imported .persona.md/pack only has a relative avatar such as ./avatars/lep.png, this line turns that into a real avatar diff from the current URL to blank; applying the default update then clears the existing avatar rather than ignoring the unusable imported ref.
Useful? React with 👍 / 👎.
| {providerOptions.map((option) => ( | ||
| <option | ||
| key={option.id || AUTO_PROVIDER_DROPDOWN_VALUE} | ||
| value={option.id || AUTO_PROVIDER_DROPDOWN_VALUE} | ||
| > | ||
| {option.label} | ||
| </option> | ||
| ))} |
There was a problem hiding this comment.
For new personas/agents, the LLM provider field is now limited to this fixed option list, so users cannot enter a valid provider name that is not baked into PERSONA_LLM_PROVIDER_OPTIONS even though the backend stores provider as an opaque pass-through string and the previous text input accepted custom values. This blocks configuring non-listed runtime providers unless the persona was imported with that exact value already present.
Useful? React with 👍 / 👎.
Summary
Validation
cd desktop && pnpm checkcd desktop && pnpm typecheck