/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 [75376] INFO: Waiting for application startup. {"timestamp": "2026-08-29T08:26:25.303968+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."} {"timestamp": "2026-08-29T08:26:25.546372+00:00", "level": "INFO", "logger": "app.core.step_lock", "message": "스텝 락 하트비트 시작 (간격=30s, boot_id=f1c0e6c8)"} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-08-29T08:26:26.088025+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 2 key(s) loaded"} INFO: 127.0.0.1:63127 - "GET /api/health HTTP/1.1" 200 OK INFO: 127.0.0.1:63129 - "GET /api/health HTTP/1.1" 200 OK INFO: 127.0.0.1:63132 - "GET /api/projects/da049582-2c6d-492c-979d-f468d61bab6e/episodes HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63134 - "GET /api/projects/da049582-2c6d-492c-979d-f468d61bab6e/episodes HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63136 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63142 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:63142 - "POST /api/v1/projects/da049582-2c6d-492c-979d-f468d61bab6e/episodes/ HTTP/1.1" 200 OK INFO: 127.0.0.1:63163 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:63163 - "POST /api/v1/projects/da049582-2c6d-492c-979d-f468d61bab6e/episodes/97375a4b-b465-4fd6-9a2d-800e0eb01685/steps/run-all?mode=resume&category=analysis HTTP/1.1" 400 Bad Request INFO: 127.0.0.1:63166 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-29T08:29:20.608948+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: run_all:da049582-2c6d-492c-979d-f468d61bab6e:97375a4b-b465-4fd6-9a2d-800e0eb01685:all (Run all all steps for 97375a4b-b465-4fd6-9a2d-800e0eb01685)"} INFO: 127.0.0.1:63166 - "POST /api/v1/projects/da049582-2c6d-492c-979d-f468d61bab6e/episodes/97375a4b-b465-4fd6-9a2d-800e0eb01685/steps/run-all?mode=resume&category=all&image_call_cap=200&approve_image_generation=true HTTP/1.1" 200 OK {"timestamp": "2026-08-29T08:29:20.621713+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=303e1c48-da27-4668-be1c-6215fda133a1, model=gemini-lite)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a92986-09f6-7fc1-bee3-dde5035df41a&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-29T08:29:20.637475+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 막차_8965709c.pdf (33394 bytes, 2 pages) → model=gemini-lite"} {"timestamp": "2026-08-29T08:29:20.637673+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik usage 에 캐시 항목 기록 켬 (create_usage_object 래핑)"} {"timestamp": "2026-08-29T08:29:20.637702+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab, url: http://192.168.133.87:5173/api, cache_wiring=ok)"} 17:29:20 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-29T08:29:20.642457+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-29T08:29:20.642648+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=primary/2)"} 17:29:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:29:20.664360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:29:27 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:29:27.251463+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:29:27 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:29:27.260443+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:29:27.262624+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: extracted 1352 chars from 막차_8965709c.pdf (finish_reason=stop)"} {"timestamp": "2026-08-29T08:29:27.273282+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:29:27.273533+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step text_cleanup: completed"} {"timestamp": "2026-08-29T08:29:27.279846+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-08-29T08:29:27.280943+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation started (run_id=ca7215d6-233d-4741-972a-816f50b1a051, model=gemini-flash)"} 17:29:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:29:27.298762+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:29:30 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:29:30.008400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:29:30 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:29:30.011427+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:29:30.023407+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "scene_segmentation 1회차: 후보 3개 · 통과 3개"} {"timestamp": "2026-08-29T08:29:30.023560+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "scene_segmentation 확정: ^#(\\d+)\\.\\s*(.+)$ · 3개 · 헤딩 내용 1.00"} {"timestamp": "2026-08-29T08:29:30.029669+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:29:30.029869+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_segmentation: completed"} {"timestamp": "2026-08-29T08:29:30.034681+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary started (run_id=d8f6a62d-fa3d-46e6-8b0a-fcc1fa130d7c, model=gpt-mini)"} 17:29:30 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:29:30.042757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:29:33 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:29:33.410453+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:29:33 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:29:33.415228+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:29:33.433584+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:29:33.433865+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_summary: completed"} {"timestamp": "2026-08-29T08:29:33.442020+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules started (run_id=9038a4e9-b906-4e5c-a76e-57fbf817f95f, model=gpt)"} 17:29:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:29:33.454828+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:29:34 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-29T08:29:34.774793+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 17:29:40 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:29:40.490846+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:29:40 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-29T08:29:40.953116+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 17:29:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:29:46.342781+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:29:46 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-29T08:29:46.813548+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 17:29:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:29:52.405489+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:29:53 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-29T08:29:53.020124+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 17:29:58 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-29T08:29:58.573122+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-29T08:29:58.573691+00:00", "level": "WARNING", "logger": "app.core.openai_keys", "message": "OpenAI 키 전환: primary → secondary (사유=429 · 지점=router.completion[gpt]). 이 프로세스는 이후 secondary 슬롯을 쓴다."} {"timestamp": "2026-08-29T08:29:58.573814+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router 무효화 — OpenAI 키 슬롯 전환 반영"} 17:29:58 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-29T08:29:58.582974+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-29T08:29:58.583272+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=secondary/2)"} 17:29:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:29:58.584226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:30:18 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:30:18.420396+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:30:18 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:30:18.423398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:30:18.429685+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "VisualWorldRulesStep: 4 rules, era=1983년 늦가을, 현대 이전의 1980년대 초반, region=대한민국, planning_doc=False"} {"timestamp": "2026-08-29T08:30:18.434766+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:30:18.434865+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_world_rules: completed"} {"timestamp": "2026-08-29T08:30:18.438597+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save started (run_id=3e77029c-f03b-4129-8f94-87afbc78d2c9, model=-)"} {"timestamp": "2026-08-29T08:30:18.441677+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:30:18.441742+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_save: completed"} {"timestamp": "2026-08-29T08:30:18.445711+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list started (run_id=a2fe31b3-a500-4184-b54f-3416cdaf2449, model=gpt)"} 17:30:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:30:18.450340+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:30:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:30:20.836649+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:30:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:30:20.839978+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:30:20.845221+00:00", "level": "INFO", "logger": "app.core.steps.character_list_step", "message": "entity_character_list: 2 characters extracted"} {"timestamp": "2026-08-29T08:30:20.852770+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:30:20.852987+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_character_list: completed"} {"timestamp": "2026-08-29T08:30:20.858655+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary started (run_id=49280367-903d-4498-8ae2-207003352c34, model=gpt-mini)"} 17:30:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:30:20.868746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:30:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:30:20.870698+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:30:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:30:20.871311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:30:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:30:23.569810+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:30:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:30:23.572373+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a92989-f928-74df-8000-c672f8253f27&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. 17:30:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:30:25.508699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:30:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:30:25.511891+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 17:30:26 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:30:26.293993+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:30:26 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:30:26.296759+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:30:26.302268+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "SceneSummaryStep: 3/3 scenes summarized (0 failed)"} {"timestamp": "2026-08-29T08:30:26.308641+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:30:26.308714+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_summary: completed"} {"timestamp": "2026-08-29T08:30:26.313846+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=ae7d9912-d583-4331-b65e-33027ee62fd2, model=gemini-pro)"} {"timestamp": "2026-08-29T08:30:26.314382+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 2 characters injected"} {"timestamp": "2026-08-29T08:30:26.316535+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 scenes → 1 bundles"} {"timestamp": "2026-08-29T08:30:26.316791+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'beat_extract_1': Gemini 는 문자열 enum 만 받는다 — integer 형 enum 1개 걷음. 계약은 호출부 검증·재시도가 지킨다 (process 당 1회 로그)"} 17:30:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:30:26.317703+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:30:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:30:51.062920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:30:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:30:51.069176+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-08-29T08:30:51.080414+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3): 3 scenes, 8 beats"} {"timestamp": "2026-08-29T08:30:51.080713+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 scenes, 8 beats"} {"timestamp": "2026-08-29T08:30:51.090588+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:30:51.090803+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step beat_extract: completed"} {"timestamp": "2026-08-29T08:30:51.107540+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract started (run_id=c975bcb9-d6cf-4a5f-aa72-35f0a1fdad04, model=gemini-pro)"} {"timestamp": "2026-08-29T08:30:51.109223+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: t2i_context injected (394 chars)"} {"timestamp": "2026-08-29T08:30:51.109584+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 2 characters injected as enum"} {"timestamp": "2026-08-29T08:30:51.119805+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=17.202607222348). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} {"timestamp": "2026-08-29T08:30:51.121031+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 scenes → 1 bundles (sequential)"} {"timestamp": "2026-08-29T08:30:51.121470+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'shot_extract_1': Gemini 는 문자열 enum 만 받는다 — integer 형 enum 1개 걷음. 계약은 호출부 검증·재시도가 지킨다 (process 당 1회 로그)"} 17:30:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:30:51.128716+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:31:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:31:43.378213+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:31:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:31:43.381589+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-08-29T08:31:43.396222+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 1 (scenes 1~3): 3 scenes, 18 shots"} {"timestamp": "2026-08-29T08:31:43.396460+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 scenes, 18 shots"} {"timestamp": "2026-08-29T08:31:43.420054+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:31:43.420423+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_extract: completed"} {"timestamp": "2026-08-29T08:31:43.437781+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator started (run_id=05dd616f-8642-4ad7-ad62-bf586a3e2fad, model=gemini-pro)"} {"timestamp": "2026-08-29T08:31:43.454512+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene_director cp absent — applying universal entity pool to all scenes (no per-scene narrowing)."} 17:31:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:31:43.459933+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:31:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:31:43.463940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:31:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:31:43.469626+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:31:58 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:31:58.531519+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:31:58 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:31:58.535494+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:32:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:32:07.197285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:32:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:32:07.198398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:32:11 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:32:11.128307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:32:11 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:32:11.132206+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-08-29T08:32:11.143896+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: 3 scenes, 18 shots total, 3 revised, 0 failed"} {"timestamp": "2026-08-29T08:32:11.158000+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:32:11.158221+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_validator: completed"} {"timestamp": "2026-08-29T08:32:11.173764+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character started (run_id=c4f610fc-974e-4c1c-a3aa-4e942017db82, model=gpt)"} 17:32:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:32:11.188458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:32:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:32:14.740608+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:32:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:32:14.744720+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:32:14.750271+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_character (shot-based, 1 call): 2 entities from 18 shots"} {"timestamp": "2026-08-29T08:32:14.761504+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:32:14.761757+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_character: completed"} {"timestamp": "2026-08-29T08:32:14.776316+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character started (run_id=9c439afe-b00c-477c-8c01-685e2cd7f98d, model=gpt)"} 17:32:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:32:14.786659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:32:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:32:23.946464+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:32:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:32:23.947927+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:32:23.968599+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:32:23.968892+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_character: completed"} {"timestamp": "2026-08-29T08:32:23.982528+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location started (run_id=6d3c1904-0a66-41b3-a53f-f4d3e2e57a32, model=gpt)"} 17:32:23 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:32:23.997787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:32:29 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:32:29.089232+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:32:29 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:32:29.092590+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:32:29.097124+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_location (shot-based, 1 call): 2 entities from 18 shots"} {"timestamp": "2026-08-29T08:32:29.111111+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:32:29.111370+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_location: completed"} {"timestamp": "2026-08-29T08:32:29.123782+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location started (run_id=adce7d34-c611-410a-9d1f-f362ee0a4664, model=gemini-pro)"} 17:32:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:32:29.134895+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:32:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:32:43.728771+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:32:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:32:43.732284+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-08-29T08:32:43.744814+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:32:43.744967+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_location: completed"} {"timestamp": "2026-08-29T08:32:43.757727+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop started (run_id=16c7be56-1b6a-4911-86bc-2df494b7313f, model=gpt)"} 17:32:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:32:43.768846+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:32:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:32:51.548498+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:32:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:32:51.549612+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:32:51.551071+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_prop (shot-based, 1 call): 3 entities from 18 shots"} {"timestamp": "2026-08-29T08:32:51.559255+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:32:51.559347+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_prop: completed"} {"timestamp": "2026-08-29T08:32:51.566238+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop started (run_id=ab494a32-cef5-41a4-88fe-05689cb2cf22, model=gemini-pro)"} 17:32:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:32:51.570570+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:33:10 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:33:10.528056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:33:10 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:33:10.530595+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-08-29T08:33:10.556485+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:33:10.556694+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_prop: completed"} {"timestamp": "2026-08-29T08:33:10.577611+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge started (run_id=f9be7eae-c44f-465c-a92b-2f0764edd811, model=gpt)"} 17:33:10 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:33:10.587566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:33:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:33:14.256901+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:33:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:33:14.262145+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:33:14.280746+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge completed (completed=7/7, failed=0)"} {"timestamp": "2026-08-29T08:33:14.281103+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_merge: completed"} {"timestamp": "2026-08-29T08:33:14.292610+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation started (run_id=5c53815f-5583-48e8-aad3-64625175ed3b, model=gpt)"} 17:33:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:33:14.299353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:33:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:33:15.937118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:33:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:33:15.939827+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:33:15.950442+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_relation", "message": "Entity relations: 0 candidates → 0 confirmed (0 visual_similar)"} {"timestamp": "2026-08-29T08:33:15.958199+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:33:15.958385+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_relation: completed"} {"timestamp": "2026-08-29T08:33:15.964489+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter started (run_id=511994fb-f24d-4404-956e-4af1eeac48e4, model=gpt-mini)"} 17:33:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:33:15.972564+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:33:17 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:33:17.728141+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:33:17 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:33:17.731412+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:33:17.737893+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_filter", "message": "Filtered 1 low-freq entities → removed 1"} {"timestamp": "2026-08-29T08:33:17.747986+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:33:17.748319+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_filter: completed"} {"timestamp": "2026-08-29T08:33:17.758635+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail started (run_id=379deec8-2d27-4203-8646-8125ae2d672d, model=gpt)"} 17:33:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:33:17.767514+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:33:45 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:33:45.926459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:33:45 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:33:45.927653+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:33:45.936199+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:33:45.936282+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_detail: completed"} {"timestamp": "2026-08-29T08:33:45.940370+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i started (run_id=d82ddcf4-59e0-47cf-8b34-2a62b887ca1b, model=gemini-pro)"} 17:33:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:33:45.942732+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:33:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:33:46.953610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:33:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:33:47.957293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:33:48 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:33:48.958714+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:33:49 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:33:49.959659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:33:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:33:50.968273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:33:55 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:33:55.573326+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:33:55 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:33:55.575209+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:33:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:33:57.579478+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:33:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:33:57.584659+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:34:00 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:00.385502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:00 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:34:00.387494+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:34:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:03.274474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:03 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:34:03.279212+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:34:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:07.114727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:34:07.119357+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:34:11 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:11.730047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:11 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:34:11.738833+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-08-29T08:34:11.775926+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:34:11.776082+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_t2i: completed"} {"timestamp": "2026-08-29T08:34:11.793099+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection started (run_id=b1b1a012-9768-4350-910e-59e4f5581bba, model=gpt-mini)"} {"timestamp": "2026-08-29T08:34:11.800132+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 0 scenes auto-selected (1-shot), 3 scenes to evaluate (abs_max=3, ratio_cap=50%)"} 17:34:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:34:11.802384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:34:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:34:11.803198+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:34:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:34:11.803959+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:34:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:15.761533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:34:15.765981+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:34:15.774028+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 3: 2/6 selected (eff_max=3)"} 17:34:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:16.630580+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:34:16.634100+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:34:16.643907+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 2: 2/5 selected (eff_max=2)"} 17:34:18 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:18.288667+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:18 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:34:18.291633+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:34:18.296828+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 1: 2/7 selected (eff_max=3)"} {"timestamp": "2026-08-29T08:34:18.297149+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 6/18 shots selected across 3 scenes"} {"timestamp": "2026-08-29T08:34:18.311094+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:34:18.311364+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_selection: completed"} {"timestamp": "2026-08-29T08:34:18.356258+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "entity_canon orphan after sync — 4 row(s) left short_id=NULL (cp swap took their short_id, no name match in cp). Downstream short_id lookups will silently miss these. ids=['52c4c2ea-11eb-4c74-bbe2-a26ed91002db', '0ff1729a-bff5-446f-a152-ddb943a312a4', '73f1fc30-149c-46ed-b34d-fdd755b31595', '8ae765d0-22e7-49db-81ef-ff601d7cf7a1']"} {"timestamp": "2026-08-29T08:34:18.368318+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:34:18.375167+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-08-29T08:34:18.386825+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-08-29T08:34:18.388794+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:34:18.393169+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=5a00b5a2-a6d6-4124-93ec-baac66863c90, model=gemini-pro)"} {"timestamp": "2026-08-29T08:34:18.396133+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} 17:34:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:34:18.400020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:34:29 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:29.127250+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:29 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:34:29.129966+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-08-29T08:34:29.147759+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:34:29.148366+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_director: completed"} {"timestamp": "2026-08-29T08:34:29.177810+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:34:29.189492+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-08-29T08:34:29.197071+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-08-29T08:34:29.199903+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=scene_director, repaired=0)"} {"timestamp": "2026-08-29T08:34:29.205279+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=8e1f9ef9-86a9-4985-aa55-03c8183c6416, model=gpt)"} 17:34:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:34:29.213833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:34:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:34.874245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:34:34.876976+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:34:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:34:34.891768+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:34:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:38.671774+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:34:38.673705+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:34:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:34:38.699518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:34:44 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:34:44.252262+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:34:44 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:34:44.254426+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:34:44.260025+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 3 scenes (3 LLM, 0 skipped), 6 total shots"} {"timestamp": "2026-08-29T08:34:44.286494+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:34:44.286858+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_director: completed"} {"timestamp": "2026-08-29T08:34:44.301889+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow started (run_id=ac0e4824-32cb-4d76-8d9e-9f59d172633f, model=gpt)"} {"timestamp": "2026-08-29T08:34:44.303674+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=scene_camera_flow stem=schema.json loaded_from=2.202607080130 (latest_in_module=5.202608130110). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} 17:34:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:34:44.306749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:34:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:34:44.307582+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:34:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:34:44.308013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:35:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:35:03.380078+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:35:03 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:35:03.381178+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:35:03.388958+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S2: 4 stages, 2 shot assignments"} 17:35:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:35:04.997496+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:35:05 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:35:05.003863+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:35:05.017321+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S1: 4 stages, 2 shot assignments"} 17:35:05 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:35:05.620535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:35:05 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:35:05.623462+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:35:05.635457+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S3: 5 stages, 2 shot assignments"} {"timestamp": "2026-08-29T08:35:05.646108+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:35:05.646327+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_camera_flow: completed"} {"timestamp": "2026-08-29T08:35:05.656244+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency started (run_id=dc1d30c9-5e00-4b61-98a5-466acabc760d, model=gpt)"} {"timestamp": "2026-08-29T08:35:05.657643+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_step", "message": "shot_dependency: 4/6 shots linked (code-based scoring)"} {"timestamp": "2026-08-29T08:35:05.662568+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:35:05.662829+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency: completed"} {"timestamp": "2026-08-29T08:35:05.690753+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:35:05.695097+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-08-29T08:35:05.699913+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-08-29T08:35:05.701312+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:35:05.704535+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=ab056d4b-6f61-4572-b8e7-2ef0f6b714fe, model=gemini-pro)"} {"timestamp": "2026-08-29T08:35:05.706898+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 3 scenes, 2 characters"} 17:35:05 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:35:05.709647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:35:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:35:16.802006+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:35:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:35:16.807115+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-08-29T08:35:16.813631+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 2 outlooks (O01~O02)"} {"timestamp": "2026-08-29T08:35:16.823644+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:35:16.823843+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase1: completed"} {"timestamp": "2026-08-29T08:35:16.855001+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:35:16.861734+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-08-29T08:35:16.867245+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-08-29T08:35:16.869230+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=outlook_phase1, repaired=0)"} {"timestamp": "2026-08-29T08:35:16.878859+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:35:16.881874+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-08-29T08:35:16.884837+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-08-29T08:35:16.886066+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:35:16.889049+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=b7d74366-d447-492f-8f18-98bbc344c050, model=gemini-pro)"} {"timestamp": "2026-08-29T08:35:16.891247+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 2 outlooks to 3 scenes (O00: 0 chars excluded)"} 17:35:16 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:35:16.894228+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:35:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:35:25.433923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:35:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:35:25.436108+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-08-29T08:35:25.438327+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 3 scene assignments"} {"timestamp": "2026-08-29T08:35:25.444343+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:35:25.444438+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase2: completed"} {"timestamp": "2026-08-29T08:35:25.468371+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:35:25.473401+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-08-29T08:35:25.477786+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-08-29T08:35:25.480774+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=outlook_phase2, repaired=0)"} {"timestamp": "2026-08-29T08:35:25.495516+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:35:25.498835+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-08-29T08:35:25.501817+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-08-29T08:35:25.503068+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:35:25.508346+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=fb2ebdee-653d-4efa-87f5-7fed4f6946dd, model=gemini-pro)"} {"timestamp": "2026-08-29T08:35:25.510349+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 2 outlooks, 3 assignments (O00 protected)"} 17:35:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:35:25.513399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:35:29 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:35:29.706926+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:35:29 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:35:29.709346+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-08-29T08:35:29.713686+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 2→2 outlooks (removed 0, merged 0)"} {"timestamp": "2026-08-29T08:35:29.713870+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 2 outlooks (removed 0)"} {"timestamp": "2026-08-29T08:35:29.722079+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=2/1, failed=0)"} {"timestamp": "2026-08-29T08:35:29.722157+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase3: completed"} {"timestamp": "2026-08-29T08:35:29.737286+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:35:29.740058+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-08-29T08:35:29.752592+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 2 outlooks + 2 character-outlook links (Δ +1 / -0)"} {"timestamp": "2026-08-29T08:35:29.755259+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-08-29T08:35:29.757243+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=outlook_phase3, repaired=0)"} {"timestamp": "2026-08-29T08:35:29.763553+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging started (run_id=e78afd1e-cc0b-46a0-90e8-3979b2162bcc, model=gpt)"} {"timestamp": "2026-08-29T08:35:29.765844+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging: 6 selected shots to analyze"} 17:35:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:35:29.768960+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:36:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:36:14.812139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:36:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:36:14.817727+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:36:14.826334+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 1/1 attempt 1: 6 shots ok"} {"timestamp": "2026-08-29T08:36:14.838597+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:36:14.838665+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_staging: completed"} {"timestamp": "2026-08-29T08:36:14.846091+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify started (run_id=03387796-fa8c-4942-b94b-74c2cf12a262, model=gpt)"} 17:36:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:36:14.850958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:36:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:36:19.011720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:36:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:36:19.014384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:36:19.042999+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:36:19.043160+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_classify: completed"} {"timestamp": "2026-08-29T08:36:19.049895+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan started (run_id=353b4356-0a97-4ce0-b8e1-5e6d7280e814, model=gpt)"} 17:36:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:36:19.054465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:36:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:36:25.152679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:36:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:36:25.153576+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:36:25.177699+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:36:25.177811+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_master_plan: completed"} {"timestamp": "2026-08-29T08:36:25.192516+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt started (run_id=215c25fe-d495-4f57-ac97-5ce4a490da30, model=gpt)"} 17:36:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:36:25.195423+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:37:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:37:01.836339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:37:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:37:01.838712+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:37:01.857556+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:37:01.857652+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_prompt: completed"} {"timestamp": "2026-08-29T08:37:01.862760+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_essence_extraction: not_applicable"} {"timestamp": "2026-08-29T08:37:01.870626+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency started (run_id=d1d984c9-3bee-4e7d-8c60-b53e3cdb18c5, model=gemini-pro)"} {"timestamp": "2026-08-29T08:37:01.872259+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency: 3 scenes need LLM (workers=3, already_done=0, single_shot_skipped=0)"} 17:37:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:37:01.874272+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:37:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:37:01.875373+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:37:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:37:01.876474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:37:33 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:37:33.673346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:37:33 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:37:33.674738+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-08-29T08:37:33.689081+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S1: 3 fixed elements"} 17:37:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:37:38.684689+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:37:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:37:38.686702+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-08-29T08:37:38.700333+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S2: 1 fixed elements"} 17:37:52 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:37:52.240675+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:37:52 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:37:52.244628+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-08-29T08:37:52.257281+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S3: 2 fixed elements"} {"timestamp": "2026-08-29T08:37:52.269418+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-29T08:37:52.269781+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_consistency: completed"} {"timestamp": "2026-08-29T08:37:52.279925+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render started (run_id=44c3825b-27bb-4d2c-9329-9f14a403bd95, model=gpt)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=01a04cac-e81b-7252-850b-1ff21169e47b&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-29T08:39:55.179663+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: registered 1 floor_plan ImageAssets"} {"timestamp": "2026-08-29T08:39:55.196177+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:39:55.196289+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_render: completed"} {"timestamp": "2026-08-29T08:39:55.202681+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar started (run_id=f10fb48b-47ba-40e0-87ff-5dfdd0accd12, model=gpt)"} {"timestamp": "2026-08-29T08:39:55.206122+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:39:55.206186+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_light_sidecar: completed"} {"timestamp": "2026-08-29T08:39:55.211150+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload started (run_id=ef6dfbee-c908-4d65-bf07-016db922b128, model=gpt)"} {"timestamp": "2026-08-29T08:39:55.215870+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:39:55.216274+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_overlay_payload: completed"} {"timestamp": "2026-08-29T08:39:55.223378+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier started (run_id=6bbb3531-b439-42ce-9828-4db24621fb09, model=gpt)"} {"timestamp": "2026-08-29T08:39:55.233226+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:39:55.233513+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step base_location_dossier: completed"} {"timestamp": "2026-08-29T08:39:55.239420+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback started (run_id=6b991dd5-d89c-474f-90e9-eae282123897, model=gpt)"} 17:39:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:39:55.251598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:40:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:40:31.739414+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:40:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:40:31.743412+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-08-29T08:40:31.790631+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:40:31.790734+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_geometry_readback: completed"} {"timestamp": "2026-08-29T08:40:31.799079+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback started (run_id=90428dea-bf01-4ca9-aa50-1413e5f30119, model=gpt)"} {"timestamp": "2026-08-29T08:40:31.801740+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:40:31.801829+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_semantic_readback: completed"} {"timestamp": "2026-08-29T08:40:31.806587+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card started (run_id=5391816c-54c8-49cf-93a4-0f654a2041a5, model=gpt)"} {"timestamp": "2026-08-29T08:40:31.809285+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:40:31.809365+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_projection_card: completed"} {"timestamp": "2026-08-29T08:40:31.813616+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition started (run_id=ec507a18-7dc2-4b68-bb85-7c41e35c45a0, model=gpt)"} {"timestamp": "2026-08-29T08:40:31.816165+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:40:31.816209+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step bg_space_partition: completed"} {"timestamp": "2026-08-29T08:40:31.819995+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map started (run_id=57c83392-8ada-4753-bec4-e181d77d1477, model=gpt)"} {"timestamp": "2026-08-29T08:40:31.822628+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:40:31.822672+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step dwelling_zone_map: completed"} {"timestamp": "2026-08-29T08:40:31.826867+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan started (run_id=17a1ba0b-a85a-403f-9193-d16f13e39a5f, model=gpt)"} 17:40:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:40:31.830709+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:41:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:41:03.115392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:41:03 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:41:03.122478+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:41:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:41:14.203198+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-08-29T08:41:14.226009+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:41:14.226288+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_aware_bg_render_plan: completed"} {"timestamp": "2026-08-29T08:41:14.247227+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt started (run_id=4fdba01e-84e8-46c0-a0ba-5f117c7dd7e1, model=gpt)"} 17:41:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:41:14.261377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:41:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:41:14.262685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:41:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:41:35.253936+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:41:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:41:35.258296+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:41:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:41:43.443333+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:41:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:41:43.446073+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:41:43.472519+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:41:43.472786+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_prompt: completed"} {"timestamp": "2026-08-29T08:41:43.496080+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy started (run_id=1418fff8-6deb-41aa-89c5-465b5ccad1ff, model=gpt)"} {"timestamp": "2026-08-29T08:41:43.509798+00:00", "level": "INFO", "logger": "app.core.steps.episode_reference_policy_step", "message": "episode_reference_policy: 7 entities — 2 text_only, 5 other"} {"timestamp": "2026-08-29T08:41:43.520948+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy completed (completed=7/7, failed=0)"} {"timestamp": "2026-08-29T08:41:43.521207+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_reference_policy: completed"} {"timestamp": "2026-08-29T08:41:43.541158+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor started (run_id=60c0fd3d-e57e-469c-9879-b71ca1a12b15, model=gpt)"} 17:41:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:41:43.571152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:41:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:41:59.379346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:41:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:41:59.382421+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:41:59 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:41:59.403708+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:42:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:01.121903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:42:01.124477+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:42:01.148895+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:42:01.149149+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_continuity_anchor: completed"} {"timestamp": "2026-08-29T08:42:01.179905+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:42:01.192078+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-08-29T08:42:01.212174+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 2 outlooks + 2 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-29T08:42:01.218810+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-08-29T08:42:01.222751+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:42:01.253503+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=af7f1aa3-2e97-4b4e-ab37-3bac5048acbb, model=gemini-pro)"} {"timestamp": "2026-08-29T08:42:01.258910+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-29T08:42:01.259430+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-29T08:42:01.262010+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-29T08:42:01.262442+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-29T08:42:01.274691+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-29T08:42:01.277884+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 3 segments → 6 tasks (shot-based, 0 edited skipped)"} {"timestamp": "2026-08-29T08:42:01.288899+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', 'L01', 'P01'])"} {"timestamp": "2026-08-29T08:42:01.309191+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C02'])"} 17:42:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:42:01.321205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:42:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:42:01.338579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:42:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:42:01.340319+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:42:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:42:01.342280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:42:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:42:01.343347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:42:33 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:33.859063+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:33 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:42:33.862212+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-08-29T08:42:33.877924+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-29T08:42:33.878296+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C02'])"} 17:42:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:42:33.890850+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:42:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:34.692986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:42:34.695787+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:42:48 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:48.233453+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:48 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:42:48.238639+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:42:48 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:42:48.269708+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:42:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:51.259687+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:42:51.264538+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:42:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:42:51.301305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:42:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:54.899873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:42:54.904097+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-08-29T08:42:54.926094+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 shot7 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-29T08:42:54.926322+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', 'L01', 'P01'])"} 17:42:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:42:54.938623+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:42:55 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:55.682294+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:55 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:42:55.687799+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 17:42:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:42:55.704228+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:42:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:57.557251+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:42:57.560268+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 17:42:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:59.005609+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:42:59.012142+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 17:42:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:42:59.942137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:42:59.945063+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 17:42:59 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:42:59.962314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:43:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:43:04.927889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:43:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:43:04.930586+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:43:04.941696+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S1_Shot4: owned redraw repair 성공 — 3 redraw_violation 해소"} 17:43:18 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:43:18.344784+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:43:18 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:43:18.349157+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:43:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:43:18.384939+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:43:26 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:43:26.751923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:43:26 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:43:26.754560+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:43:26.764867+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-29T08:43:26.765735+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-29T08:43:26.771096+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-29T08:43:26.771521+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-29T08:43:26.774393+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-29T08:43:26.774862+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-29T08:43:26.787247+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-29T08:43:26.794390+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', 'L01', 'P01'])"} {"timestamp": "2026-08-29T08:43:26.804942+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C02'])"} {"timestamp": "2026-08-29T08:43:26.830262+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:43:26.830365+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_detail: completed"} {"timestamp": "2026-08-29T08:43:26.846282+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:43:26.866027+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 18 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-29T08:43:26.867491+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-29T08:43:26.880557+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 2 outlooks + 2 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-29T08:43:26.885134+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 8 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-29T08:43:26.889053+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-29T08:43:26.894363+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i started (run_id=97d8d274-2dee-496f-86c2-18ec3f969a2c, model=gpt-mini)"} 17:43:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:43:26.898856+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:43:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:43:32.042077+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:43:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:43:32.045133+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:43:32.060677+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L01 (4 shots) — LLM OK"} 17:43:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-29T08:43:32.069140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 17:43:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:43:35.165804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:43:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-29T08:43:35.170380+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:43:35.186208+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L02 (2 shots) — LLM OK"} {"timestamp": "2026-08-29T08:43:35.187150+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: 3/6 linked (LLM-based)"} {"timestamp": "2026-08-29T08:43:35.202552+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:43:35.203060+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency_t2i: completed"} {"timestamp": "2026-08-29T08:43:35.220816+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review started (run_id=8e3dd6d7-3556-4380-8ce6-5579b384e976, model=gpt)"} 17:43:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:43:35.236488+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:43:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:43:38.452139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:43:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:43:38.456582+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:43:38.467133+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review: v1 이라 씬 갈래를 건너뛴다 (그 산문은 이미지에 안 쓰인다)"} {"timestamp": "2026-08-29T08:43:38.467408+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review v1: entity 0 diagnostics, scene 0 diagnostics (mutation=0)"} {"timestamp": "2026-08-29T08:43:38.478028+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:43:38.478430+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step t2i_review: completed"} {"timestamp": "2026-08-29T08:43:38.496284+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor started (run_id=5b5742bf-3e87-4164-a027-e550b1628234, model=gpt)"} {"timestamp": "2026-08-29T08:43:38.513363+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:43:38.513652+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step zoom_continuity_anchor: completed"} {"timestamp": "2026-08-29T08:43:38.532910+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout started (run_id=dfb0f7d3-6731-4f0d-83fc-cbe2aa8b4800, model=gpt)"} {"timestamp": "2026-08-29T08:43:38.552082+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:43:38.552269+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_site_layout: completed"} {"timestamp": "2026-08-29T08:43:38.569552+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec started (run_id=299558ca-a2b8-4f0b-a83d-1306539eb0e0, model=gpt)"} {"timestamp": "2026-08-29T08:43:38.570547+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: 실외 멤버 그룹 없음 — no-op"} {"timestamp": "2026-08-29T08:43:38.579569+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:43:38.579850+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_spec: completed"} {"timestamp": "2026-08-29T08:43:38.600250+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_lane_plan started (run_id=3b0362ba-073d-4be7-8237-fdb959c58e9c, model=gpt)"} {"timestamp": "2026-08-29T08:43:38.601138+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_lane_plan_step", "message": "outdoor_lane_plan: 대상 그룹 없음 — no-op"} {"timestamp": "2026-08-29T08:43:38.609482+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_lane_plan completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:43:38.609731+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_lane_plan: completed"} {"timestamp": "2026-08-29T08:43:38.623520+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon started (run_id=676dfb58-a182-4d9c-8b40-ee259753d7e3, model=gpt)"} {"timestamp": "2026-08-29T08:43:38.624414+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_canon_step", "message": "outdoor_place_canon: 스펙 있는 그룹 없음 — no-op"} {"timestamp": "2026-08-29T08:43:38.634581+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:43:38.634789+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_canon: completed"} {"timestamp": "2026-08-29T08:43:38.646622+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_frame_mode: not_applicable"} {"timestamp": "2026-08-29T08:43:38.666887+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_shot_grounding: not_applicable"} {"timestamp": "2026-08-29T08:43:38.673228+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_ref_classify started (run_id=20e39da1-933e-4a69-8c1b-1af47141a0d1, model=gpt)"} 17:43:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:43:38.686335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:43:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:43:43.640630+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:43:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:43:43.644373+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:43:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:43:43.661112+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:44:06 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:44:06.345077+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:44:06 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:44:06.349917+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:44:06 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:44:06.365431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:44:10 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:44:10.856265+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:44:10 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:44:10.859353+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:44:10 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:44:10.874743+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:44:17 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:44:17.375991+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:44:17 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:44:17.383025+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:44:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:44:17.397911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:44:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:44:21.776184+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:44:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:44:21.783196+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:44:21.800348+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_ref_classify completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:44:21.800524+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_ref_classify: completed"} {"timestamp": "2026-08-29T08:44:21.809946+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_share_plan started (run_id=9f42518f-8ba8-4ea0-9497-072b17c27a96, model=gpt)"} {"timestamp": "2026-08-29T08:44:21.812381+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'background_share_plan': OpenAI strict 비호환 스키마(Gemini 팩 유래) — strict=False 강등, 준수는 local validation+retry 가 보증 (process 당 1회 로그)"} 17:44:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:44:21.820696+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:44:44 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:44:44.759654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:44:44 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:44:44.764378+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:44:44.778608+00:00", "level": "INFO", "logger": "app.core.steps.background_share_plan_step", "message": "background_share_plan: 그룹 2 · 샷 6 (attempts=1)"} {"timestamp": "2026-08-29T08:44:44.789311+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_share_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:44:44.789532+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_share_plan: completed"} {"timestamp": "2026-08-29T08:44:44.797668+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_continuity started (run_id=b8de5375-fcf6-4d26-be99-800580cf286c, model=gpt)"} 17:44:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:44:44.802450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:44:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:44:46.833725+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:44:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:44:46.836142+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 17:44:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:44:46.846223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:45:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:45:25.426704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:45:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:45:25.432547+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:45:25.455702+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_continuity completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-29T08:45:25.455933+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_continuity: completed"} {"timestamp": "2026-08-29T08:45:25.475414+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_form_reference started (run_id=a55a82bf-1531-4ede-8a64-730b531bc021, model=gpt)"} {"timestamp": "2026-08-29T08:45:25.476928+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_structure_form_reference_step", "message": "outdoor_structure_form_reference: 야외 그룹 없음 — no-op"} {"timestamp": "2026-08-29T08:45:25.486616+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_form_reference completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:45:25.486706+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_form_reference: completed"} {"timestamp": "2026-08-29T08:45:25.499347+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_seed started (run_id=2247ff3e-4ba1-4bff-8948-774ebf48d374, model=gemini-image)"} {"timestamp": "2026-08-29T08:45:25.500172+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_structure_seed_step", "message": "outdoor_structure_seed: structure_plate 그룹 없음 — no-op"} {"timestamp": "2026-08-29T08:45:25.510243+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_seed completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:45:25.510344+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_seed: completed"} {"timestamp": "2026-08-29T08:45:25.514993+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide started (run_id=93d5f615-ce2b-43d6-b0df-bbe54fc92502, model=gpt)"} 17:45:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-29T08:45:25.523343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 17:45:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:45:57.066162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:45:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-29T08:45:57.068948+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:45:57.105332+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-29T08:45:57.105543+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step world_guide: completed"} {"timestamp": "2026-08-29T08:45:57.122583+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step space_set_bg: not_applicable"} {"timestamp": "2026-08-29T08:45:57.135312+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen started (run_id=9eefac11-7299-4e77-812b-ca1eae7d4a1e, model=gemini-image)"} {"timestamp": "2026-08-29T08:45:57.160610+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:45:57.186330+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 18 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-29T08:45:57.187915+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-29T08:45:57.208446+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 2 outlooks + 2 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-29T08:45:57.217475+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-29T08:45:57.221305+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:45:57.301326+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 정임 (character, t2i_count=5, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:45:57.301521+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 기사 최씨 (character, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:45:57.301588+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 쇠사슬로 묶인 기계식 요금통 (prop, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:45:57.301641+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 고무줄로 묶인 낡은 종이 회수권 뭉치 (prop, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:45:57.325895+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 쇠사슬로 묶인 기계식 요금통 (type=prop)"} {"timestamp": "2026-08-29T08:45:57.326131+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 기사 최씨 (type=character)"} {"timestamp": "2026-08-29T08:45:57.326944+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 쇠사슬로 묶인 기계식 요금통 (prop)"} {"timestamp": "2026-08-29T08:45:57.327528+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 기사 최씨 (character)"} {"timestamp": "2026-08-29T08:46:07.022955+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (612520 → 1272648 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 17:46:07 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:46:07.112154+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:46:07 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-29T08:46:07.121955+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-29T08:46:07.656841+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (660292 → 1340703 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 17:46:07 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:46:07.743784+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:46:07 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-29T08:46:07.754397+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 17:46:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:46:19.665995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:46:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:46:19.669509+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:46:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-29T08:46:19.742875+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 17:46:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:46:20.082215+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:46:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:46:20.086239+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:46:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-29T08:46:20.147318+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 17:46:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:46:31.569514+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:46:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-29T08:46:31.571702+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} 17:46:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:46:32.194477+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:46:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-29T08:46:32.197495+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:46:32.228023+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[VERIFY-EXIT] step=ref_image_gen failed → partial: ['2 character ref images missing (expected=4, found=2)']"} {"timestamp": "2026-08-29T08:46:32.233045+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen partial (completed=6/8, failed=0)"} {"timestamp": "2026-08-29T08:46:32.233380+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step ref_image_gen: partial"} {"timestamp": "2026-08-29T08:46:32.233827+00:00", "level": "WARNING", "logger": "app.services.analysis_dispatch_service", "message": "Step ref_image_gen partial — continuing (downstream may use partial results)"} {"timestamp": "2026-08-29T08:46:32.242409+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen started (run_id=38967da3-17ff-48b5-8106-ed149f27d13f, model=gemini-image)"} {"timestamp": "2026-08-29T08:46:32.262059+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:46:32.326135+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 18 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-29T08:46:32.327990+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-29T08:46:32.337512+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 2 outlooks + 2 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-29T08:46:32.341617+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-29T08:46:32.343549+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:46:32.360874+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 2 completed, 0 failed"} {"timestamp": "2026-08-29T08:46:32.363634+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 정임 (character, t2i_count=5, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:46:32.363691+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 기사 최씨 (character, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:46:32.363718+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 고무줄로 묶인 낡은 종이 회수권 뭉치 (prop, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:46:32.363739+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 쇠사슬로 묶인 기계식 요금통 (prop, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-29T08:46:32.380979+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Generating 1 composite images (face + outfit refs)"} {"timestamp": "2026-08-29T08:46:32.381414+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 기사 최씨 (작업점퍼) (type=composite)"} {"timestamp": "2026-08-29T08:46:32.381543+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 기사 최씨 (작업점퍼) (composite)"} {"timestamp": "2026-08-29T08:46:43.953327+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (421331 → 951032 bytes) [gemini-3.1-flash-image/ref_image_gen_composite]"} 17:46:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-29T08:46:44.042509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:46:44 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-29T08:46:44.049785+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 17:46:48 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:46:48.558362+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:46:48 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-29T08:46:48.560623+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 17:46:48 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-29T08:46:48.615114+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 17:47:18 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-29T08:47:18.171381+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:47:18 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-29T08:47:18.172306+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-29T08:47:18.233735+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 기사 최씨 + 작업점퍼"} {"timestamp": "2026-08-29T08:47:18.268890+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:47:18.268997+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step composite_image_gen: completed"} {"timestamp": "2026-08-29T08:47:18.274820+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant started (run_id=ea2ebd6e-66b4-4f34-bfe3-411e6840c89d, model=gemini-image)"} {"timestamp": "2026-08-29T08:47:18.275808+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: no dead/injured/unconscious characters found"} {"timestamp": "2026-08-29T08:47:18.281101+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-29T08:47:18.281196+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step character_state_variant: completed"} {"timestamp": "2026-08-29T08:47:18.286667+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render started (run_id=d76d36ca-5184-4481-894e-ea89e34316e1, model=gpt)"} {"timestamp": "2026-08-29T08:47:18.288356+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place 그룹 멤버십 2 loc — {'L01': 'bg_intercity_bus_one', 'L02': 'bg_intercity_bus_two'}"} {"timestamp": "2026-08-29T08:48:46.451256+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L01 anchor=L01B01"} {"timestamp": "2026-08-29T08:50:10.010326+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: registered 2 ImageAssets (chain_bg + 0 location_aerial) (star anchor lineage: 1)"} {"timestamp": "2026-08-29T08:50:10.030240+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-29T08:50:10.031394+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_render: completed"} {"timestamp": "2026-08-29T08:50:10.062115+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_conti_light started (run_id=ed79248b-b67d-44d1-84cd-18617d03dcec, model=gpt-image-2)"} {"timestamp": "2026-08-29T08:50:10.082950+00:00", "level": "INFO", "logger": "app.core.steps.shot_conti_light_step", "message": "shot_conti_light: lane 바인딩 없음 — lane 분기 no-op"} {"timestamp": "2026-08-29T08:50:10.099613+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh4]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['기사 최씨'] (배정=['C01'])"} {"timestamp": "2026-08-29T08:51:42.743455+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh7]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['기사 최씨'] (배정=['C01'])"} {"timestamp": "2026-08-29T08:53:14.006825+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S2sh1]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['기사 최씨'] (배정=['C01'])"} {"timestamp": "2026-08-29T08:54:41.471849+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh4]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['기사 최씨'] (배정=['C01'])"} {"timestamp": "2026-08-29T08:57:23.699247+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_conti_light completed (completed=5/5, failed=0)"} {"timestamp": "2026-08-29T08:57:23.699360+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_conti_light: completed"} {"timestamp": "2026-08-29T08:57:23.711097+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=4e13b7a0-6afb-444f-a315-81cbe5df75b3, model=mixed)"} {"timestamp": "2026-08-29T08:57:23.727569+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-29T08:57:23.740487+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 18 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-29T08:57:23.742261+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-29T08:57:23.754802+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 2 outlooks + 2 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-29T08:57:23.759443+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-29T08:57:23.761266+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 97375a4b, step=-, repaired=0)"} {"timestamp": "2026-08-29T08:57:23.773068+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline _execute_and_finalize crashed: 참조 이미지 미완성: 2개 누락 (정임(character), 고무줄로 묶인 낡은 종이 회수권 뭉치(prop)). '참조 이미지 생성'을 먼저 완료하세요.\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1647, in _execute_and_finalize_inner\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/image_steps.py\", line 1730, in _execute\n check_scene_images_ready(self.db, self.project_id, self.episode_id)\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/pipeline_gate.py\", line 155, in check_scene_images_ready\n raise AppError(\napp.core.errors.AppError: 참조 이미지 미완성: 2개 누락 (정임(character), 고무줄로 묶인 낡은 종이 회수권 뭉치(prop)). '참조 이미지 생성'을 먼저 완료하세요.\n"} {"timestamp": "2026-08-29T08:57:23.773198+00:00", "level": "ERROR", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_image_pipeline error: 참조 이미지 미완성: 2개 누락 (정임(character), 고무줄로 묶인 낡은 종이 회수권 뭉치(prop)). '참조 이미지 생성'을 먼저 완료하세요."} INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [75376]