/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 [7127] INFO: Waiting for application startup. {"timestamp": "2026-07-02T11:24:37.425358+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:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:52634 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-02T11:24:41.227579+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:b0ad5c18-5140-4022-a2b0-805de0e5a385:0d30302a-51c8-4ac9-98e2-6cd9180512bf:outdoor_site_layout (Step outdoor_site_layout for 0d30302a-51c8-4ac9-98e2-6cd9180512bf)"} INFO: 127.0.0.1:52636 - "POST /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps/outdoor_site_layout?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-07-02T11:24:41.244170+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout started (run_id=df9f2fcf-cdd7-4259-84fa-c88cab78808b, model=gpt)"} {"timestamp": "2026-07-02T11:24:41.258722+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 20:24:41 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-07-02T11:24:41.276691+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-07-02T11:24:41.276997+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 8 deployments (1 Gemini keys, OpenAI=True)"} 20:24:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:24:41.290227+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:52644 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:25:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:25:43.086035+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=06a464ab-7164-790a-8000-2b8c11839adf&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. 20:25:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:25:43.088885+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-02T11:25:43.089184+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_site_layout] Tier 1 failed (LLM returned empty response for step=outdoor_site_layout, model=gpt), trying sanitized input"} 20:25:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:25:43.091958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:52664 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:26:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:26:47.746985+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:26:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:26:47.748809+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-02T11:26:47.751054+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_site_layout] Tier 2 sanitized failed (LLM returned empty response for step=outdoor_site_layout, model=gpt), trying GPT fallback"} 20:26:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:26:47.753366+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:52686 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:27:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:27:34.555304+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:27:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:27:34.556622+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:27:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:27:34.574616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:52703 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:27:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:27:52.799981+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:27:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:27:52.801704+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:27:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:27:52.810845+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:28:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:28:18.288884+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:28:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:28:18.290127+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:28:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:28:18.298911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:28:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:28:43.209687+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:28:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:28:43.211369+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-02T11:28:43.221923+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 1 key(s) loaded"} INFO: 127.0.0.1:52729 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52748 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52763 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52786 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52800 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52819 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52835 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52852 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52868 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52891 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52911 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52929 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52944 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52958 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52981 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53000 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53014 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53029 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53045 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53066 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:48:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:48:38.654263+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53087 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:48:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:48:57.587861+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:48:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:48:57.589346+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:48:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:48:57.605949+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:49:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:49:03.904958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:49:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:49:03.906637+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:49:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:49:03.914968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:49:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:49:15.730361+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:49:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:49:15.731575+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:49:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:49:35.795861+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53112 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:50:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:50:39.017475+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:50:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:50:39.019148+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-02T11:50:39.020357+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_site_layout] Tier 1 failed (LLM returned empty response for step=outdoor_site_layout, model=gpt), trying sanitized input"} 20:50:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:50:39.027700+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53127 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:51:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:51:40.281333+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:51:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:51:40.282959+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-02T11:51:40.284944+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_site_layout] Tier 2 sanitized failed (LLM returned empty response for step=outdoor_site_layout, model=gpt), trying GPT fallback"} 20:51:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:51:40.287016+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53144 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:52:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:52:43.139669+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:52:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:52:43.141588+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-02T11:52:43.143734+00:00", "level": "WARNING", "logger": "app.core.steps.outdoor_site_layout_step", "message": "outdoor_site_layout: L03 layout 추출 실패: LLM returned empty response for step=outdoor_site_layout, model=gpt"} 20:52:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:52:43.147017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53167 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:53:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:53:52.722374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:53:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:53:52.723610+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-02T11:53:52.725277+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_site_layout] Tier 1 failed (LLM returned empty response for step=outdoor_site_layout, model=gpt), trying sanitized input"} 20:53:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:53:52.731117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53186 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:54:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:54:27.667496+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:54:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:54:27.668682+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:54:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:54:27.685900+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:54:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:54:41.245120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:54:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:54:41.246769+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:54:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:54:41.263709+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:54:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:54:45.532601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:54:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:54:45.534005+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:53207 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:54:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:54:55.085890+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:55:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:55:46.592576+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:55:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:55:46.593919+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:55:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:55:46.612148+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53226 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 20:55:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:55:55.127198+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:55:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:55:55.129412+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:55:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:55:55.138108+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:56:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:56:14.100760+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:56:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:56:14.102319+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 20:56:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T11:56:14.109985+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 20:56:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T11:56:22.161354+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:56:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T11:56:22.162763+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:53247 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53272 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53292 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53307 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53323 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53338 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53361 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53381 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 21:04:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T12:04:41.997057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53398 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK 21:04:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T12:04:55.747758+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:04:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T12:04:55.749500+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:04:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T12:04:55.764812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:05:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T12:05:00.762514+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:05:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T12:05:00.764889+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:05:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T12:05:10.686648+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:05:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T12:05:24.138444+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:05:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T12:05:24.140062+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 21:05:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-02T12:05:24.156725+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 21:05:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-02T12:05:31.383174+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 21:05:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-02T12:05:31.384407+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:53423 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53440 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53462 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53480 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53498 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53514 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53528 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53551 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53571 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-02T12:14:52.547495+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout completed (completed=7/8, failed=0)"} {"timestamp": "2026-07-02T12:14:52.591618+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 38 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-02T12:14:52.646997+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 186 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-02T12:14:52.664130+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-02T12:14:52.686368+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 14 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-02T12:14:52.700754+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 24 total short_ids found"} {"timestamp": "2026-07-02T12:14:52.710678+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0d30302a, step=outdoor_site_layout, repaired=0)"} INFO: 127.0.0.1:53585 - "GET /api/v1/projects/b0ad5c18-5140-4022-a2b0-805de0e5a385/episodes/0d30302a-51c8-4ac9-98e2-6cd9180512bf/steps HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [7127]