From 414affedd088b9323c29dff12e42f73034a3ca31 Mon Sep 17 00:00:00 2001 From: Charles Packer Date: Fri, 16 Jan 2026 13:04:07 -0800 Subject: [PATCH] fix: prevent subagents from polluting LRU settings (#565) Co-authored-by: Letta --- src/headless.ts | 22 +++++++++++++--------- src/index.ts | 20 ++++++++++++-------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/headless.ts b/src/headless.ts index 6a839e4..c09fe94 100644 --- a/src/headless.ts +++ b/src/headless.ts @@ -529,15 +529,19 @@ export async function handleHeadlessCommand( } // Save session (agent + conversation) to both project and global settings - await settingsManager.loadLocalProjectSettings(); - settingsManager.setLocalLastSession( - { agentId: agent.id, conversationId }, - process.cwd(), - ); - settingsManager.setGlobalLastSession({ - agentId: agent.id, - conversationId, - }); + // Skip for subagents - they shouldn't pollute the LRU settings + const isSubagent = process.env.LETTA_CODE_AGENT_ROLE === "subagent"; + if (!isSubagent) { + await settingsManager.loadLocalProjectSettings(); + settingsManager.setLocalLastSession( + { agentId: agent.id, conversationId }, + process.cwd(), + ); + settingsManager.setGlobalLastSession({ + agentId: agent.id, + conversationId, + }); + } // Ensure the agent has the required skills blocks (for backwards compatibility) const createdBlocks = await ensureSkillsBlocks(agent.id); diff --git a/src/index.ts b/src/index.ts index 63a5ef8..0f2376d 100755 --- a/src/index.ts +++ b/src/index.ts @@ -1458,14 +1458,18 @@ async function main(): Promise { } // Save the session (agent + conversation) to settings - settingsManager.setLocalLastSession( - { agentId: agent.id, conversationId: conversationIdToUse }, - process.cwd(), - ); - settingsManager.setGlobalLastSession({ - agentId: agent.id, - conversationId: conversationIdToUse, - }); + // Skip for subagents - they shouldn't pollute the LRU settings + const isSubagent = process.env.LETTA_CODE_AGENT_ROLE === "subagent"; + if (!isSubagent) { + settingsManager.setLocalLastSession( + { agentId: agent.id, conversationId: conversationIdToUse }, + process.cwd(), + ); + settingsManager.setGlobalLastSession({ + agentId: agent.id, + conversationId: conversationIdToUse, + }); + } setAgentId(agent.id); setAgentState(agent);