diff --git a/src/timmy/memory_system.py b/src/timmy/memory_system.py index fe01d5ef..76ddd5c3 100644 --- a/src/timmy/memory_system.py +++ b/src/timmy/memory_system.py @@ -46,6 +46,64 @@ DB_PATH = PROJECT_ROOT / "data" / "memory.db" # ─────────────────────────────────────────────────────────────────────────────── +_DEFAULT_HOT_MEMORY_TEMPLATE = """\ +# Timmy Hot Memory + +> Working RAM — always loaded, ~300 lines max, pruned monthly +> Last updated: {date} + +--- + +## Current Status + +**Agent State:** Operational +**Mode:** Development +**Active Tasks:** 0 +**Pending Decisions:** None + +--- + +## Standing Rules + +1. **Sovereignty First** — No cloud dependencies +2. **Local-Only Inference** — Ollama on localhost +3. **Privacy by Design** — Telemetry disabled +4. **Tool Minimalism** — Use tools only when necessary +5. **Memory Discipline** — Write handoffs at session end + +--- + +## Agent Roster + +| Agent | Role | Status | +|-------|------|--------| +| Timmy | Core | Active | + +--- + +## User Profile + +**Name:** (not set) +**Interests:** (to be learned) + +--- + +## Key Decisions + +(none yet) + +--- + +## Pending Actions + +- [ ] Learn user's name + +--- + +*Prune date: {prune_date}* +""" + + @contextmanager def get_connection() -> Generator[sqlite3.Connection, None, None]: """Get database connection to unified memory database.""" @@ -732,66 +790,12 @@ class HotMemory: logger.debug( "HotMemory._create_default() - creating default MEMORY.md for backward compatibility" ) - default_content = """# Timmy Hot Memory - -> Working RAM — always loaded, ~300 lines max, pruned monthly -> Last updated: {date} - ---- - -## Current Status - -**Agent State:** Operational -**Mode:** Development -**Active Tasks:** 0 -**Pending Decisions:** None - ---- - -## Standing Rules - -1. **Sovereignty First** — No cloud dependencies -2. **Local-Only Inference** — Ollama on localhost -3. **Privacy by Design** — Telemetry disabled -4. **Tool Minimalism** — Use tools only when necessary -5. **Memory Discipline** — Write handoffs at session end - ---- - -## Agent Roster - -| Agent | Role | Status | -|-------|------|--------| -| Timmy | Core | Active | - ---- - -## User Profile - -**Name:** (not set) -**Interests:** (to be learned) - ---- - -## Key Decisions - -(none yet) - ---- - -## Pending Actions - -- [ ] Learn user's name - ---- - -*Prune date: {prune_date}* -""".format( - date=datetime.now(UTC).strftime("%Y-%m-%d"), - prune_date=(datetime.now(UTC).replace(day=25)).strftime("%Y-%m-%d"), + now = datetime.now(UTC) + content = _DEFAULT_HOT_MEMORY_TEMPLATE.format( + date=now.strftime("%Y-%m-%d"), + prune_date=now.replace(day=25).strftime("%Y-%m-%d"), ) - - self.path.write_text(default_content) + self.path.write_text(content) logger.info("HotMemory: Created default MEMORY.md")