From 0a270f2c5971e640fd08b815acb0363b0e8c3076 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 8 May 2026 15:17:19 +0800 Subject: [PATCH] fix: DBPools Singleton - manually set db.databases after getting instance --- .../__pycache__/core.cpython-311.pyc | Bin 43623 -> 43763 bytes harnessed_reasoning/core.py | 28 +++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/harnessed_reasoning/__pycache__/core.cpython-311.pyc b/harnessed_reasoning/__pycache__/core.cpython-311.pyc index ca7eeaa1c757b7a82b25ad34cd1c1d72088838dc..ded914f9dfa4ceceda5a77afe1e5a84995d7f3e8 100644 GIT binary patch delta 3020 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 PX!9S=U)=$PKN$ZH8DRo- diff --git a/harnessed_reasoning/core.py b/harnessed_reasoning/core.py index ed80d9c..802bd63 100644 --- a/harnessed_reasoning/core.py +++ b/harnessed_reasoning/core.py @@ -128,7 +128,8 @@ class HermesReasoningEngine: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + db.databases = config.databases async with db.sqlorContext(dbname) as sor: where = {} if user_id: @@ -200,8 +201,9 @@ class HermesReasoningEngine: skills = [] try: config = getConfig() - db = DBPools(config.databases) - async with db.sqlorContext('harnessed_reasoning') as sor: + db = DBPools() + db.databases = config.databases + async with db.sqlorContext(dbname) as sor: for kw in list(keywords)[:3]: rows = await sor.R('hermes_skills', { 'user_id': user_id, @@ -634,8 +636,9 @@ class HermesReasoningEngine: 'updated_at': datetime.now(), } config = getConfig() - db = DBPools(config.databases) - async with db.sqlorContext('harnessed_reasoning') as sor: + db = DBPools() + db.databases = config.databases + async with db.sqlorContext(dbname) as sor: res = await sor.C('harnessed_reasoning_sessions', data) info(f"Session stored: {session_id}, result={res}") except Exception as e: @@ -647,8 +650,9 @@ class HermesReasoningEngine: """Update session status.""" try: config = getConfig() - db = DBPools(config.databases) - async with db.sqlorContext('harnessed_reasoning') as sor: + db = DBPools() + db.databases = config.databases + async with db.sqlorContext(dbname) as sor: await sor.U('harnessed_reasoning_sessions', { 'id': session_id, 'status': status, @@ -671,8 +675,9 @@ class HermesReasoningEngine: try: config = getConfig() - db = DBPools(config.databases) - async with db.sqlorContext('harnessed_reasoning') as sor: + db = DBPools() + db.databases = config.databases + async with db.sqlorContext(dbname) as sor: filters = {'id': session_id} if user_id: filters['user_id'] = user_id @@ -709,8 +714,9 @@ class HermesReasoningEngine: try: config = getConfig() - db = DBPools(config.databases) - async with db.sqlorContext('harnessed_reasoning') as sor: + db = DBPools() + db.databases = config.databases + async with db.sqlorContext(dbname) as sor: rows = await sor.R('harnessed_reasoning_sessions', {'user_id': user_id, 'sort': 'created_at desc'}) rows = rows or [] rows = rows[offset:offset + limit]