[
  {
    "prompt": "Split src/timmy/memory_system.py (1543 lines) into submodules under src/timmy/memory/. The goal is that no module exceeds 400 lines after the split. memory_system.py must re-export ALL public names so that existing importers don't break.\n\nPLAN:\n1. Create src/timmy/memory/db.py - Database connection, schema, migrations, path constants, data classes (lines 11-292 of memory_system.py)\n2. Create src/timmy/memory/crud.py - CRUD operations + personal facts + reflections (lines 294-691)\n3. Create src/timmy/memory/semantic.py - SemanticMemory + MemorySearcher classes (lines 924-1201)\n4. Create src/timmy/memory/consolidation.py - HotMemory + VaultMemory classes (lines 693-922, including _DEFAULT_HOT_MEMORY_TEMPLATE)\n5. Create src/timmy/memory/tools.py - Tool functions (memory_search, memory_read, memory_store, memory_forget, jot_note, log_decision) (lines 1204-1447)\n6. Slim down memory_system.py to: MemorySystem class + singleton + re-exports of ALL public names\n\nDEPENDENCY ORDER (no circular imports):\n- db.py imports: config.settings, timmy.memory.embeddings\n- crud.py imports: db.py stuff, timmy.memory.embeddings (embed_text, cosine_similarity, _keyword_overlap)\n- semantic.py imports: db.py stuff (DB_PATH, get_connection), timmy.memory.embeddings\n- consolidation.py imports: crud.py (recall_personal_facts, recall_last_reflection), db.py (HOT_MEMORY_PATH, VAULT_PATH, _DEFAULT_HOT_MEMORY_TEMPLATE)\n- tools.py imports: semantic.py (SemanticMemory), crud.py (search_memories, store_memory, delete_memory)\n- memory_system.py imports: everything from all submodules + has MemorySystem class\n\nCRITICAL: memory_system.py must re-export ALL these names at module level:\nget_connection, get_conn, _ensure_schema, _get_table_columns, _migrate_episodes, _migrate_chunks, _drop_legacy_table, _migrate_schema, MemoryEntry, MemoryChunk, store_memory, _build_search_filters, _fetch_memory_candidates, _row_to_entry, _score_and_filter, search_memories, delete_memory, get_memory_stats, prune_memories, g",
    "chosen": "",
    "session": "session_20260323_221036_fe55df.json"
  }
]