From 356544853aa408e39291d37cb460674787f7b73f Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 7 May 2026 18:45:25 +0800 Subject: [PATCH] fix: debug reasoning execution flow and fix JSON serialization - Add debug log for execute_immediately, violations, steps_count - Fix JSON serialization in _store_session using default=str - Plan object might contain non-serializable types (e.g. datetime) --- harnessed_reasoning/core.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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}),