fix: ignore temporary skill-agent names during identity recovery

This commit is contained in:
Greg Clark
2026-04-11 21:01:33 -07:00
parent e59dcbe520
commit c0e301c69b
@@ -71,7 +71,8 @@ const parseIdentityNameFromContent = (content: string): string | null => {
const match = /^name\s*:\s*(.+)$/i.exec(normalized);
if (!match) continue;
const value = match[1]?.trim().replace(/^[*_]+|[*_]+$/g, "").trim() ?? "";
if (value) return value;
if (!value || isTemporarySkillAgentName(value)) continue;
return value;
}
return null;
};
@@ -192,7 +193,12 @@ export async function hydrateAgentFleetFromGateway(params: {
agentsResult.agents.map(async (agent) => {
const identityName =
typeof agent.identity?.name === "string" ? agent.identity.name.trim() : "";
if (identityName) {
const listedName = typeof agent.name === "string" ? agent.name.trim() : "";
const needsIdentityRecovery =
!identityName ||
isTemporarySkillAgentName(identityName) ||
isTemporarySkillAgentName(listedName);
if (!needsIdentityRecovery) {
return agent;
}
try {
@@ -207,11 +213,12 @@ export async function hydrateAgentFleetFromGateway(params: {
return agent;
}
const recoveredName = parseIdentityNameFromContent(record.content);
if (!recoveredName) {
if (!recoveredName || isTemporarySkillAgentName(recoveredName)) {
return agent;
}
return {
...agent,
name: recoveredName,
identity: {
...(agent.identity ?? {}),
name: recoveredName,