From 77af4fc4fb24d5111a2b11d1cc9150465aaf35e2 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Wed, 4 Nov 2026 08:16:53 +0100 Subject: [PATCH] docs(server): name the metadata gap when a handle-less agent is recreated on load --- packages/server/src/server/agent/agent-loading.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/server/src/server/agent/agent-loading.ts b/packages/server/src/server/agent/agent-loading.ts index 637b134f20..b846635a9b 100644 --- a/packages/server/src/server/agent/agent-loading.ts +++ b/packages/server/src/server/agent/agent-loading.ts @@ -132,6 +132,10 @@ export async function ensureAgentLoaded( if (!config) { throw new Error(`Agent ${agentId} references unavailable provider '${record.provider}'`); } + // Known gap: `record` was read before this create, and createAgent deletes the stored + // state outside the agent's lifecycle lane. A setMetadata that saves between the read and + // the delete is overwritten by this stale metadata. The fix is to read and delete the + // stored record inside the lane (createAgentInternal), which is a lifecycle change. snapshot = await deps.agentManager.createAgent(config, agentId, { labels: record.labels, metadata: record.metadata,