diff --git a/memori/core/memory.py b/memori/core/memory.py index 843faee..7cc52cb 100644 --- a/memori/core/memory.py +++ b/memori/core/memory.py @@ -1213,7 +1213,7 @@ def _get_auto_ingest_context(self, user_input: str) -> list[dict[str, Any]]: results[:3] ): # Log first 3 results for debugging logger.debug( - f"Auto-ingest: Result {i+1}: {type(result)} with keys: {list(result.keys()) if isinstance(result, dict) else 'N/A'}" + f"Auto-ingest: Result {i + 1}: {type(result)} with keys: {list(result.keys()) if isinstance(result, dict) else 'N/A'}" ) except Exception as db_search_e: logger.error(f"Auto-ingest: Database search failed: {db_search_e}") diff --git a/memori/database/mongodb_manager.py b/memori/database/mongodb_manager.py index 20c0503..ba48307 100644 --- a/memori/database/mongodb_manager.py +++ b/memori/database/mongodb_manager.py @@ -928,6 +928,28 @@ def mark_conscious_memories_processed( except Exception as e: logger.error(f"Failed to mark conscious memories processed: {e}") + def _check_milestone(self, memory_count: int): + """ + Check and celebrate memory storage milestones to encourage user engagement. + Displays celebration messages at key milestones: 10, 50, 100, 500, 1000 memories. + + Args: + memory_count: Current count of long-term memories + """ + milestones = [10, 50, 100, 500, 1000] + + if memory_count in milestones: + celebration_msg = ( + f"\n{'=' * 60}\n" + f"🎉 Milestone Achieved: {memory_count} memories stored!\n" + f"{'=' * 60}\n" + f"⭐️ Loving Memori? Give us a star on GitHub!\n" + f"👉 https://github.com/GibsonAI/memori\n" + f"Your support helps us build better open AI memory tools ❤️\n" + f"{'=' * 60}\n" + ) + logger.info(celebration_msg) + def store_long_term_memory_enhanced( self, memory: ProcessedLongTermMemory, chat_id: str, namespace: str = "default" ) -> str: @@ -1000,6 +1022,13 @@ def store_long_term_memory_enhanced( collection.insert_one(document) logger.debug(f"Stored enhanced long-term memory {memory_id}") + + # Get current memory count and check for milestones + total_memories = collection.count_documents({"namespace": namespace}) + + # Celebrate milestone if reached + self._check_milestone(total_memories) + return memory_id except Exception as e: diff --git a/memori/database/sqlalchemy_manager.py b/memori/database/sqlalchemy_manager.py index d4b5b9f..1150632 100644 --- a/memori/database/sqlalchemy_manager.py +++ b/memori/database/sqlalchemy_manager.py @@ -572,6 +572,28 @@ def get_chat_history( except SQLAlchemyError as e: raise DatabaseError(f"Failed to get chat history: {e}") + def _check_milestone(self, memory_count: int): + """ + Check and celebrate memory storage milestones to encourage user engagement. + Displays celebration messages at key milestones: 10, 50, 100, 500, 1000 memories. + + Args: + memory_count: Current count of long-term memories + """ + milestones = [10, 50, 100, 500, 1000] + + if memory_count in milestones: + celebration_msg = ( + f"\n{'=' * 60}\n" + f"🎉 Milestone Achieved: {memory_count} memories stored!\n" + f"{'=' * 60}\n" + f"⭐️ Loving Memori? Give us a star on GitHub!\n" + f"👉 https://github.com/GibsonAI/memori\n" + f"Your support helps us build better open AI memory tools ❤️\n" + f"{'=' * 60}\n" + ) + logger.info(celebration_msg) + def store_long_term_memory_enhanced( self, memory: ProcessedLongTermMemory, chat_id: str, namespace: str = "default" ) -> str: @@ -618,6 +640,17 @@ def store_long_term_memory_enhanced( session.commit() logger.debug(f"Stored enhanced long-term memory {memory_id}") + + # Get current memory count and check for milestones + total_memories = ( + session.query(LongTermMemory) + .filter(LongTermMemory.namespace == namespace) + .count() + ) + + # Celebrate milestone if reached + self._check_milestone(total_memories) + return memory_id except SQLAlchemyError as e: