personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Enable datetime context for agents and clean up backlog

Add instructions.now and instructions.day to agent configs that need
temporal awareness (entities, todos, newsletter, default chat, importer).
Update dream.py to always pass day in request config for both agents and
generators. Migrate preamble templates from $date to $day/$day_YYYYMMDD.
Remove completed backlog items.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+14 -17
+1 -1
apps/entities/muse/entities_review.md
··· 8 8 "tools": "journal, entities", 9 9 "multi_facet": true, 10 10 "group": "Entities", 11 - "instructions": {"system": "journal", "facets": true} 11 + "instructions": {"system": "journal", "facets": true, "now": true, "day": true} 12 12 13 13 } 14 14
+1 -1
apps/entities/muse/entity_assist.md
··· 5 5 "color": "#00695c", 6 6 "tools": "journal, entities", 7 7 "group": "Entities", 8 - "instructions": {"system": "journal", "facets": true} 8 + "instructions": {"system": "journal", "facets": true, "now": true} 9 9 10 10 } 11 11
+1 -1
apps/entities/muse/entity_describe.md
··· 5 5 "color": "#26a69a", 6 6 "tools": "journal", 7 7 "group": "Entities", 8 - "instructions": {"system": "journal", "facets": true} 8 + "instructions": {"system": "journal", "facets": true, "now": true} 9 9 10 10 } 11 11
+1 -1
apps/todos/muse/weekly.md
··· 5 5 "color": "#f4511e", 6 6 "tools": "journal, todo", 7 7 "group": "Todos", 8 - "instructions": {"system": "journal", "facets": true} 8 + "instructions": {"system": "journal", "facets": true, "now": true} 9 9 10 10 } 11 11
-3
docs/BACKLOG.md
··· 14 14 15 15 - [ ] Update supervisor/dream interaction to use dynamic daily schedule from daily schedule agent output 16 16 - [ ] Create segment agent for voiceprint detection and updating via hooks 17 - - [ ] Refactor think/agents.py to use run_tools for all generation 18 - - [ ] Evaluate moving cortex.py logic into agents.py for better separation of concerns 19 - - [ ] Pass 'day' context through to tools in daily agents for correct storage location 20 17 - [ ] Surface named hook outputs in agents app and sol muse CLI 21 18 - [ ] Make daily schedule agents idempotent with state tracking (show existing vs new segments) 22 19 - [ ] Add activities attach/update MCP tools for facet curation (like entity tools)
+1 -1
muse/default.md
··· 6 6 "label": "Chat Messages", 7 7 "group": "Apps", 8 8 "tools": "journal, todo, entities", 9 - "instructions": {"system": "journal", "facets": true} 9 + "instructions": {"system": "journal", "facets": true, "now": true} 10 10 11 11 } 12 12
+1 -1
muse/facet_newsletter.md
··· 7 7 "priority": 40, 8 8 "multi_facet": true, 9 9 "tools": "journal, facets", 10 - "instructions": {"system": "journal", "facets": true} 10 + "instructions": {"system": "journal", "facets": true, "now": true, "day": true} 11 11 12 12 } 13 13
+1 -1
muse/importer.md
··· 5 5 "color": "#1976d2", 6 6 "extract": false, 7 7 "output": "md", 8 - "instructions": {"system": "journal", "facets": true} 8 + "instructions": {"system": "journal", "facets": true, "now": true} 9 9 10 10 } 11 11
+5 -5
think/dream.py
··· 255 255 256 256 logging.info(f"Spawning {prompt_name} for facet: {facet_name}") 257 257 258 - request_config: dict = {"facet": facet_name} 258 + # Always pass day for instructions.day context 259 + request_config: dict = {"facet": facet_name, "day": day} 259 260 if is_generator: 260 - request_config["day"] = day 261 261 request_config["output"] = config.get("output", "md") 262 262 if force: 263 263 request_config["force"] = True ··· 284 284 # Regular single-instance prompt 285 285 logging.info(f"Spawning {prompt_name}") 286 286 287 - request_config = {} 287 + # Always pass day for instructions.day context 288 + request_config: dict = {"day": day} 288 289 if is_generator: 289 - request_config["day"] = day 290 290 request_config["output"] = config.get("output", "md") 291 291 if force: 292 292 request_config["force"] = True ··· 303 303 agent_id = cortex_request( 304 304 prompt=prompt, 305 305 name=prompt_name, 306 - config=request_config if request_config else None, 306 + config=request_config, 307 307 ) 308 308 spawned.append((agent_id, prompt_name, config)) 309 309 logging.info(f"Started {prompt_name} (ID: {agent_id})")
+1 -1
think/templates/daily_preamble.md
··· 1 - You are an expert analyst tasked with analyzing $preferred's full workday transcript from **$date**. The transcript contains both audio conversations and screen activity data, organized into recording segments with timestamps. 1 + You are an expert analyst tasked with analyzing $preferred's full workday transcript from **$day** ($day_YYYYMMDD). The transcript contains both audio conversations and screen activity data, organized into recording segments with timestamps. 2 2 3 3 You will be given the transcripts followed by a detailed request for how to process them. Follow those instructions carefully. Take time to consider all of the nuance of the interactions from the day, think through how best to prioritize the most important aspects, and formulate the best approach for each step of the analysis.
+1 -1
think/templates/segment_preamble.md
··· 1 - You are analyzing a recording segment from $preferred's workday on **$date**, covering **$segment_start to $segment_end**. This segment captures a specific time window of activity through audio transcription and screen recording. 1 + You are analyzing a recording segment from $preferred's workday on **$day** ($day_YYYYMMDD), covering **$segment_start to $segment_end**. This segment captures a specific time window of activity through audio transcription and screen recording. 2 2 3 3 Focus your analysis on this discrete period - its context, activities, and significance within the broader day.