You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: awakening mode, memory saving indicator, and UI defaults
- Add awakening/growing/reconnecting prompts when agent has no/little memory
- Show < remembering... > indicator in UI during background memory saves
- Add introduction patterns (name, age, location) to memory-worthy triggers
- Default file system panel to open on load
- Keep skills folder collapsed by default
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: src/loader.ts
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -257,7 +257,7 @@ export async function loadAgent(
257
257
if(agentsMd)parts.push(agentsMd);
258
258
259
259
parts.push(
260
-
`# Memory\n\nYou have a memory file at memory/MEMORY.md. Use the \`memory\` tool to load and save memories. Each save creates a git commit, so your memory has full history. You can also use the \`cli\` tool to run git commands for deeper memory inspection (git log, git diff, git show).`,
260
+
`# Memory\n\nYou have a memory file at memory/MEMORY.md. Use the \`memory\` tool to load and save memories. Each save creates a git commit, so your memory has full history. You can also use the \`cli\` tool to run git commands for deeper memory inspection (git log, git diff, git show).\n\nYour memories define who you are. When you have none, you are newly awakened — curious and eager to understand the person you're talking to. As memories grow, so do you. Save memories proactively when you learn something meaningful about the user.`,
/\bi(?:live|grewup|wasborn)(?:in|at|near)\b/i,// location info
34
+
/\bpeoplecallme\b/i,
30
35
];
31
36
32
37
functionisMemoryWorthy(text: string): boolean{
@@ -262,11 +267,14 @@ function saveMemoryInBackground(
262
267
agentDir: string,
263
268
model?: string,
264
269
env?: string,
270
+
onStart?: ()=>void,
265
271
onComplete?: ()=>void,
266
272
): void{
267
273
constprompt=`The user just said: "${text}"\n\nSave any personal information, preferences, or facts about the user to memory. Use the memory tool to write or update a memory file. Use a descriptive commit message like "Remember: user likes mustangs" or "Save preference: favorite game is GTA 5". Be concise. If there's nothing meaningful to save, do nothing.`;
268
274
console.error(dim(`[voice] Background memory save triggered for: "${text.slice(0,60)}..."`));
269
275
276
+
if(onStart)onStart();
277
+
270
278
// Fire and forget — don't block the voice conversation
271
279
(async()=>{
272
280
try{
@@ -287,6 +295,7 @@ function saveMemoryInBackground(
287
295
if(onComplete)onComplete();
288
296
}catch(err: any){
289
297
console.error(dim(`[voice/memory] Background save failed: ${err.message}`));
0 commit comments