fix: DBPools(config.databases) instead of DBPools() for subprocess context

This commit is contained in:
yumoqing 2026-05-08 14:49:17 +08:00
parent fe6666b665
commit 22820b85cd
2 changed files with 52 additions and 14 deletions

View File

@ -38,6 +38,11 @@ except ImportError:
def __init__(self):
pass
def getConfig():
class Config:
databases = None
return Config()
@dataclass
class HermesConfig:
"""Configuration for Hermes Agent module"""
@ -356,7 +361,9 @@ class HermesAgent:
selected_memories = []
try:
db = DBPools()
config = getConfig()
db = DBPools(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'}
@ -409,7 +416,9 @@ class HermesAgent:
async def _update_memory_access_stats(self, user_id: str, memory_id: str):
"""Update memory access statistics"""
try:
db = DBPools()
config = getConfig()
db = DBPools(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:
@ -431,7 +440,9 @@ class HermesAgent:
return
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
# Calculate cutoff date
cutoff_date = datetime.now().replace(
@ -536,7 +547,9 @@ class HermesAgent:
user_id = self._get_current_user_id(context) if context else "anonymous"
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
if action == "add":
memory_id = str(uuid.uuid4())
@ -650,7 +663,9 @@ class HermesAgent:
user_id = self._get_current_user_id(context) if context else "anonymous"
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
filters = {'user_id': user_id}
if query:
@ -693,7 +708,9 @@ class HermesAgent:
return {"success": False, "error": "Invalid skill name", "user_id": user_id}
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
if action == "view":
filters = {'user_id': user_id, 'name': name}
@ -778,7 +795,9 @@ class HermesAgent:
user_id = self._get_current_user_id(context) if context else "anonymous"
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
if action == "create":
# Create new remote skill configuration
@ -1184,7 +1203,9 @@ class HermesAgent:
"""List workflows for current user"""
user_id = self._get_current_user_id(context) if context else "anonymous"
try:
db = DBPools()
config = getConfig()
db = DBPools(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}
@ -1197,7 +1218,9 @@ class HermesAgent:
"""List executions for current user (optionally filtered by workflow)"""
user_id = self._get_current_user_id(context) if context else "anonymous"
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
filters = {'user_id': user_id}
if workflow_id:

View File

@ -30,6 +30,11 @@ except ImportError:
def __init__(self):
pass
def getConfig():
class Config:
databases = None
return Config()
@dataclass
class TaskDefinition:
"""Task definition structure for workflow execution"""
@ -81,7 +86,9 @@ class HermesOrchestrator:
try:
workflow_id = str(uuid.uuid4())
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
data = {
'id': workflow_id,
@ -114,7 +121,9 @@ class HermesOrchestrator:
try:
# Verify workflow exists and belongs to user
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
workflows = await sor.R('hermes_workflows', {
'id': workflow_id,
@ -178,7 +187,9 @@ class HermesOrchestrator:
async def _load_workflow_definition(self, workflow_id: str, user_id: str) -> Dict[str, Any]:
"""Load complete workflow definition with all tasks"""
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
# Load workflow
workflows = await sor.R('hermes_workflows', {
@ -473,7 +484,9 @@ class HermesOrchestrator:
task: TaskDefinition, context: Dict[str, Any]):
"""Record execution start in database"""
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
data = {
'id': execution_id,
@ -494,7 +507,9 @@ class HermesOrchestrator:
result: Dict[str, Any], error: str, retry_count: int):
"""Record execution end in database"""
try:
db = DBPools()
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_agent') as sor:
end_time = datetime.now()
data = {