From 34fd3ada5c436a58390ffc3aea74453a832e76f4 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 8 May 2026 15:17:17 +0800 Subject: [PATCH] fix: DBPools Singleton - manually set db.databases after getting instance --- harnessed_agent/core.py | 36 ++++++++++++++++++++++++--------- harnessed_agent/orchestrator.py | 20 +++++++++++++----- 2 files changed, 42 insertions(+), 14 deletions(-) diff --git a/harnessed_agent/core.py b/harnessed_agent/core.py index 30cdec1..94c86bb 100644 --- a/harnessed_agent/core.py +++ b/harnessed_agent/core.py @@ -363,7 +363,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: # High priority memories ns = {'user_id': user_id, 'priority__gte': self.config.high_priority_threshold, 'sort': 'priority desc,last_accessed desc'} @@ -418,7 +420,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: memories = await sor.R('hermes_memory', {'id': memory_id, 'user_id': user_id}) if memories: @@ -442,7 +446,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: # Calculate cutoff date cutoff_date = datetime.now().replace( @@ -549,7 +555,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: if action == "add": memory_id = str(uuid.uuid4()) @@ -665,7 +673,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: filters = {'user_id': user_id} if query: @@ -710,7 +720,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: if action == "view": filters = {'user_id': user_id, 'name': name} @@ -797,7 +809,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: if action == "create": # Create new remote skill configuration @@ -1205,7 +1219,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: workflows = await sor.R('hermes_workflows', {'sort': 'created_at desc', 'user_id': user_id}) return {"success": True, "workflows": workflows or [], "user_id": user_id} @@ -1220,7 +1236,9 @@ class HermesAgent: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: filters = {'user_id': user_id} if workflow_id: diff --git a/harnessed_agent/orchestrator.py b/harnessed_agent/orchestrator.py index 4b0600c..f7a1f4e 100644 --- a/harnessed_agent/orchestrator.py +++ b/harnessed_agent/orchestrator.py @@ -88,7 +88,9 @@ class HermesOrchestrator: workflow_id = str(uuid.uuid4()) config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: data = { 'id': workflow_id, @@ -123,7 +125,9 @@ class HermesOrchestrator: # Verify workflow exists and belongs to user config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: workflows = await sor.R('hermes_workflows', { 'id': workflow_id, @@ -189,7 +193,9 @@ class HermesOrchestrator: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: # Load workflow workflows = await sor.R('hermes_workflows', { @@ -486,7 +492,9 @@ class HermesOrchestrator: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: data = { 'id': execution_id, @@ -509,7 +517,9 @@ class HermesOrchestrator: try: config = getConfig() - db = DBPools(config.databases) + db = DBPools() + + db.databases = config.databases async with db.sqlorContext('harnessed_agent') as sor: end_time = datetime.now() data = {