/Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:19: UserWarning: Field name "schema_json" in "PromptCreate" shadows an attribute in parent "BaseModel" class PromptCreate(BaseModel): /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:27: UserWarning: Field name "schema_json" in "PromptUpdate" shadows an attribute in parent "BaseModel" class PromptUpdate(BaseModel): INFO: Started server process [82930] INFO: Waiting for application startup. {"timestamp": "2026-05-27T12:18:08.633660+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8014 (Press CTRL+C to quit) INFO: 127.0.0.1:57807 - "GET /health HTTP/1.1" 404 Not Found INFO: 127.0.0.1:57809 - "GET /health HTTP/1.1" 404 Not Found INFO: 127.0.0.1:57814 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:57817 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:57822 - "GET /api/openapi.json HTTP/1.1" 200 OK INFO: 127.0.0.1:57825 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:57829 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:57831 - "GET /api/v1/auth/me HTTP/1.1" 200 OK INFO: 127.0.0.1:57835 - "GET /api/v1/auth/me HTTP/1.1" 401 Unauthorized INFO: 127.0.0.1:57841 - "POST /api/v1/projects/ HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:57844 - "GET /api/openapi.json HTTP/1.1" 200 OK {"timestamp": "2026-05-27T12:20:06.102725+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 21:20:06 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-05-27T12:20:06.119082+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-05-27T12:20:06.119320+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 8 deployments (1 Gemini keys, OpenAI=True)"} 21:20:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:20:06.131719+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:20:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:20:10.708278+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=06a16e17-ab5e-7a46-8000-887b56bcb214&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. 21:20:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:20:10.714842+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57848 - "POST /api/v1/projects/ HTTP/1.1" 200 OK INFO: 127.0.0.1:57856 - "GET /api/openapi.json HTTP/1.1" 200 OK INFO: 127.0.0.1:57859 - "GET /api/openapi.json HTTP/1.1" 200 OK {"timestamp": "2026-05-27T12:20:32.173798+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "Planning doc uploaded for project 4f948193: 20566 chars, 16 pages"} INFO: 127.0.0.1:57864 - "POST /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK {"timestamp": "2026-05-27T12:20:32.186504+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=4f948193): PDF multimodal (1504329 bytes)"} 21:20:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:20:32.187758+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:57870 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57873 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57878 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57881 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57893 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK 21:21:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:21:05.589583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:21:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:21:05.591917+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:21:05.619980+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=4f948193) done: 9 characters, 3 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], job_id=cee493b288334bc5bafd6c95376b50a0"} INFO: 127.0.0.1:57897 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57900 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57903 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57907 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57910 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57914 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57917 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57921 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57924 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57927 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57930 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57934 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57941 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57945 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57948 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57952 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57955 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57958 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57962 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57965 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57969 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57972 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57976 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57979 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57983 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57986 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57991 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57994 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:57997 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58000 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58004 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58007 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58011 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58014 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58018 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58021 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58025 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58030 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58033 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58037 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58040 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58045 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58048 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58052 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58055 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58061 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58064 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58067 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58071 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58074 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58077 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58081 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58084 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58088 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58092 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58113 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58126 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58132 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58136 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/planning-doc HTTP/1.1" 200 OK INFO: 127.0.0.1:58140 - "GET /api/openapi.json HTTP/1.1" 200 OK INFO: 127.0.0.1:58145 - "POST /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/ HTTP/1.1" 200 OK INFO: 127.0.0.1:58149 - "GET /api/openapi.json HTTP/1.1" 200 OK INFO: 127.0.0.1:58154 - "GET /api/openapi.json HTTP/1.1" 200 OK {"timestamp": "2026-05-27T12:27:23.298685+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: run_all:4f948193-6809-4ae3-a3c6-2ca4e8af1c1a:dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca:all (Run all all steps for dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca)"} INFO: 127.0.0.1:58165 - "POST /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps/run-all?mode=resume&category=all&approve_image_generation=true&image_call_cap=60 HTTP/1.1" 200 OK {"timestamp": "2026-05-27T12:27:23.318099+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis started (run_id=572d20d0-8af3-4c38-a5d7-80287eb5847d, model=gemini-lite)"} {"timestamp": "2026-05-27T12:27:23.320449+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: project-level checkpoint mirror (project=4f948193, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'])"} {"timestamp": "2026-05-27T12:27:23.324637+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T12:27:23.324677+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step planning_doc_analysis: completed"} {"timestamp": "2026-05-27T12:27:23.326967+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=e027980f-d1ed-4503-96f3-88a9663358e2, model=gemini-lite)"} {"timestamp": "2026-05-27T12:27:23.329756+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes) → model=gemini-lite"} 21:27:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:27:23.330685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:27:23 - LiteLLM:INFO: vertex_and_google_ai_studio_gemini.py:1091 - Warning: Setting temperature < 1.0 for Gemini 3 models (gemini-3.5-flash) can cause infinite loops, degraded reasoning performance, and failure on complex tasks. Strongly recommended to use temperature = 1.0 (default). {"timestamp": "2026-05-27T12:27:23.332147+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Warning: Setting temperature < 1.0 for Gemini 3 models (gemini-3.5-flash) can cause infinite loops, degraded reasoning performance, and failure on complex tasks. Strongly recommended to use temperature = 1.0 (default)."} INFO: 127.0.0.1:58176 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58184 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:28:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:28:26.867307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:28:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:28:26.871170+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:28:26.872106+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: extracted 9587 chars from 금월도 1부_260226(최종수정본).pdf"} {"timestamp": "2026-05-27T12:28:26.882847+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T12:28:26.882921+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step text_cleanup: completed"} {"timestamp": "2026-05-27T12:28:26.889908+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation started (run_id=954b5c6f-8f00-478f-a3a0-b43bb2292e6e, model=gemini-flash)"} 21:28:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:28:26.892342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:28:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:28:33.519530+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:28:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:28:33.522023+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:28:33.526838+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "Segmentation attempt 1: pattern=\\*\\*?S#\\d+\\.\\s*[^/\\n\\*]+\\s*/\\s*[^\\n\\*]+\\*\\*?, matched=30, estimated=30"} {"timestamp": "2026-05-27T12:28:33.542195+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T12:28:33.542304+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_segmentation: completed"} {"timestamp": "2026-05-27T12:28:33.548430+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary started (run_id=72aac63d-14a3-498f-bb56-1b4640d6bab1, model=gpt-mini)"} 21:28:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:28:33.552985+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:28:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:28:44.274963+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:28:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:28:44.276718+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:28:44.294875+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T12:28:44.294958+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_summary: completed"} {"timestamp": "2026-05-27T12:28:44.301032+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules started (run_id=ac68ce4a-3cb2-4d2f-b50d-f48662dd8205, model=gpt)"} 21:28:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:28:44.313223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58200 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58205 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58216 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:29:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:29:45.525086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:29:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:29:45.527618+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:29:45.541811+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "VisualWorldRulesStep: 10 rules, era=현대, 2020년대 중반의 한국 사회와 현재적 기술 환경을 기본으로 하되, 고립 공동체와 의식 공간에는 전근대적 토속 신앙의 시각 층위가 공존하는 설정, region=대한민국 서해안의 포구 마을, 해상, 행정구역 밖의 고립된 섬 공동체, planning_doc=True"} {"timestamp": "2026-05-27T12:29:45.553731+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T12:29:45.553889+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_world_rules: completed"} {"timestamp": "2026-05-27T12:29:45.563689+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save started (run_id=3b884ea5-9946-4677-b2b0-6d746e975de1, model=-)"} {"timestamp": "2026-05-27T12:29:45.574601+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:29:45.574803+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_save: completed"} {"timestamp": "2026-05-27T12:29:45.585771+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list started (run_id=c86a5d15-399b-4f48-9fad-32fe2922eb1a, model=gemini-pro)"} 21:29:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:29:45.596292+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58228 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58233 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58241 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:30:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:36.718287+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:30:36.722468+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:30:36.731243+00:00", "level": "INFO", "logger": "app.core.steps.character_list_step", "message": "entity_character_list: 6 characters extracted"} {"timestamp": "2026-05-27T12:30:36.744217+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list completed (completed=6/6, failed=0)"} {"timestamp": "2026-05-27T12:30:36.744414+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_character_list: completed"} {"timestamp": "2026-05-27T12:30:36.758864+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary started (run_id=a105d294-63b9-46ae-a749-e0e6870fc250, model=gpt-mini)"} 21:30:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:36.772180+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:36.775363+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:36.776436+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:36.781862+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:36.782738+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:40.788080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:40.789692+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:40.794564+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:42.361583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:42.363427+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:42.371676+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:42.841425+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:42.842382+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:42.848136+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:42.848804+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:42.856308+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:42.859357+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:44.832356+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:44.834457+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:44.842096+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:46.122770+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:46.125221+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:46.135143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:48.108827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:48.109822+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:48.115951+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:48.956473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:48.959936+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:48.967633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:50.539440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:50.542937+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:50.551608+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:51.193586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:51.194775+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:51.202952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:51.864881+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:51.866468+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:51.877735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:54.495086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:54.497948+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:54.504125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:55.249730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:55.251213+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:55.258754+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:56.379872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:56.388051+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:56.400123+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:56.653001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:56.655950+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:56.664059+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:58273 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:30:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:58.603429+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:58.604064+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:58.607337+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:59.162408+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:59.165001+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:59.169739+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:30:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:30:59.547952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:30:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:30:59.549937+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:30:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:30:59.557765+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:00.765152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:00.766632+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:31:00.771349+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:01.143562+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:01.146076+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:31:01.154903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:02.087774+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:02.089149+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:31:02.093566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:02.377873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:02.380663+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:31:02.390079+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:04.808058+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:04.809532+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:31:04.816435+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:06.508003+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:06.510045+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:31:06.519286+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:07.671997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:07.674455+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:31:07.684266+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:31:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:07.742585+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:07.744519+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:07.750867+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:07.752289+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:58294 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:31:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:10.169813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:10.171913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:10.539362+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:10.540433+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 21:31:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:11.856185+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:31:11.857520+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:31:11.860628+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "SceneSummaryStep: 30/30 scenes summarized (0 failed)"} {"timestamp": "2026-05-27T12:31:11.869646+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:31:11.869758+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_summary: completed"} {"timestamp": "2026-05-27T12:31:11.877649+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=de5dfe0f-1274-4c2b-9686-e0352d355591, model=gemini-pro)"} {"timestamp": "2026-05-27T12:31:11.878979+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 6 characters injected"} {"timestamp": "2026-05-27T12:31:11.884435+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes → 4 bundles"} 21:31:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:31:11.890586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:31:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:31:11.895616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:31:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:31:11.898193+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:31:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:31:11.900063+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58303 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:31:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:40.340862+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:31:40.343544+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:31:40.358026+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 4 (scenes 28~30): 3 scenes, 7 beats"} 21:31:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:49.666064+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:31:49.668685+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:31:49.683997+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~11): 11 scenes, 16 beats"} INFO: 127.0.0.1:58315 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:31:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:31:59.731581+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:31:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:31:59.733715+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:31:59.747386+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 2 (scenes 12~18): 7 scenes, 20 beats"} 21:32:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:32:01.698804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:32:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:32:01.700857+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:32:01.715718+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 3 (scenes 19~27): 9 scenes, 17 beats"} {"timestamp": "2026-05-27T12:32:01.716100+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes, 60 beats"} {"timestamp": "2026-05-27T12:32:01.724803+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:32:01.724934+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step beat_extract: completed"} {"timestamp": "2026-05-27T12:32:01.734065+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract started (run_id=06a65cb9-380d-4bb4-84ff-e3ea6bd46aab, model=gemini-pro)"} {"timestamp": "2026-05-27T12:32:01.735828+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: t2i_context injected (459 chars)"} {"timestamp": "2026-05-27T12:32:01.736143+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 6 characters injected as enum"} {"timestamp": "2026-05-27T12:32:01.742069+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=shot_extract stem=shot_schema.json loaded_from=10.202604151200 (latest_in_module=15.202605201546). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} {"timestamp": "2026-05-27T12:32:01.742687+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes → 4 bundles (sequential)"} 21:32:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:32:01.745364+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58320 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58330 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58342 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58347 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:33:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:33:15.493113+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:33:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:33:15.495964+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:33:15.511148+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 1 (scenes 1~11): 11 scenes, 36 shots"} 21:33:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:33:15.516172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58356 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58368 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58373 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58380 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58392 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:35:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:35:01.661735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:35:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:35:01.663338+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:35:01.680075+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 2 (scenes 12~18): 7 scenes, 53 shots"} 21:35:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:35:01.682757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58401 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58410 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58436 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:36:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:36:06.320168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:36:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:36:06.321990+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:36:06.334770+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 3 (scenes 19~27): 9 scenes, 41 shots"} 21:36:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:36:06.337860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58442 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58455 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58465 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:37:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:02.753758+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:02.756451+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:37:02.769930+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 4 (scenes 28~30): 3 scenes, 22 shots"} {"timestamp": "2026-05-27T12:37:02.770479+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes, 152 shots"} {"timestamp": "2026-05-27T12:37:02.784992+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:37:02.785272+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_extract: completed"} {"timestamp": "2026-05-27T12:37:02.795002+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator started (run_id=e3d2a87d-f9ee-4999-b487-40dbd6f7050e, model=gemini-pro)"} {"timestamp": "2026-05-27T12:37:02.807869+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: entity character pool unavailable (entity_merge + EntityCanon both empty) — RC-F entity mapping inactive this run; re-run after entity pipeline produces characters."} 21:37:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:02.815623+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:02.818673+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:02.821069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:02.822523+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58475 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:37:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:12.041434+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:12.044244+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:12.057879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:23.112819+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:23.115179+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:23.128905+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:25.188098+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:25.190893+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:25.204007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:28.861268+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:28.863976+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:28.879213+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58489 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:37:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:32.239068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:32.241760+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:32.255786+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:45.709542+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:45.711297+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:45.726348+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:49.033076+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:49.034022+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:49.047899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:49.591919+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:49.594799+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:49.607672+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:52.520247+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:52.523776+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:52.538243+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:37:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:37:59.384728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:37:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:37:59.387297+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:37:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:37:59.402631+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58505 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:38:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:00.492990+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:00.494568+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:00.510586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58511 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:38:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:13.035586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:13.038087+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:13.051875+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:13.213894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:13.216217+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:13.232164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:14.144542+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:14.146836+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:38:14.160960+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 14 shot 1 — dropping malformed/out-of-pool character_ids ['혜수', '김형사'] (kept [])."} {"timestamp": "2026-05-27T12:38:14.161158+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 14 shot 2 — dropping malformed/out-of-pool character_ids ['수리영'] (kept [])."} {"timestamp": "2026-05-27T12:38:14.161252+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 14 shot 5 — dropping malformed/out-of-pool character_ids ['김형사', '수리영'] (kept [])."} {"timestamp": "2026-05-27T12:38:14.161317+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 14 shot 6 — dropping malformed/out-of-pool character_ids ['혜수', '김형사'] (kept [])."} {"timestamp": "2026-05-27T12:38:14.161373+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 14 shot 7 — dropping malformed/out-of-pool character_ids ['혜수', '수리영'] (kept [])."} 21:38:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:14.163719+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:19.196440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:19.198852+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:19.212248+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:19.846098+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:19.848063+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:38:19.850836+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[shot_validator] Tier 1 failed (LLM returned empty response for step=shot_validator, model=gemini-pro), trying sanitized input"} 21:38:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:19.856601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:20.607219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:20.609824+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:38:20.611524+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[shot_validator] Tier 2 sanitized failed (LLM returned empty response for step=shot_validator, model=gemini-pro), trying GPT fallback"} 21:38:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:38:20.614280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:38:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:24.371924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:24.375553+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:24.389718+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58527 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:38:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:30.670932+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:38:30.673709+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:38:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:30.687423+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:36.616617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:36.618117+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:36.630409+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:37.815124+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:37.816973+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:37.828366+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:47.534543+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:47.536364+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:47.550045+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:49.656160+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:49.659110+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:49.674862+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:52.363383+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:52.366186+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:52.380703+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:38:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:38:58.546184+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:38:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:38:58.548186+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:38:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:38:58.561579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58544 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:39:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:39:00.175038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:39:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:39:00.176366+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:39:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:39:00.182116+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:39:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:39:06.920781+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:39:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:39:06.924271+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:39:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:39:06.937083+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:39:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:39:09.217008+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:39:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:39:09.219568+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:39:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:39:09.240690+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} {"timestamp": "2026-05-27T12:39:10.901772+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} INFO: 127.0.0.1:58552 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:39:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:39:12.922534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:39:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:39:12.926056+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:39:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:39:13.392668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:39:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:39:13.394111+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:39:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:39:26.075171+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:39:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:39:26.080025+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:39:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:39:29.968384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:39:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:39:29.970570+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:39:29.981396+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: 30 scenes, 152 shots total, 27 revised, 0 failed"} {"timestamp": "2026-05-27T12:39:29.997009+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:39:29.997439+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_validator: completed"} {"timestamp": "2026-05-27T12:39:30.009255+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character started (run_id=dc47ae08-6670-4380-b4b5-df29b27c221b, model=gemini-pro)"} 21:39:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:39:30.015285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58561 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58571 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58575 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:40:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:40:13.596053+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:40:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:40:13.598418+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:40:13.607240+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_character (shot-based, 1 call): 13 entities from 152 shots"} {"timestamp": "2026-05-27T12:40:13.621528+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character completed (completed=13/13, failed=0)"} {"timestamp": "2026-05-27T12:40:13.622060+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_character: completed"} {"timestamp": "2026-05-27T12:40:13.633143+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character started (run_id=d8bc771e-d7a5-4a7c-a7f1-357fc5a96c5d, model=gpt)"} 21:40:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:40:13.641982+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58583 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58595 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:41:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:41:01.685553+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:41:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:41:01.688360+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:41:01.708432+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character completed (completed=13/13, failed=0)"} {"timestamp": "2026-05-27T12:41:01.708564+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_character: completed"} {"timestamp": "2026-05-27T12:41:01.717207+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location started (run_id=3b6faa59-c17c-4a41-b8e5-dc169b942a42, model=gpt)"} 21:41:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:41:01.723432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58602 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58615 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:41:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:41:58.814767+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:41:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:41:58.817564+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:41:58.824562+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_location (shot-based, 1 call): 20 entities from 152 shots"} {"timestamp": "2026-05-27T12:41:58.837299+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location completed (completed=20/20, failed=0)"} {"timestamp": "2026-05-27T12:41:58.837509+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_location: completed"} {"timestamp": "2026-05-27T12:41:58.846663+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location started (run_id=1f8aa744-67d4-4b76-a66b-751b3474ddf3, model=gemini-pro)"} 21:41:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:41:58.854142+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58628 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58632 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58644 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:42:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:42:50.042326+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:42:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:42:50.044861+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:42:50.070977+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location completed (completed=20/20, failed=0)"} {"timestamp": "2026-05-27T12:42:50.071183+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_location: completed"} {"timestamp": "2026-05-27T12:42:50.083571+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop started (run_id=7c238319-d3f3-48c9-9c19-85eb9dc7b539, model=gpt)"} 21:42:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:42:50.092586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58657 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58662 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58670 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:43:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:43:55.309139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:43:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:43:55.310870+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:43:55.317655+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_prop (shot-based, 1 call): 15 entities from 152 shots"} {"timestamp": "2026-05-27T12:43:55.329492+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop completed (completed=15/15, failed=0)"} {"timestamp": "2026-05-27T12:43:55.329745+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_prop: completed"} {"timestamp": "2026-05-27T12:43:55.339158+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop started (run_id=736ecdab-a0b2-4b91-b60a-f4a5205e6f31, model=gemini-pro)"} 21:43:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:43:55.345220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58681 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58685 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58693 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:44:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:44:35.685399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:44:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:44:35.688152+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:44:35.706285+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop completed (completed=15/15, failed=0)"} {"timestamp": "2026-05-27T12:44:35.706438+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_prop: completed"} {"timestamp": "2026-05-27T12:44:35.713865+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge started (run_id=eb4153b5-da50-4a76-a5ce-7d79096d7cb4, model=gpt)"} 21:44:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:44:35.719891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:44:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:44:47.183160+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:44:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:44:47.186763+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:44:47.207657+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge completed (completed=48/48, failed=0)"} {"timestamp": "2026-05-27T12:44:47.207892+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_merge: completed"} {"timestamp": "2026-05-27T12:44:47.219928+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation started (run_id=64c198c1-4a5b-4d80-a9d4-d602fbc18bd5, model=gpt)"} 21:44:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:44:47.232206+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58709 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58714 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:45:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:45:18.665245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:45:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:45:18.667918+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:45:18.678408+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_relation", "message": "Entity relations: 0 candidates → 1 confirmed (1 visual_similar)"} {"timestamp": "2026-05-27T12:45:18.687032+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T12:45:18.687213+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_relation: completed"} {"timestamp": "2026-05-27T12:45:18.693136+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter started (run_id=74011784-09a1-44a2-8027-4b0e323e1dc2, model=gpt-mini)"} 21:45:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:45:18.701755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:45:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:45:26.022194+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:45:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:45:26.024663+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:45:26.034871+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_filter", "message": "Filtered 7 low-freq entities → removed 7"} {"timestamp": "2026-05-27T12:45:26.050618+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T12:45:26.050826+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_filter: completed"} {"timestamp": "2026-05-27T12:45:26.061311+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail started (run_id=95538256-e7cd-4762-8bfe-aa677ed68d48, model=gpt)"} 21:45:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:45:26.082642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58725 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58750 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58755 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58769 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58779 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:47:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:07.959053+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:47:07.962447+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:47:07.991130+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail completed (completed=41/41, failed=0)"} {"timestamp": "2026-05-27T12:47:07.991463+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_detail: completed"} {"timestamp": "2026-05-27T12:47:08.005020+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i started (run_id=41ce0965-425a-49ce-8038-2a5667d890bd, model=gemini-pro)"} 21:47:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:08.013454+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:09.023638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:10.035021+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:11.036691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58789 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:47:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:12.040494+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:13.052013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:14.061253+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:15.068481+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:16.081231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:17.085506+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:17.518573+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:17.521097+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:17.709442+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:17.711060+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:18.092983+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:18.903170+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:18.905663+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:19.091780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:19.972145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:19.975748+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:20.095366+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:20.641957+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:20.644766+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:47:20.646245+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[entity_t2i] Tier 1 failed (LLM returned empty response for step=entity_t2i, model=gemini-pro), trying sanitized input"} 21:47:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:20.649819+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:21.106121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:21.139974+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:21.142405+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:21.235159+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:21.236718+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:47:21.238655+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[entity_t2i] Tier 2 sanitized failed (LLM returned empty response for step=entity_t2i, model=gemini-pro), trying GPT fallback"} 21:47:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:47:21.242214+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:47:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:22.112980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:22.505939+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:22.508499+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:23.121590+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:23.779188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:23.781426+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:24.128377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:26.514115+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:26.517600+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:26.537580+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:27.587165+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:27.589875+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:27.609379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:27.782391+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:27.785328+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:27.802643+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:28.756134+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:28.757415+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:28.772130+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:31.058391+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:47:31.060366+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:47:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:31.080388+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58820 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:47:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:32.842087+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:32.843748+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:32.857110+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:33.730523+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:33.732552+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:33.748119+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:34.231899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:34.234020+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:34.249973+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:36.000513+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:36.003265+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:36.024696+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:36.589223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:36.590690+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:36.607378+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:39.015847+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:39.018329+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:39.039041+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:39.312808+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:39.315417+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:39.332132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:42.113666+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:42.117231+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:42.139440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:42.209611+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:42.212614+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:42.235212+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:42.583447+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:42.584639+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:42.596878+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:43.811847+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:43.814393+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:43.833292+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:47.364909+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:47.367321+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:47.386383+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:47.557778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:47.560035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:47.582203+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:47.648715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:47.650846+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:47.670631+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:51.378034+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:51.381144+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:51.402557+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:51.660864+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:51.664154+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:51.684902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:52.131265+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:52.133744+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:52.158840+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:54.585055+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:54.587176+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:54.610787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:56.189823+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:56.191864+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:47:56.210037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:47:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:56.468582+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:56.470985+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:57.311820+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:57.315258+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:57.689735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:57.692130+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:58.721865+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:58.724626+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:47:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:47:59.756511+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:47:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:47:59.757602+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:48:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:02.280788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:48:02.281899+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:58849 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:48:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:02.457934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:48:02.458689+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:48:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:04.061419+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:48:04.062829+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 21:48:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:04.912907+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:48:04.914987+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:58853 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:48:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:14.028044+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:48:14.030561+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:14.076593+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i completed (completed=41/41, failed=0)"} {"timestamp": "2026-05-27T12:48:14.076720+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_t2i: completed"} {"timestamp": "2026-05-27T12:48:14.084683+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection started (run_id=32be231e-d7c5-47df-a84a-02dcbf3ce634, model=gpt-mini)"} {"timestamp": "2026-05-27T12:48:14.094484+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 3 scenes auto-selected (1-shot), 27 scenes to evaluate (abs_max=3, ratio_cap=50%)"} 21:48:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:14.101513+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:14.103549+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:14.106571+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:14.107336+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:19.417316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:19.419834+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:19.428729+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 3: 1/2 selected (eff_max=1)"} 21:48:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:19.431858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:21.234309+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:21.235843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:21.241587+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 2: 2/4 selected (eff_max=2)"} 21:48:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:21.244068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:22.176167+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:22.179239+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:22.187220+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 5: 2/7 selected (eff_max=3)"} 21:48:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:22.190152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:22.364268+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:22.367720+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:22.375279+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 1: 2/4 selected (eff_max=2)"} 21:48:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:22.378882+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:27.158037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:27.160318+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:27.165040+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 10: 2/4 selected (eff_max=2)"} 21:48:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:27.167848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:27.702434+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:27.705510+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:27.714133+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 11: 1/2 selected (eff_max=1)"} 21:48:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:27.716896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:27.891583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:27.894998+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:27.902490+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 8: 2/4 selected (eff_max=2)"} 21:48:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:27.905337+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:28.816469+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:28.819043+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:28.826953+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 7: 2/6 selected (eff_max=3)"} 21:48:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:28.830129+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:58872 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:48:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:33.780464+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:33.782486+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:33.786400+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 14: 2/8 selected (eff_max=3)"} 21:48:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:33.788504+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:34.630874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:34.633089+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:34.641142+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 13: 2/6 selected (eff_max=3)"} 21:48:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:34.644524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:34.722589+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:34.724069+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:34.730006+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 12: 3/14 selected (eff_max=3)"} 21:48:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:34.732683+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:35.486451+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:35.489913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:35.491598+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 15: 2/6 selected (eff_max=3)"} 21:48:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:35.493033+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:38.661081+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:38.664091+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:38.672444+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 16: 1/5 selected (eff_max=2)"} 21:48:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:38.674780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:38.676014+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:38.680996+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 17: 1/2 selected (eff_max=1)"} 21:48:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:38.682723+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:38.686372+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:40.654438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:40.656868+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:40.663910+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 19: 2/4 selected (eff_max=2)"} 21:48:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:40.666848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:42.340164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:42.343581+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:42.351296+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 18: 2/12 selected (eff_max=3)"} 21:48:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:42.354238+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:44.341876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:44.345261+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:44.352883+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 22: 1/2 selected (eff_max=1)"} 21:48:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:44.355782+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:45.751740+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:45.752972+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:45.756763+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 21: 2/10 selected (eff_max=3)"} 21:48:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:45.758811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:46.036012+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:46.038096+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:46.044373+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 23: 1/3 selected (eff_max=1)"} 21:48:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:46.047306+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:47.249864+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:47.251022+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:47.255483+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 20: 1/4 selected (eff_max=2)"} 21:48:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:47.257269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:48.277875+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:48.279803+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:48.285702+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 24: 1/2 selected (eff_max=1)"} 21:48:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:48.288452+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:52.255631+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:52.258176+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:52.262270+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 27: 1/3 selected (eff_max=1)"} 21:48:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:52.264911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:52.626173+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:52.629299+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:52.633341+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 25: 2/7 selected (eff_max=3)"} 21:48:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T12:48:52.636063+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 21:48:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:55.337533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:55.340847+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:55.347533+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 26: 2/6 selected (eff_max=3)"} 21:48:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:58.934050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:58.935769+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:58.941338+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 30: 2/4 selected (eff_max=2)"} 21:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:59.024760+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:59.027025+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:59.034877+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 28: 2/9 selected (eff_max=3)"} 21:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:48:59.884505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T12:48:59.886334+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:48:59.893086+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 29: 3/9 selected (eff_max=3)"} {"timestamp": "2026-05-27T12:48:59.893741+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 50/152 shots selected across 30 scenes"} {"timestamp": "2026-05-27T12:48:59.906874+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:48:59.907315+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_selection: completed"} {"timestamp": "2026-05-27T12:48:59.957164+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 41 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-05-27T12:48:59.965492+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Visual-variant delta sync: +1 / ~0 / -0 (total=1)"} {"timestamp": "2026-05-27T12:48:59.967320+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-05-27T12:48:59.979125+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-05-27T12:48:59.980376+00:00", "level": "WARNING", "logger": "app.core.applicability", "message": "_if_planning_doc fallback to False: '_StubRunner' object has no attribute 'db'"} {"timestamp": "2026-05-27T12:48:59.981558+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca status NOT advanced — incomplete steps: ['scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy']"} {"timestamp": "2026-05-27T12:48:59.983771+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode dc70c0b3, step=-, repaired=0)"} {"timestamp": "2026-05-27T12:48:59.990353+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=8f7a589f-9179-4f4b-9880-298d04646f12, model=gemini-pro)"} {"timestamp": "2026-05-27T12:48:59.995617+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} {"timestamp": "2026-05-27T12:49:00.003767+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=scene_director stem=analyze_schema.json loaded_from=8.202604081200 (latest_in_module=9.202605181550). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} 21:49:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:49:00.005765+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58898 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58901 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58910 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58921 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58926 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:50:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:50:18.981900+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:50:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:50:18.984452+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:50:19.013170+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:50:19.013432+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_director: completed"} {"timestamp": "2026-05-27T12:50:19.024587+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=6dd87a5a-b1ea-4000-9c33-c5114de832b5, model=gpt)"} 21:50:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:50:19.043085+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58935 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:50:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:50:37.625836+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:50:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:50:37.626488+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:50:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:50:37.629902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:50:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:50:43.121678+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:50:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:50:43.123909+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:50:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:50:43.137968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:50:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:50:54.532136+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:50:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:50:54.533868+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:50:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:50:54.548021+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:50:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:50:56.653514+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:50:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:50:56.655659+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:50:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:50:56.668756+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58950 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:51:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:04.577068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:04.579574+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:04.594475+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:51:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:08.190124+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:08.193439+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:08.206409+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58956 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:51:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:16.751917+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:16.753600+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:16.765659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:51:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:26.346947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:26.349618+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:26.362920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:51:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:29.454084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:29.456546+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:29.471094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58976 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:51:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:40.333185+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:40.335683+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:40.349680+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:51:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:43.369178+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:43.371701+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:43.387890+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:51:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:51:53.236741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:51:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:51:53.238687+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:51:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:51:53.252079+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58989 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:52:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:52:04.586077+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:52:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:52:04.588378+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:52:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:52:04.604066+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58996 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:52:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:52:15.355196+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:52:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:52:15.357959+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:52:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:52:15.369711+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:52:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:52:22.935839+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:52:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:52:22.937084+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:52:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:52:22.945059+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59009 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:52:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:52:37.643076+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:52:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:52:37.644309+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:52:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:52:37.652142+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:52:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:52:40.481457+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:52:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:52:40.484089+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:52:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:52:40.498311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:52:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:52:54.679506+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:52:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:52:54.681221+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:52:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:52:54.691106+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:52:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:52:59.890219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:52:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:52:59.893623+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:52:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:52:59.907163+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59024 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:53:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:04.023691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:04.026185+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:04.041144+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:53:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:11.951990+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:11.955262+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:11.969168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59030 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:53:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:15.525244+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:15.526893+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:15.535285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:53:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:19.723922+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:19.725509+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:19.738013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:53:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:23.188239+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:23.190936+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:23.202734+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59040 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:53:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:38.642480+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:38.645021+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:38.660861+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:53:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:46.232384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:46.234861+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:46.247869+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:53:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:53:51.424545+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:53:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:53:51.425665+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:53:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:53:51.435189+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:54:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:54:02.056318+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:54:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:54:02.059766+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:54:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:02.074317+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59056 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59060 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:54:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:54:30.781901+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:54:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:54:30.784021+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:54:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:30.799079+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59070 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:54:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:54:34.743713+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:54:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:54:34.745423+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:54:34.750230+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 30 scenes (30 LLM, 0 skipped), 50 total shots"} {"timestamp": "2026-05-27T12:54:34.759578+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:54:34.759671+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_director: completed"} {"timestamp": "2026-05-27T12:54:34.769961+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow started (run_id=482cc905-f190-4045-999e-cb4e0964e5d2, model=gpt)"} 21:54:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:34.779089+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:54:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:34.781268+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:54:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai 21:54:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:34.783967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} {"timestamp": "2026-05-27T12:54:34.785622+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:54:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:54:46.054329+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:54:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:54:46.056581+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:54:46.070815+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S4: 2 stages, 1 shot assignments"} 21:54:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:46.073912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:54:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:54:48.034033+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:54:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:54:48.036085+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:54:48.052183+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S3: 3 stages, 1 shot assignments"} 21:54:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:48.054458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:54:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:54:57.755639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:54:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:54:57.756768+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:54:57.765338+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S2: 4 stages, 2 shot assignments"} 21:54:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:57.766927+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:54:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:54:58.862141+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:54:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:54:58.864256+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:54:58.878155+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S1: 3 stages, 2 shot assignments"} 21:54:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:54:58.881197+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59090 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:55:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:08.382443+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:08.385717+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:08.400473+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S5: 4 stages, 2 shot assignments"} 21:55:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:08.403754+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:55:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:10.464170+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:10.466682+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:10.481945+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S6: 3 stages, 1 shot assignments"} 21:55:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:10.485198+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59097 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:55:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:16.943012+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:16.945509+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:16.962146+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S7: 5 stages, 2 shot assignments"} 21:55:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:16.965149+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:55:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:19.290538+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:19.291971+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:19.303263+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S8: 4 stages, 2 shot assignments"} 21:55:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:19.305702+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:55:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:28.397697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:28.399213+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:28.411535+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S9: 3 stages, 1 shot assignments"} 21:55:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:28.413536+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:55:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:31.932129+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:31.933895+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:31.946505+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S11: 3 stages, 1 shot assignments"} 21:55:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:31.949429+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59109 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:55:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:39.055404+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:39.058891+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:39.073771+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S10: 4 stages, 2 shot assignments"} 21:55:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:39.076804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:55:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:43.110504+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:43.112185+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:43.129866+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S12: 5 stages, 3 shot assignments"} 21:55:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:43.132728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:55:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:54.562724+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:54.566410+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:54.583417+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S14: 5 stages, 2 shot assignments"} 21:55:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:54.587400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:55:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:55:57.411961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:55:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:55:57.413688+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:55:57.425453+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S13: 5 stages, 2 shot assignments"} 21:55:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:55:57.427598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59137 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:56:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:07.992377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:07.994438+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:08.008441+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S16: 3 stages, 1 shot assignments"} 21:56:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:08.011449+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:56:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:09.831620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:09.833346+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:09.844252+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S15: 4 stages, 2 shot assignments"} 21:56:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:09.847029+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:56:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:11.042202+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:11.044612+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:11.059203+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S17: 3 stages, 1 shot assignments"} 21:56:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:11.062285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59145 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:56:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:25.384554+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:25.387892+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:25.403740+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S20: 4 stages, 1 shot assignments"} 21:56:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:25.406263+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:56:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:28.458018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:28.460238+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:28.472646+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S18: 5 stages, 2 shot assignments"} 21:56:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:28.475856+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59163 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:56:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:35.014150+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:35.016737+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:35.032162+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S19: 4 stages, 2 shot assignments"} 21:56:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:35.035340+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:56:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:37.011911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:37.014089+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:37.025788+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S21: 6 stages, 2 shot assignments"} 21:56:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:37.028859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:56:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:38.067026+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:38.072116+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:38.084923+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S22: 2 stages, 1 shot assignments"} 21:56:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:38.087293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:56:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:47.664097+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:47.666621+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:47.681434+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S23: 3 stages, 1 shot assignments"} 21:56:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:47.684454+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:56:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:56:52.576920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:56:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:56:52.579434+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:56:52.595166+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S24: 3 stages, 1 shot assignments"} 21:56:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:56:52.598299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:57:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:57:02.032044+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:57:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:57:02.035335+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:57:02.050872+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S25: 5 stages, 2 shot assignments"} 21:57:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:57:02.053954+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:57:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:57:03.565365+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:57:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:57:03.568514+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:57:03.584246+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S27: 3 stages, 1 shot assignments"} 21:57:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:57:03.587316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59179 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:57:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:57:09.609118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:57:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:57:09.611420+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:57:09.627427+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S26: 5 stages, 2 shot assignments"} 21:57:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:57:12.583234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:57:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:57:12.585394+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:57:12.602552+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S28: 4 stages, 2 shot assignments"} INFO: 127.0.0.1:59183 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:57:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:57:25.552039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:57:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:57:25.555412+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:57:25.570638+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S30: 3 stages, 2 shot assignments"} 21:57:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:57:29.705085+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:57:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T12:57:29.707043+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:57:29.722971+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S29: 5 stages, 3 shot assignments"} {"timestamp": "2026-05-27T12:57:29.738508+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T12:57:29.738678+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_camera_flow: completed"} {"timestamp": "2026-05-27T12:57:29.748262+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency started (run_id=ea15a850-8acf-4932-9044-e32b11f7d360, model=gpt)"} {"timestamp": "2026-05-27T12:57:29.753865+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_step", "message": "shot_dependency: 33/50 shots linked (code-based scoring)"} {"timestamp": "2026-05-27T12:57:29.761430+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency completed (completed=50/50, failed=0)"} {"timestamp": "2026-05-27T12:57:29.761594+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency: completed"} {"timestamp": "2026-05-27T12:57:29.813306+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 41 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-05-27T12:57:29.819914+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-05-27T12:57:29.825068+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-05-27T12:57:29.825918+00:00", "level": "WARNING", "logger": "app.core.applicability", "message": "_if_planning_doc fallback to False: '_StubRunner' object has no attribute 'db'"} {"timestamp": "2026-05-27T12:57:29.826733+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca status NOT advanced — incomplete steps: ['outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy']"} {"timestamp": "2026-05-27T12:57:29.828537+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode dc70c0b3, step=-, repaired=0)"} {"timestamp": "2026-05-27T12:57:29.834020+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=41e95e1d-2f37-47ea-a661-0aae90229b3c, model=gemini-pro)"} {"timestamp": "2026-05-27T12:57:29.839579+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 30 scenes, 13 characters"} 21:57:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:57:29.845056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59197 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59207 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59212 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:58:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:58:14.821807+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:58:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:58:14.824415+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:58:14.836098+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 12 outlooks (O01~O12)"} {"timestamp": "2026-05-27T12:58:14.836371+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1/2: 2 orphan characters — ['C08(로트와일러)', 'C12(검은 고양이)']"} 21:58:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:58:14.841167+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 21:58:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:58:19.048778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:58:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:58:19.052540+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:58:19.062057+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1: LLM returned 0 outlooks, stopping"} {"timestamp": "2026-05-27T12:58:19.062951+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) assigned to 2 characters: ['C08', 'C12']"} {"timestamp": "2026-05-27T12:58:19.075100+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=13/13, failed=0)"} {"timestamp": "2026-05-27T12:58:19.075399+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase1: completed"} {"timestamp": "2026-05-27T12:58:19.139358+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 41 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-05-27T12:58:19.148587+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-05-27T12:58:19.157957+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-05-27T12:58:19.160583+00:00", "level": "WARNING", "logger": "app.core.applicability", "message": "_if_planning_doc fallback to False: '_StubRunner' object has no attribute 'db'"} {"timestamp": "2026-05-27T12:58:19.162436+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca status NOT advanced — incomplete steps: ['outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy']"} {"timestamp": "2026-05-27T12:58:19.164522+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode dc70c0b3, step=-, repaired=0)"} {"timestamp": "2026-05-27T12:58:19.171771+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=b49b4151-1196-435b-a4e0-a37a0c30f82c, model=gemini-pro)"} {"timestamp": "2026-05-27T12:58:19.177504+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 12 outlooks to 30 scenes (O00: 2 chars excluded)"} 21:58:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:58:19.185617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59222 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:58:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:58:56.127345+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:58:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:58:56.128292+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:58:56.139003+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 27 scene assignments"} {"timestamp": "2026-05-27T12:58:56.139205+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1/3: 2씬 누락"} 21:58:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:58:56.142721+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59234 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:59:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:59:09.039042+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:59:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:59:09.040821+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:59:09.049895+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1: 2/2 복구"} {"timestamp": "2026-05-27T12:59:09.050206+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 injected into 2 scene-character slots"} {"timestamp": "2026-05-27T12:59:09.063327+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=28/30, failed=0)"} {"timestamp": "2026-05-27T12:59:09.063552+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase2: completed"} {"timestamp": "2026-05-27T12:59:09.121880+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 41 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-05-27T12:59:09.133773+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-05-27T12:59:09.141652+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-05-27T12:59:09.143116+00:00", "level": "WARNING", "logger": "app.core.applicability", "message": "_if_planning_doc fallback to False: '_StubRunner' object has no attribute 'db'"} {"timestamp": "2026-05-27T12:59:09.144269+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca status NOT advanced — incomplete steps: ['outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy']"} {"timestamp": "2026-05-27T12:59:09.146249+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode dc70c0b3, step=-, repaired=0)"} {"timestamp": "2026-05-27T12:59:09.152858+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=8f1d9611-2e44-41f3-914a-95a90b3af29b, model=gemini-pro)"} {"timestamp": "2026-05-27T12:59:09.157473+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 12 outlooks, 28 assignments (O00 protected)"} 21:59:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T12:59:09.163626+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59238 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 21:59:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T12:59:17.041017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:59:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T12:59:17.043307+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T12:59:17.051981+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 12→11 outlooks (removed 1, merged 0)"} {"timestamp": "2026-05-27T12:59:17.052196+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) preserved in phase3 result"} {"timestamp": "2026-05-27T12:59:17.052293+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 12 outlooks (removed 1)"} {"timestamp": "2026-05-27T12:59:17.063244+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=12/1, failed=0)"} {"timestamp": "2026-05-27T12:59:17.063489+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase3: completed"} {"timestamp": "2026-05-27T12:59:17.075621+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging started (run_id=127aeb82-f466-4d5b-b094-eaf5209c64ad, model=gpt)"} {"timestamp": "2026-05-27T12:59:17.087152+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging: 50 selected shots to analyze"} 21:59:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T12:59:17.090329+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59246 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59256 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59260 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59268 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59280 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59285 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59300 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:01:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:01:55.993831+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:01:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:01:56.000305+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:01:56.031535+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 1/5 attempt 1: 10 shots ok"} 22:01:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:01:56.033686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59311 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59315 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59328 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59339 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59344 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59352 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59363 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59367 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59376 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:04:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:04:39.543655+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:04:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:04:39.546234+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:04:39.575144+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 2/5 attempt 1: 10 shots ok"} 22:04:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:04:39.577338+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59390 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59394 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59403 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59427 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59432 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59447 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59458 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59461 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59475 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:07:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:07:51.144345+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:07:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:07:51.147605+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:07:51.176862+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 3/5 attempt 1: 10 shots ok"} 22:07:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:07:51.178821+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59487 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59491 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59505 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59512 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59520 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59525 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59534 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59546 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59549 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59558 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:10:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:10:50.520852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:10:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:10:50.524535+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:10:50.554072+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 4/5 attempt 1: 10 shots ok"} 22:10:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:10:50.556145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59569 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59574 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59589 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59602 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59605 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59618 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59628 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59632 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:13:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:13:28.644093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:13:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:13:28.646273+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:13:28.675141+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 5/5 attempt 1: 10 shots ok"} {"timestamp": "2026-05-27T13:13:28.692707+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging completed (completed=50/50, failed=0)"} {"timestamp": "2026-05-27T13:13:28.692819+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_staging: completed"} {"timestamp": "2026-05-27T13:13:28.702353+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify started (run_id=84093231-1b47-4f2c-aad5-c3f26278e04c, model=gpt)"} 22:13:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:13:28.711384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59641 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:13:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:13:58.548177+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:13:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:13:58.551045+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:13:58.563112+00:00", "level": "WARNING", "logger": "app.modules.pipeline.background_classify", "message": "background_classify attempt 1/3 failed: group 'bg_animal_shelter' kind=chain_bg but total_shots=2 (< 3)"} 22:14:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:14:00.574620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59654 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59658 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59667 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:14:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:14:56.289081+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:14:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:14:56.291717+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:14:56.315713+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T13:14:56.316749+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_classify: completed"} {"timestamp": "2026-05-27T13:14:56.339359+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan started (run_id=eaad81d7-a8ef-47a5-9ac6-20f8b5cbecc0, model=gpt)"} 22:14:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:14:56.357475+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:14:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:14:56.359013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:14:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai 22:14:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:14:56.361583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} {"timestamp": "2026-05-27T13:14:56.362950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59684 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:15:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:15:11.274621+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:15:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:15:11.276014+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:59689 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:15:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:15:21.792553+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:15:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:15:21.793619+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:15:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:15:29.073299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:15:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:15:29.076617+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:59697 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:15:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:15:48.125981+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:15:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:15:48.128137+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:15:48.164874+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan completed (completed=4/4, failed=0)"} {"timestamp": "2026-05-27T13:15:48.165071+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_master_plan: completed"} {"timestamp": "2026-05-27T13:15:48.174717+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt started (run_id=ca15ab62-7c6e-46b9-bac8-5197b39152e3, model=gpt)"} 22:15:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:15:48.187907+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:15:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:15:48.189886+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:15:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:15:48.193709+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:15:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:15:48.196669+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59726 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59730 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:16:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:16:38.848114+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:16:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:16:38.849722+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:16:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:16:38.871139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59749 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59761 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59765 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:17:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:17:26.134450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:17:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:17:26.135750+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:17:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:17:26.158886+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59779 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:17:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:17:47.811047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:17:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:17:47.813399+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:17:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:17:47.838145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:17:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:17:54.565101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:17:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:17:54.567882+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:17:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:17:54.588932+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:17:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:17:57.944045+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:17:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:17:57.946092+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:17:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:17:57.968410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59793 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59796 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:18:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:18:21.654730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:18:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:18:21.655710+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:18:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:18:21.671005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:18:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:18:34.422427+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:18:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:18:34.425035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:18:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:18:34.448113+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:59807 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:18:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:18:46.319314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:18:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:18:46.321975+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:18:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:18:56.126815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:18:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:18:56.127952+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:59819 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59822 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:19:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:19:24.617237+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:19:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:19:24.619430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:19:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:19:33.865961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:19:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:19:33.868693+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:19:33.902230+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T13:19:33.902372+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_prompt: completed"} {"timestamp": "2026-05-27T13:19:33.910440+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_essence_extraction: not_applicable"} {"timestamp": "2026-05-27T13:19:33.925061+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency started (run_id=b238c861-1d43-4ceb-87fa-b755463bedc8, model=gemini-pro)"} {"timestamp": "2026-05-27T13:19:33.935194+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency: 18 scenes need LLM (workers=5, already_done=0, single_shot_skipped=12)"} 22:19:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:19:33.940641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:19:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:19:33.942779+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:19:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:19:33.944561+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:19:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:19:33.947410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:19:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:19:33.948686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59838 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:19:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:19:47.818830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:19:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:19:47.822375+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:19:47.836541+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S7: 1 fixed elements"} 22:19:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:19:47.839552+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:19:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:19:57.619617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:19:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:19:57.623170+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:19:57.639524+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S1: 2 fixed elements"} 22:19:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:19:57.642559+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:20:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:20:01.845746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:20:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:20:01.848405+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:20:01.864880+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S8: 1 fixed elements"} 22:20:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:20:01.867904+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:20:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:20:09.002031+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:20:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:20:09.005537+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:20:09.019657+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S10: 1 fixed elements"} 22:20:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:20:09.022871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59852 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59854 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:20:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:20:21.925670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:20:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:20:21.927466+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:20:21.939125+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S2: 3 fixed elements"} 22:20:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:20:21.942022+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:20:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:20:32.646612+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:20:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:20:32.650215+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:20:32.666386+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S13: 2 fixed elements"} 22:20:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:20:32.669347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:20:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:20:33.785151+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:20:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:20:33.787435+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:20:33.801837+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S14: 1 fixed elements"} 22:20:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:20:33.804499+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:20:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:20:37.174233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:20:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:20:37.175204+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:20:37.185146+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S5: 1 fixed elements"} 22:20:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:20:37.186891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59868 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:20:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:20:48.388293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:20:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:20:48.391784+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:20:48.407638+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S15: 2 fixed elements"} 22:20:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:20:48.410665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:21:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:01.670358+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:01.672894+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:01.688786+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S19: 1 fixed elements"} 22:21:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:21:01.692744+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:21:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:04.709491+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:04.711911+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:04.722758+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S21: 1 fixed elements"} 22:21:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:21:04.725955+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59880 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59884 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:21:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:23.741475+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:23.742726+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:23.751556+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S25: 2 fixed elements"} 22:21:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:21:23.753399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:21:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:28.352459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:28.354784+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:28.371611+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S12: 2 fixed elements"} 22:21:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:21:28.373837+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:21:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:33.821167+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:33.822081+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:33.831761+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S18: 1 fixed elements"} 22:21:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:35.370597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:35.372128+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:35.387566+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S26: 2 fixed elements"} 22:21:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:35.829642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:35.833187+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:35.849479+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S28: 1 fixed elements"} INFO: 127.0.0.1:59904 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:21:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:47.037636+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:47.042329+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:47.058203+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S30: 1 fixed elements"} 22:21:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:21:54.557121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:21:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:21:54.558559+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:21:54.570490+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S29: 3 fixed elements"} {"timestamp": "2026-05-27T13:21:54.588374+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency completed (completed=30/30, failed=0)"} {"timestamp": "2026-05-27T13:21:54.588546+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_consistency: completed"} {"timestamp": "2026-05-27T13:21:54.602238+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render started (run_id=2fb7d27f-50ec-48e0-a53f-aabdc13cde1a, model=gpt)"} INFO: 127.0.0.1:59920 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59923 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59938 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59949 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59952 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59962 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59972 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59976 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59985 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60006 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60008 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60019 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60044 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60048 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60064 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60076 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60079 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60094 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60104 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60107 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60117 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60129 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60134 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60139 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60151 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60158 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60163 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60176 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60184 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60189 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60207 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60214 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60221 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK {"timestamp": "2026-05-27T13:32:35.729742+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: fp_l12_main skipped DB register (no_primary_loc_id) -- no master_plan background depends_on_fp this fp"} {"timestamp": "2026-05-27T13:32:35.733156+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: fp_l10_supermarket_exterior_main skipped DB register (no_primary_loc_id) -- no master_plan background depends_on_fp this fp"} {"timestamp": "2026-05-27T13:32:35.748493+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: registered 9 floor_plan ImageAssets"} {"timestamp": "2026-05-27T13:32:35.754951+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render verify: 2 fp skipped (no_primary_loc_id) — ['fp_l10_supermarket_exterior_main', 'fp_l12_main']"} {"timestamp": "2026-05-27T13:32:35.767552+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T13:32:35.767851+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_render: completed"} {"timestamp": "2026-05-27T13:32:35.775041+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload started (run_id=48d80725-2fcc-4ff2-981c-4d06ce146cb2, model=gpt)"} {"timestamp": "2026-05-27T13:32:35.791850+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T13:32:35.791942+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_overlay_payload: completed"} {"timestamp": "2026-05-27T13:32:35.800064+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier started (run_id=fd040652-c822-4bf3-9939-1d43afc42204, model=gpt)"} {"timestamp": "2026-05-27T13:32:35.818387+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T13:32:35.818580+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step base_location_dossier: completed"} {"timestamp": "2026-05-27T13:32:35.826490+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback started (run_id=1b4e782a-a1e0-47fa-aa10-eb17b2fe6d11, model=gpt)"} 22:32:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:32:35.834877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60236 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:33:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:33:02.033899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:33:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:33:02.046373+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:33:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:33:16.149350+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:33:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:33:16.168004+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60244 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60248 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60259 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:34:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:34:01.083373+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-05-27T13:34:01.084757+00:00", "level": "ERROR", "logger": "app.core.steps.floor_plan_geometry_readback_step", "message": "floor_plan_geometry_readback fp_id=fp_l05_main unexpected: response.choices[0].message.content is empty", "exception": "Traceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/floor_plan_geometry_readback_step.py\", line 226, in _execute\n readback = compute_readback(\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/floor_plan_geometry_readback.py\", line 235, in compute_readback\n out = vlm_provider(\n ^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/floor_plan_geometry_readback_step.py\", line 223, in counted\n return base_provider(**kw)\n ^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/floor_plan_vlm_provider.py\", line 798, in litellm_vlm_provider\n raise VlmProviderError(\napp.modules.pipeline.floor_plan_vlm_provider.VlmProviderError: response.choices[0].message.content is empty"} 22:34:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:34:01.107281+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60267 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60272 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:34:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:34:47.487551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:34:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:34:47.508513+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60284 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60293 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:35:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:35:28.050491+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:35:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:35:28.070175+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60301 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:35:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:35:49.335809+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:35:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:35:49.352679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60313 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:36:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:36:05.664739+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:36:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:36:05.684121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60330 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:36:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:36:27.229781+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:36:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:36:27.243219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60336 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:36:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:36:39.443320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:36:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:36:39.460701+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:36:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:36:57.453324+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:36:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:36:57.473184+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60354 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:37:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:37:14.250071+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-05-27T13:37:14.269497+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback partial (completed=10/1, failed=1)"} {"timestamp": "2026-05-27T13:37:14.269594+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_geometry_readback: partial"} {"timestamp": "2026-05-27T13:37:14.269620+00:00", "level": "WARNING", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_geometry_readback partial — continuing (downstream may use partial results)"} {"timestamp": "2026-05-27T13:37:14.283469+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan started (run_id=ba6af5a0-c040-41d5-8106-4f1b154068cb, model=gpt)"} {"timestamp": "2026-05-27T13:37:14.297613+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan completed (completed=0/1, failed=0)"} {"timestamp": "2026-05-27T13:37:14.297758+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_aware_bg_render_plan: completed"} {"timestamp": "2026-05-27T13:37:14.305596+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt started (run_id=a1404e39-35ad-4752-b718-1ec666d386d9, model=gpt)"} 22:37:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:14.315438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:37:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:14.316979+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:37:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:14.318046+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:37:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:14.321333+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60366 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60371 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:37:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:37:45.671228+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:37:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:37:45.673464+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:37:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:45.684832+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:37:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:37:47.889486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:37:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:37:47.892237+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:37:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:47.908810+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:37:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:37:50.307360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:37:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:37:50.309575+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:37:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:50.323921+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:37:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:37:56.394540+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:37:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:37:56.400000+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:37:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:37:56.412234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60391 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:38:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:38:15.538972+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:38:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:38:15.541395+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:38:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:38:15.556920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60400 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60404 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:38:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:38:38.414644+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:38:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:38:38.416089+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:38:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:38:38.427140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:38:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:38:46.720420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:38:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:38:46.723174+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:38:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:38:46.736240+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60419 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:39:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:39:02.545802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:39:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:39:02.549194+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:39:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:39:02.563813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:39:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:39:08.045360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:39:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:39:08.048616+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:39:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:39:08.062031+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60428 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:39:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:39:23.324398+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:39:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:39:23.326448+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:39:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:39:23.340499+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:39:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:39:27.624695+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:39:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:39:27.628321+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:39:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:39:27.644181+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60437 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:39:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:39:39.353231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:39:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:39:39.354444+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:39:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:39:39.363932+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:39:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:39:58.038545+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:39:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:39:58.040888+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:39:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:39:58.054968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:39:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:39:58.441320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:39:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:39:58.443472+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:39:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:39:58.457415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60449 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:40:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:40:01.981625+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:40:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:40:01.984154+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:40:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:40:01.998611+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:40:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:40:15.759469+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:40:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:40:15.762397+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:40:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:40:15.780532+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:60457 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60462 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:40:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:40:38.668639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:40:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:40:38.670330+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:40:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:40:38.680798+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:40:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:40:44.260100+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:40:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:40:44.261662+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:40:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:40:44.270545+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:40:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:40:44.994696+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:40:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:40:44.997343+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60473 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60481 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:41:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:41:23.422197+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:41:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:41:23.423140+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 22:41:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:41:26.804637+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:41:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:41:26.807469+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60486 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:41:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:41:31.117050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:41:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:41:31.119680+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:41:31.147879+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-05-27T13:41:31.148117+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_prompt: completed"} {"timestamp": "2026-05-27T13:41:31.161392+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy started (run_id=2764045e-6e4c-4443-a1f4-f527db2935d2, model=gpt)"} {"timestamp": "2026-05-27T13:41:31.177467+00:00", "level": "INFO", "logger": "app.core.steps.episode_reference_policy_step", "message": "episode_reference_policy: 41 entities — 23 text_only, 18 other"} {"timestamp": "2026-05-27T13:41:31.186545+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy completed (completed=41/41, failed=0)"} {"timestamp": "2026-05-27T13:41:31.186873+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_reference_policy: completed"} {"timestamp": "2026-05-27T13:41:31.246150+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 41 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-05-27T13:41:31.253401+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-05-27T13:41:31.261484+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='경찰수사점퍼' kept existing entry, skipped new from raw='경찰수사점퍼'"} {"timestamp": "2026-05-27T13:41:31.269576+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 13 character-outlook links (Δ +13 / -0)"} {"timestamp": "2026-05-27T13:41:31.274973+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-05-27T13:41:31.275852+00:00", "level": "WARNING", "logger": "app.core.applicability", "message": "_if_planning_doc fallback to False: '_StubRunner' object has no attribute 'db'"} {"timestamp": "2026-05-27T13:41:31.276809+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'floor_plan_geometry_readback']"} {"timestamp": "2026-05-27T13:41:31.278248+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode dc70c0b3, step=-, repaired=0)"} {"timestamp": "2026-05-27T13:41:31.285361+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=bd762095-5fc6-4ccf-beb0-b8813c6c00ac, model=gemini-pro)"} {"timestamp": "2026-05-27T13:41:31.290204+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 50 shot_staging entries loaded"} {"timestamp": "2026-05-27T13:41:31.290975+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 18 scenes with fixed elements loaded"} {"timestamp": "2026-05-27T13:41:31.300424+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 33 shots mapped from 22 backgrounds"} {"timestamp": "2026-05-27T13:41:31.301422+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 33 shots mapped to bg_id from 22 backgrounds"} {"timestamp": "2026-05-27T13:41:31.305856+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 9 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-05-27T13:41:31.310443+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 30 segments → 50 tasks (shot-based, 0 edited skipped)"} 22:41:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:41:31.347205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:41:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:41:31.349981+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:41:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:41:31.352889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:41:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:41:31.354013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:41:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:41:31.355649+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60508 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:42:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:06.237372+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:06.240071+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:42:06.256410+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: 제거할 ID: L01 — retry"} 22:42:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:06.258571+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:42:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:07.277156+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:07.278730+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:42:07.292873+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 3: 제거할 ID: L01 — retry"} 22:42:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:07.294534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:42:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:11.294558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:11.296753+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:42:11.317652+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:42:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:11.338953+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:42:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:14.153790+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:14.156164+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:42:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:14.194947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60520 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60525 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:42:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:31.579234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:31.581862+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:42:31.604807+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 1: C10 유효하지 않은 아웃룩 → O10로 교체"} 22:42:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:31.623728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:42:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:38.436886+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:38.439547+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:42:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:42:38.475215+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:42:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:43.793437+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:43.797167+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:42:43.819116+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: retry 후에도 위반 {'L01'} — 강제 제거"} 22:42:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:43.837615+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:42:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:43.881347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:42:43.882451+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:42:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:43.895046+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:42:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:46.109394+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:46.110541+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:42:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:42:46.126613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:42:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:51.848803+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:42:51.850280+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:42:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:51.885199+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:42:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:42:57.702208+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:42:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:42:57.704818+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:42:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:42:57.730610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60546 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:43:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:11.292162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:11.293566+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:43:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:11.325642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:12.258934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:12.259430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:43:12.269966+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S5 shot7 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:43:12.270080+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 5: C05 유효하지 않은 아웃룩 → O05로 교체"} 22:43:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:43:12.277502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:43:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:15.313889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:15.315775+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:43:15.336969+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S6 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:43:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:15.356555+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:16.974079+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:43:16.975404+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:43:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:16.999360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:18.455371+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:18.458150+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:43:18.491048+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C09 (visible=[]) render_prompt_card:s10.shot4"} {"timestamp": "2026-05-27T13:43:18.491197+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C05 (visible=[]) render_prompt_card:s10.shot4"} 22:43:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:18.499858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60558 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:43:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:30.396100+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:30.398962+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:43:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:43:30.434993+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:60563 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:43:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:35.856474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:43:35.858961+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:43:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:35.876548+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:41.028244+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:41.029631+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:43:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:41.069428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:41.984525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:41.987073+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:43:41.990666+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} 22:43:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:42.006307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:50.528129+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:50.530186+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:43:50.548045+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 10: C09 유효하지 않은 아웃룩 → O09로 교체"} 22:43:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:43:50.558049+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:43:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:55.715139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:55.717199+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:43:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:55.760964+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:58.833281+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:43:58.835075+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:43:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:58.856488+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:43:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:43:59.797188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:43:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:43:59.799922+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:43:59.823475+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C09 (visible=[]) render_prompt_card:s10.shot4"} {"timestamp": "2026-05-27T13:43:59.823733+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C05 (visible=[]) render_prompt_card:s10.shot4"} 22:43:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:43:59.842569+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60581 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:44:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:10.008780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:44:10.011554+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:44:10.035088+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:44:10.035360+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:44:10.051666+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 12 Shot 5 contract violation (primary): owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', 'curtain', 'floor cushion', 'footprint', 'futon', 'media stand', 'photo', 'sofa', 'stool', 'table', 'window'] — unknown label (exact match required, no fuzzy) scene_detail s12_shot5"} 22:44:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:44:10.053618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:44:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:11.488123+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:44:11.491687+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:44:11.515476+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S11 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:44:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:44:11.527392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:44:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:16.116865+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:44:16.119343+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:44:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:44:16.143494+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60590 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:44:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:29.701994+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:44:29.703899+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:44:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:44:29.739568+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:44:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:30.016562+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:44:30.019063+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:44:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:44:30.055078+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:60596 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:44:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:36.481861+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:44:36.484630+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:44:36.507415+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 12: C05 유효하지 않은 아웃룩 → O05로 교체"} 22:44:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:44:36.519524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:44:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:39.740982+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:44:39.743740+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:44:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:44:39.766615+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:44:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:44.308325+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:44:44.309785+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:44:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:44:44.342003+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:44:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:46.746008+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:44:46.748800+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:44:46.771600+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: 제거할 ID: L01 — retry"} 22:44:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:44:46.774219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:44:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:48.228358+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:44:48.230890+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:44:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:44:48.255622+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:44:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:52.633000+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:44:52.633930+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:44:52.640224+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C01', 'L11'])"} 22:44:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:44:52.657369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:44:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:44:55.686046+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:44:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:44:55.688548+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:44:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:44:55.711825+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60615 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:45:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:12.980166+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:45:12.982886+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:45:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:45:13.016940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:45:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:14.993328+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:45:14.996062+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:45:15.021088+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: retry 후에도 위반 {'L04'} — 강제 제거"} {"timestamp": "2026-05-27T13:45:15.021350+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S13 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:45:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:45:15.039984+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:45:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:16.562690+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:45:16.565843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:45:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:45:16.602486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60628 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:45:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:19.617984+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:45:19.619897+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:45:19.629955+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P02 (visible=['C01', 'C05'])"} 22:45:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:45:19.643051+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60635 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:45:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:37.681867+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:45:37.684498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:45:37.706893+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S16 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:45:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:45:37.719903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:45:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:39.196947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:45:39.199609+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:45:39.223619+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:45:39.224002+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C01', 'L11'])"} {"timestamp": "2026-05-27T13:45:39.233226+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C01', 'L10'])"} {"timestamp": "2026-05-27T13:45:39.233377+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=['C01']) render_prompt_card:s19.shot3"} 22:45:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:45:39.242430+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:45:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:47.306078+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:45:47.308179+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:45:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:45:47.343039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:45:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:47.398299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:45:47.399938+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:45:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:45:47.416694+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:45:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:45:53.355367+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:45:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:45:53.357384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:45:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:45:53.370113+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:60652 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:46:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:02.427358+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:46:02.429899+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:46:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:46:02.443733+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:46:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:09.953051+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:09.955704+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:09.979951+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S19 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:46:09.980322+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C01', 'L10'])"} {"timestamp": "2026-05-27T13:46:09.980443+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=['C01']) render_prompt_card:s19.shot3"} 22:46:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:46:09.991913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:46:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:10.666619+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:46:10.669266+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:10.680840+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S17_Shot1: owned redraw repair 성공 — 1 redraw_violation 해소"} 22:46:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:10.696520+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:46:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:12.392016+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:12.395826+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:12.427989+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P02 (visible=['C01', 'C05'])"} 22:46:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:12.447420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:46:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:13.920505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:13.923218+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:13.946700+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 19: 제거할 ID: L09 — retry"} 22:46:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:13.949032+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:46:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:14.119374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:46:14.121623+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:46:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:14.147556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:46:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:15.542686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:15.545346+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:15.569396+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S18 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:46:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:46:15.582261+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:60677 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:46:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:23.872456+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:46:23.874348+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:46:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:23.892123+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60682 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:46:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:35.037463+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:35.039079+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:35.056760+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: 제거할 ID: L14 — retry"} 22:46:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:35.058798+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:46:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:42.683891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:42.686503+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:42.709484+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 19: retry 후에도 위반 {'L01'} — 강제 제거"} 22:46:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:42.727748+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:46:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:45.435974+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:45.438613+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:45.462792+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: 제거할 ID: L13 — retry"} 22:46:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:45.465449+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:46:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:51.508317+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:51.512360+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:46:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:46:51.541990+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:46:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:46:58.004217+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:46:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:46:58.006961+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:46:58.030849+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: retry 후에도 위반 {'L01'} — 강제 제거"} 22:46:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:46:58.049518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:47:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:00.077623+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:47:00.080444+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:47:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:00.103801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:47:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:00.499603+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:00.500731+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:00.513137+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S22 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:47:00.524840+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 22 Shot 2 contract violation (primary): owned_object_usage[0].owned_token 'street' not in normalized owned_list ['CCTV pole', 'bicycle', 'bicycle rack', 'building', 'crosswalk', 'curb', 'door', 'drain', 'road', 'sidewalk', 'sign panel', 'streetlight', 'window'] — unknown label (exact match required, no fuzzy) scene_detail s22_shot2"} 22:47:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:00.526518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60704 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:47:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:16.965210+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:16.966404+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:16.989399+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: retry 후에도 위반 {'L01'} — 강제 제거"} 22:47:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:17.005393+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60710 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:47:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:20.304454+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:20.307095+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:20.331469+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 23: C01 유효하지 않은 아웃룩 null → O01로 교체"} 22:47:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:20.349928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:47:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:26.902401+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:26.905125+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:26.930225+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 24: 제거할 ID: L01 — retry"} 22:47:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:26.933022+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60719 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:47:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:33.677391+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:33.679282+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:33.698340+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S25 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:47:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:33.711329+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:47:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:35.187651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:35.190312+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:35.212956+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S25 shot7 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:47:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:47:35.225403+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:47:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:40.682455+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:47:40.685936+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:47:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:40.710934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:47:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:44.604205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:44.605950+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:44.631092+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 26: 제거할 ID: L01 — retry"} 22:47:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:44.633298+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:47:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:47.114903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:47.117601+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:47:47.140483+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:47:47.140687+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:47:47.140769+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:47:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:47.158182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:47:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:47:55.761065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:47:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:47:55.762631+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:47:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:47:55.803275+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60738 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:48:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:04.471923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:04.474570+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:48:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:48:04.511868+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:48:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:06.457142+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:06.458815+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:48:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:48:06.488835+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:48:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:10.639074+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:48:10.641055+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:48:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:48:10.662360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:48:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:11.464186+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:11.465508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:48:11.465811+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} 22:48:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:48:11.480418+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:48:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:12.225808+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:12.227431+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:48:12.229707+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 2 sanitized failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying GPT fallback"} 22:48:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-05-27T13:48:12.232593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 22:48:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:12.321518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:48:12.322717+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:48:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:48:12.341218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:48:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:17.264625+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:17.265660+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:48:17.288998+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: 제거할 ID: L19 — retry"} 22:48:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:48:17.291072+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60751 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:48:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:25.829695+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:25.831214+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:48:25.846280+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 26: retry 후에도 위반 {'L02'} — 강제 제거"} 22:48:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:48:25.860832+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60759 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:48:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:45.513139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:45.514553+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:48:45.533855+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:48:45.534015+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:48:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:48:45.547687+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:48:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:46.047506+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:46.049245+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:48:46.069598+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-05-27T13:48:46.069766+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S28 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:48:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:48:46.082739+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:48:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:46.224485+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:46.229755+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 22:48:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:46.260323+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:48:46.261416+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:48:46.271705+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: 제거할 ID: L01 — retry"} 22:48:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:48:46.272923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:48:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:48:56.165930+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:48:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:48:56.168247+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60769 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:49:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:49:12.074454+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:49:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:49:12.077113+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60776 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:49:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:49:27.917334+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:49:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:49:27.918788+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:49:27.938645+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: retry 후에도 위반 {'L02'} — 강제 제거"} {"timestamp": "2026-05-27T13:49:27.947081+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29 Shot 8 contract violation (primary): S29_Shot8 (Source 2, RO-23+RO-27): t2i_variations[0].t2i_prompt uses entity_canon.name '수리영' (base=C01) but no specific ID from ['C01', 'C01O01'] found within ±60 char window in same sentence. Other visible C## tokens do not satisfy — must be the specific entity's own ID."} INFO: 127.0.0.1:60782 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:49:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:49:44.753227+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:49:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-05-27T13:49:44.756682+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:49:44.776895+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: 제거할 ID: L20 — retry"} 22:49:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:49:44.779420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60794 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60801 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60806 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:50:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:50:43.658607+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:50:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:50:43.661210+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:50:43.664897+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} 22:50:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:50:43.680770+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60818 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60824 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:51:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:51:32.470801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:51:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:51:32.473560+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:51:32.496948+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-05-27T13:51:32.497275+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:51:32.507334+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Retrying 3 failed tasks (typed last 5: ['S12_Shot5(step.contract_violation)', 'S22_Shot2(step.contract_violation)', 'S29_Shot8(step.scene_detail.contract_violation_entity_name_no_specific_id)'])"} INFO: 127.0.0.1:60829 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:51:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:51:34.547225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:51:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:51:34.551259+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:51:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:51:34.553856+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:51:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:51:35.678988+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:51:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:51:35.681419+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:51:35.684433+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} 22:51:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:51:35.699108+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60852 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:52:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:52:06.344385+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:52:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:52:06.345844+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:52:06.356400+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:52:06.357373+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:52:06.363528+00:00", "level": "ERROR", "logger": "app.core.steps.detail_steps", "message": "Scene 12 Shot 5 contract violation (retry): owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', 'curtain', 'floor cushion', 'footprint', 'futon', 'media stand', 'photo', 'sofa', 'stool', 'table', 'window'] — unknown label (exact match required, no fuzzy) scene_detail s12_shot5"} 22:52:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:52:09.453314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:52:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:52:09.455922+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:52:09.478732+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: 제거할 ID: L01 — retry"} 22:52:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-05-27T13:52:09.481475+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 22:52:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:52:09.820026+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:52:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:52:09.821948+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:52:09.840291+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S22 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:52:09.840489+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S22 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 22:52:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:52:09.850277+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 22:52:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:52:17.766112+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:52:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:52:17.769985+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:52:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:52:17.783616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:60864 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:52:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:52:29.245155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:52:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:52:29.247181+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 22:52:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-05-27T13:52:29.259140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:60871 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:52:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:52:34.728113+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:52:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-05-27T13:52:34.733049+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:52:34.739911+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S22_Shot2: owned redraw repair 성공 — 1 redraw_violation 해소"} INFO: 127.0.0.1:60885 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK 22:53:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-05-27T13:53:04.670055+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 22:53:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-05-27T13:53:04.672990+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-05-27T13:53:04.695400+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: retry 후에도 위반 {'L02'} — 강제 제거"} {"timestamp": "2026-05-27T13:53:04.695580+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:53:04.695678+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-05-27T13:53:04.713076+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step scene_detail _execute_and_finalize crashed: scene_detail: 1 shots failed after 1 retry (total typed failures: 4). Last 5: S12_Shot5 [primary/step.contract_violation]: owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', '; S22_Shot2 [primary/step.contract_violation]: owned_object_usage[0].owned_token 'street' not in normalized owned_list ['CCTV pole', 'bicycle', 'bicycle rack', 'buildi; S29_Shot8 [primary/step.scene_detail.contract_violation_entity_name_no_specific_id]: S29_Shot8 (Source 2, RO-23+RO-27): t2i_variations[0].t2i_prompt uses entity_canon.name '수리영' (base=C01) but no specific ; S12_Shot5 [retry/step.contract_violation]: owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', '\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1224, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/detail_steps.py\", line 1633, in _execute\n results, failed = self._run_shots_with_retry(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/detail_steps.py\", line 1360, in _run_shots_with_retry\n raise AppError(\napp.core.errors.AppError: scene_detail: 1 shots failed after 1 retry (total typed failures: 4). Last 5: S12_Shot5 [primary/step.contract_violation]: owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', '; S22_Shot2 [primary/step.contract_violation]: owned_object_usage[0].owned_token 'street' not in normalized owned_list ['CCTV pole', 'bicycle', 'bicycle rack', 'buildi; S29_Shot8 [primary/step.scene_detail.contract_violation_entity_name_no_specific_id]: S29_Shot8 (Source 2, RO-23+RO-27): t2i_variations[0].t2i_prompt uses entity_canon.name '수리영' (base=C01) but no specific ; S12_Shot5 [retry/step.contract_violation]: owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', '\n"} {"timestamp": "2026-05-27T13:53:04.713196+00:00", "level": "ERROR", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_detail error: scene_detail: 1 shots failed after 1 retry (total typed failures: 4). Last 5: S12_Shot5 [primary/step.contract_violation]: owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', '; S22_Shot2 [primary/step.contract_violation]: owned_object_usage[0].owned_token 'street' not in normalized owned_list ['CCTV pole', 'bicycle', 'bicycle rack', 'buildi; S29_Shot8 [primary/step.scene_detail.contract_violation_entity_name_no_specific_id]: S29_Shot8 (Source 2, RO-23+RO-27): t2i_variations[0].t2i_prompt uses entity_canon.name '수리영' (base=C01) but no specific ; S12_Shot5 [retry/step.contract_violation]: owned_object_usage[0].owned_token 'dark red paint' not in normalized owned_list ['TV', 'bed', 'blood', 'chair', 'cup', '"} INFO: 127.0.0.1:60892 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60898 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60906 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60913 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps/scene_detail/result HTTP/1.1" 200 OK INFO: 127.0.0.1:60915 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60919 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60924 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60928 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60932 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60952 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60967 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60974 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60991 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61008 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61014 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61037 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61063 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61082 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61103 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61123 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61152 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61175 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61193 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61217 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61247 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61273 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61297 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61316 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61336 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61354 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61382 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61405 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61426 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61449 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61482 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61508 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61532 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61551 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61571 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61589 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61615 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61638 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61659 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61683 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61712 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61738 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61762 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61782 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61802 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61820 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61850 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61875 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61894 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61917 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61948 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61974 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61998 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62017 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62036 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62054 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62081 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62105 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62123 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62147 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62178 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62204 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62229 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62248 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62268 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62286 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62313 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62341 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62359 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62382 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62413 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62439 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62463 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62482 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62501 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62520 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62546 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62569 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62588 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62611 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62643 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62669 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62694 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62715 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62734 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62755 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62780 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62805 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62824 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62847 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62879 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62904 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62929 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62948 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62967 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62987 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63013 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63036 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63055 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63078 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63109 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63136 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63160 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63178 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63197 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63218 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63244 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63268 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63287 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63311 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63343 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63368 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63394 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63411 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63431 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63453 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63471 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63497 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63520 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63543 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63577 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63594 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58097 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58336 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps/scene_detail/result HTTP/1.1" 401 Unauthorized INFO: 127.0.0.1:58337 - "GET /api/v1/projects/4f948193-6809-4ae3-a3c6-2ca4e8af1c1a/episodes/dc70c0b3-5c09-4664-8c0f-9cac38c0c6ca/steps HTTP/1.1" 401 Unauthorized INFO: 127.0.0.1:59446 - "GET /api/openapi.json HTTP/1.1" 200 OK INFO: 127.0.0.1:59469 - "GET /api/openapi.json HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [82930]