From 7ea9c03137959924dfd9f8082a80e16ec55f54d7 Mon Sep 17 00:00:00 2001 From: Cameron Pfiffer Date: Tue, 27 Jan 2026 16:19:20 -0800 Subject: [PATCH] fix: save agent ID after first interaction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agent ID is only available after initialization (first message sent), so move the save logic to after the interaction completes. 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta --- examples/bug-fixer/cli.ts | 17 +++++++++-------- examples/bug-fixer/fixer.ts | 7 +++++++ examples/file-organizer/cli.ts | 16 ++++++++-------- examples/release-notes/cli.ts | 10 +++++----- 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/examples/bug-fixer/cli.ts b/examples/bug-fixer/cli.ts index 4f5f4f4..a47b208 100755 --- a/examples/bug-fixer/cli.ts +++ b/examples/bug-fixer/cli.ts @@ -21,6 +21,7 @@ import { interactiveMode, showStatus, reset, + sayHello, } from './fixer.js'; async function main() { @@ -53,14 +54,6 @@ async function main() { // Get or create the agent const agent = await getOrCreateAgent(state); - - // Save agent ID if new - if (!state.agentId && agent.agentId) { - state.agentId = agent.agentId; - await saveState(state); - console.log(`\x1b[90m[Agent: ${agent.agentId}]\x1b[0m`); - console.log(`\x1b[90m[→ https://app.letta.com/agents/${agent.agentId}]\x1b[0m\n`); - } if (positionals.length > 0) { // Fix the specified bug @@ -71,6 +64,14 @@ async function main() { await interactiveMode(agent, state); } + // Save agent ID after first interaction (when it becomes available) + if (!state.agentId && agent.agentId) { + state.agentId = agent.agentId; + await saveState(state); + console.log(`\x1b[90m[Agent saved: ${agent.agentId}]\x1b[0m`); + console.log(`\x1b[90m[→ https://app.letta.com/agents/${agent.agentId}]\x1b[0m\n`); + } + agent.close(); } diff --git a/examples/bug-fixer/fixer.ts b/examples/bug-fixer/fixer.ts index 147da55..67ce74d 100644 --- a/examples/bug-fixer/fixer.ts +++ b/examples/bug-fixer/fixer.ts @@ -245,6 +245,13 @@ export async function showStatus(state: BugFixerState): Promise { console.log(''); } +/** + * Say hello + */ +export function sayHello(): void { + console.log('Hello'); +} + /** * Reset state */ diff --git a/examples/file-organizer/cli.ts b/examples/file-organizer/cli.ts index 34c3e84..13efa15 100755 --- a/examples/file-organizer/cli.ts +++ b/examples/file-organizer/cli.ts @@ -57,14 +57,6 @@ async function main() { // Get or create the agent const agent = await getOrCreateAgent(state); - - // Save agent ID if new - if (!state.agentId && agent.agentId) { - state.agentId = agent.agentId; - await saveState(state); - console.log(`\x1b[90m[Agent: ${agent.agentId}]\x1b[0m`); - console.log(`\x1b[90m[→ https://app.letta.com/agents/${agent.agentId}]\x1b[0m\n`); - } if (positionals.length > 0) { // Organize the specified directory @@ -75,6 +67,14 @@ async function main() { await interactiveMode(agent, state); } + // Save agent ID after first interaction (when it becomes available) + if (!state.agentId && agent.agentId) { + state.agentId = agent.agentId; + await saveState(state); + console.log(`\x1b[90m[Agent saved: ${agent.agentId}]\x1b[0m`); + console.log(`\x1b[90m[→ https://app.letta.com/agents/${agent.agentId}]\x1b[0m\n`); + } + agent.close(); } diff --git a/examples/release-notes/cli.ts b/examples/release-notes/cli.ts index 8e60ee0..ee1bb89 100755 --- a/examples/release-notes/cli.ts +++ b/examples/release-notes/cli.ts @@ -66,17 +66,17 @@ async function main() { // Get or create the agent const agent = await getOrCreateAgent(state); - - // Save agent ID if new + + await generateReleaseNotes(agent, state, fromRef, toRef, values.output); + + // Save agent ID after first interaction (when it becomes available) if (!state.agentId && agent.agentId) { state.agentId = agent.agentId; await saveState(state); - console.log(`\x1b[90m[Agent: ${agent.agentId}]\x1b[0m`); + console.log(`\x1b[90m[Agent saved: ${agent.agentId}]\x1b[0m`); console.log(`\x1b[90m[→ https://app.letta.com/agents/${agent.agentId}]\x1b[0m\n`); } - await generateReleaseNotes(agent, state, fromRef, toRef, values.output); - agent.close(); }