/ debug_session.exs
debug_session.exs
1 #!/usr/bin/env elixir 2 3 # Quick debug script to test session persistence 4 Application.ensure_all_started(:echo_shared) 5 6 alias EchoShared.LLM.{Session, DecisionHelper} 7 8 IO.puts("=== Session Debug Test ===\n") 9 10 # Test 1: Create session directly via Session module 11 IO.puts("Test 1: Direct Session.query with nil session_id") 12 result1 = Session.query(nil, "What is my role?", agent_role: :ceo) 13 14 case result1 do 15 {:ok, r1} -> 16 IO.puts("✓ Session created: #{r1.session_id}") 17 IO.puts(" Turn count: #{r1.turn_count}") 18 IO.puts(" Tokens: #{r1.total_tokens}") 19 20 # Immediately check if session exists in ETS 21 IO.puts("\nChecking ETS immediately after creation...") 22 case Session.get_session(r1.session_id) do 23 nil -> 24 IO.puts("✗ ERROR: Session not found in ETS!") 25 26 session -> 27 IO.puts("✓ Session found in ETS") 28 IO.puts(" Agent: #{session.agent_role}") 29 IO.puts(" Turn count: #{session.turn_count}") 30 end 31 32 # Test 2: Continue conversation 33 IO.puts("\nTest 2: Continue conversation with session_id") 34 result2 = Session.query(r1.session_id, "What are my priorities?", []) 35 36 case result2 do 37 {:ok, r2} -> 38 IO.puts("✓ Continuation succeeded") 39 IO.puts(" Session: #{r2.session_id}") 40 IO.puts(" Turn count: #{r2.turn_count}") 41 IO.puts(" Tokens: #{r2.total_tokens}") 42 43 {:error, :session_not_found} -> 44 IO.puts("✗ ERROR: Session not found!") 45 IO.puts(" Looking for: #{r1.session_id}") 46 47 # Debug: List all sessions 48 IO.puts("\n All sessions in ETS:") 49 sessions = Session.list_sessions() 50 if Enum.empty?(sessions) do 51 IO.puts(" (none)") 52 else 53 Enum.each(sessions, fn s -> 54 IO.puts(" - #{s.session_id}") 55 end) 56 end 57 58 {:error, reason} -> 59 IO.puts("✗ ERROR: #{inspect(reason)}") 60 end 61 62 {:error, reason} -> 63 IO.puts("✗ Failed to create session: #{inspect(reason)}") 64 end 65 66 IO.puts("\n=== End Debug Test ===")