- {/* Avatar is display-only — UpdateManagedAgentInput has no
- avatarUrl field, so edits can't be persisted yet. Keep the
- preview disabled until the backend supports avatar updates. */}
+ {/* Avatar edits persist via UpdateManagedAgentInput.avatarUrl —
+ resolved to a hosted URL on submit and re-published to the
+ agent's kind:0 profile when it changes. */}
setAvatarUrl("")}
onUploadPendingChange={setIsAvatarUploadPending}
diff --git a/desktop/src/shared/api/types.ts b/desktop/src/shared/api/types.ts
index d42097b383..3a7ad1f089 100644
--- a/desktop/src/shared/api/types.ts
+++ b/desktop/src/shared/api/types.ts
@@ -675,6 +675,12 @@ export type UpdateManagedAgentInput = {
provider?: string | null;
systemPrompt?: string | null;
mcpToolsets?: string | null;
+ /**
+ * Absent = don't touch. null = clear to the harness default avatar.
+ * A hosted URL sets it. Data URIs must be resolved to a hosted URL
+ * (via resolveManagedAgentAvatarUrl) before being sent.
+ */
+ avatarUrl?: string | null;
/** Absent = don't touch. Present = replace the env_vars map entirely. */
envVars?: Record;
parallelism?: number;