fix(desktop): allow editing built-in agents (#1928)

Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
This commit is contained in:
Wes
2026-07-15 18:49:17 -07:00
committed by GitHub
co-authored by Pinky
parent 32957692eb
commit 202201f3aa
10 changed files with 77 additions and 107 deletions
@@ -97,7 +97,7 @@ test("allows agents to update only personal, editable profiles", () => {
);
assert.equal(
requestTargetsEditablePersona({ isBuiltIn: true, sourceTeam: null }),
false,
true,
);
assert.equal(
requestTargetsEditablePersona({ isBuiltIn: false, sourceTeam: "team" }),
@@ -137,7 +137,7 @@ export function parseAgentManagementRequest(
export function requestTargetsEditablePersona(
persona: AgentPersona | undefined,
): persona is AgentPersona {
return Boolean(persona && !persona.isBuiltIn && !persona.sourceTeam);
return Boolean(persona && !persona.sourceTeam);
}
export function createInputFromRequest(
@@ -41,7 +41,7 @@ export function PersonaActionsMenu({
onDelete: (persona: AgentPersona) => void;
}) {
const disabled = isActionPending || isPending;
const canEdit = !persona.isBuiltIn && !persona.sourceTeam;
const canEdit = !persona.sourceTeam;
return (
<DropdownMenu modal={false}>
@@ -322,8 +322,7 @@ export function UserProfilePanel({
// covering both locally managed agents and declared-owned relay agents.
const canEditAgent =
isOwner === true &&
(managedAgent !== undefined ||
(resolvedPersona !== undefined && !resolvedPersona.isBuiltIn));
(managedAgent !== undefined || resolvedPersona !== undefined);
const memoryQuery = useAgentMemoryQuery(effectivePubkey, {
enabled: viewerIsOwner && Boolean(effectivePubkey),
});
@@ -395,7 +394,7 @@ export function UserProfilePanel({
});
const handleEditAgent = React.useCallback(() => {
if (resolvedPersona && !resolvedPersona.isBuiltIn) {
if (resolvedPersona) {
setPersonaDialogState(editPersonaDialogState(resolvedPersona));
return;
}
@@ -567,7 +566,7 @@ export function UserProfilePanel({
);
const handleEditPersona = React.useCallback(() => {
if (!resolvedPersona || resolvedPersona.isBuiltIn) return;
if (!resolvedPersona) return;
setPersonaDialogState(editPersonaDialogState(resolvedPersona));
}, [resolvedPersona]);
@@ -737,8 +736,7 @@ export function UserProfilePanel({
resolvedPersona,
);
const canManagePersona = isOwner === true && resolvedPersona !== undefined;
const canEditPersona =
canManagePersona && resolvedPersona?.isBuiltIn !== true;
const canEditPersona = canManagePersona;
const canDeletePersona = canManagePersona && !resolvedPersona?.sourceTeam;
const archiveActions = useIdentityArchive(effectivePubkey);
const agentSettingsMenu = (