diff --git a/harnessed_reasoning/core.py b/harnessed_reasoning/core.py index 5d3c3cf..7076372 100644 --- a/harnessed_reasoning/core.py +++ b/harnessed_reasoning/core.py @@ -470,6 +470,7 @@ class HermesReasoningEngine: }) # Step 5: Execute if requested and safe + info(f"[reasoning] execute_immediately={execute_immediately}, violations={violations}, steps_count={len(plan.get('steps', []))}") if execute_immediately and not violations and plan.get('steps'): exec_results = await self._execute_plan( session_id, plan['steps'], config, context @@ -602,12 +603,14 @@ class HermesReasoningEngine: plan: Dict, violations: List, status: str): """Store reasoning session in database.""" try: + # Ensure plan is serializable + plan_str = json.dumps(plan, ensure_ascii=False, default=str) data = { 'id': session_id, 'user_id': user_id, 'initial_request': request, 'context_summary': '', - 'execution_plan_json': json.dumps(plan, ensure_ascii=False), + 'execution_plan_json': plan_str, 'reasoning_steps_json': '[]', 'safety_violations_json': json.dumps(violations, ensure_ascii=False), 'final_decision_json': json.dumps({'status': status}),