Add agent avatar plumbing#1202
Conversation
3c98661 to
67eb982
Compare
558fa41 to
9efe199
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 67eb982b1f
ℹ️ 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".
| command.env("RUST_LOG", child_rust_log_filter()); | ||
| command.env("BUZZ_PRIVATE_KEY", &record.private_key_nsec); | ||
| command.env("BUZZ_RELAY_URL", &effective_relay_url); | ||
| command.env("BUZZ_RELAY_URL", &record.relay_url); |
There was a problem hiding this comment.
Resolve blank relay URLs before spawning agents
For users upgrading with existing managed agents, records created before this change commonly have relay_url persisted as "" because an empty value meant “follow the active workspace relay”. Passing the raw record value here now starts local agents with an empty BUZZ_RELAY_URL (and the credential-helper URL is derived from the same empty value below), so those agents fail to connect until the user edits and saves a relay URL. Keep resolving empty/whitespace through effective_agent_relay_url when spawning legacy records.
Useful? React with 👍 / 👎.
| pub display_name: String, | ||
| pub system_prompt: String, | ||
| pub avatar_data_url: Option<String>, | ||
| pub avatar_ref: Option<String>, |
There was a problem hiding this comment.
Use avatar_ref in all persona import paths
The new avatar_ref is only consumed by the single-persona dialog path; the batch and import-update paths still submit preview.avatarDataUrl. For multi-persona Markdown/pack imports where the parser now produces only avatar_ref (for example app-avatar:pollies-12) and avatar_data_url is null, every selected persona is saved without its avatar even though the preview carried one.
Useful? React with 👍 / 👎.
Signed-off-by: Taylor Ho <taylorkmho@gmail.com> Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
Merge main into kennylopez-agent-avatar-plumbing to clear the stale Desktop Core file-size check. main and this branch independently grew nest.rs and types.rs to their caps, so the merged state tipped 1-2 lines over. Bumps the two check-file-sizes.mjs overrides (nest.rs 1447->1449, adds types.rs 1002) per the existing TEMP-override convention; no avatar logic touched. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Restack derive-once onto the #1202 avatar-plumbing branch and subtract #1202's avatar-clear mechanism. The avatar is a command-derived default icon, so it is derived once at create (resolve_created_avatar_url) and stored as a plain Option<String>; there is no reconcile-time backfill to guard against. Removed: - avatar_url_cleared: bool field and all initializer/test sites - profile_sync_avatar_url .or_else(managed_agent_avatar_url) re-derive - dead Fizz-retirement / legacy-recovery / command-fallback helpers - now-unused app: &AppHandle param on reconcile_agent_profile Leaves #1202's non-avatar plumbing intact (persona/team model fields, app-avatar: prefix parsing, imported app-avatar handling). All three icon-resurrection vectors are now gone. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
…ackfill (#1233) Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
…1235) Signed-off-by: Taylor Ho <taylorkmho@gmail.com> Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com> Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
Cleanup summary — frankenstein trimmed 🧹This branch grew a bit beyond its original intent: the live What's the keeper (the live core)
What got trimmedCleanup commits on this branch#1235 — drop orphaned #1236 — drop dead How to verify
Re-adding selectable avatar sets laterSee #1132 for the breadcrumb. When that feature lands, the resolver + id→image registry + picker UI get rebuilt alongside the plumbing — these allowlists/refs would be reconstructed as part of that work, not before it. |
|
Chatted with @klopez4212 after and realized that there wasn't a lot of intent behind this particular shard of the old PR. Closing—we can address any of the related issues in the future if they come up. |
Summary
Notes
Validation
cd desktop && pnpm checkcd desktop && pnpm typecheckcargo fmt --manifest-path desktop/src-tauri/Cargo.toml --checkgit diff --checkNot Run
cargo test --manifest-path desktop/src-tauri/Cargo.toml persona_card --libis blocked locally by the missingbinaries/buzz-acp-aarch64-apple-darwinsidecar.